这篇文章是从网络上获取的,然后根据内容一步步操作,
1、目前的疑问:移动日志文件的时候,为何要先进行切换?
2、move操作后,再进行rename操作的原理
-----------------------------------------
环境: WinXP SP3\Oracle10gR2
数据文件,控制文件和日志文件原路径在:"C:\ora10gBase\oradata\oy",
现在要将它们迁移至“D:\D_Oracle_DBF”中。具体操作如下:
 
数据文件迁移:
SQL> select name from v$datafile;
NAME
-----------------------------------------
C:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF
C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF
C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF
C:\ORA10GBASE\ORADATA\OY\USERS01.DBF
C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF
D:\D_ORACLE_DBF\EXAMPLE02.DBF
D:\D_ORACLE_DBF\SYSAUX02.DBF
D:\D_ORACLE_DBF\SYSTEM02.DBF
D:\D_ORACLE_DBF\UNDOTBS02.DBF
D:\D_ORACLE_DBF\USERS02.DBF
已选择10行。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
 
(以下的$move命令 应该等同于操作系统的剪切粘贴命令)
SQL> $move C:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF D:\D_ORACLE_DBF\SYSTEM01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF D:\D_ORACLE_DBF\SYSAUX01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF D:\D_ORACLE_DBF\UNDOTBS01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\USERS01.DBF D:\D_ORACLE_DBF\USERS01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF D:\D_ORACLE_DBF\EXAMPLE01.DBF
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  209715200 bytes
Fixed Size                  1248140 bytes
Variable Size              92275828 bytes
Database Buffers          113246208 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
 
SQL>  alter database
  2   rename file
  3   'C:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF',
  4   'C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF',
  5   'C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF',
  6   'C:\ORA10GBASE\ORADATA\OY\USERS01.DBF',
  7   'C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF'
  8   to
  9   'D:\D_ORACLE_DBF\SYSTEM01.DBF',
 10   'D:\D_ORACLE_DBF\SYSAUX01.DBF',
 11   'D:\D_ORACLE_DBF\UNDOTBS01.DBF',
 12   'D:\D_ORACLE_DBF\USERS01.DBF',
 13   'D:\D_ORACLE_DBF\EXAMPLE01.DBF';
数据库已更改。
 
SQL> alter database open;
数据库已更改。
SQL> select name,status from v$datafile;
NAME                                                         STATUS
------------------------------------------------------------ -------
D:\D_ORACLE_DBF\SYSTEM01.DBF                                 SYSTEM
D:\D_ORACLE_DBF\UNDOTBS01.DBF                                ONLINE
D:\D_ORACLE_DBF\SYSAUX01.DBF                                 ONLINE
D:\D_ORACLE_DBF\USERS01.DBF                                  ONLINE
D:\D_ORACLE_DBF\EXAMPLE01.DBF                                ONLINE
D:\D_ORACLE_DBF\EXAMPLE02.DBF                                ONLINE
D:\D_ORACLE_DBF\SYSAUX02.DBF                                 ONLINE
D:\D_ORACLE_DBF\SYSTEM02.DBF                                 SYSTEM
D:\D_ORACLE_DBF\UNDOTBS02.DBF                                ONLINE
D:\D_ORACLE_DBF\USERS02.DBF                                  ONLINE
已选择10行。
 
日志文件迁移
SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS    FIRST_CHANGE# FIRST_TIME
-------- ------- ---------- ---------- ---------- --- --------- ------------- --------------
       1       1          5   52428800          1 NO  CURRENT          618740 27-4月 -11
       2       1          3   52428800          1 NO  INACTIVE         572830 26-4月 -11
       3       1          4   52428800          1 NO  INACTIVE         598395 27-4月 -11
 
SQL> col type format a10
SQL> col IS_RECOVERY_DEST_FILE format a10
SQL> col member format a50
SQL> select * from v$logfile;
    GROUP# STATUS   TYPE       MEMBER                                   IS_RECOVER
---------- -------- ---------- ---------------------------------------- ----------
########## STALE    ONLINE     C:\ORA10GBASE\ORADATA\OY\REDO03.LOG      NO
########## STALE    ONLINE     C:\ORA10GBASE\ORADATA\OY\REDO02.LOG      NO
##########          ONLINE     C:\ORA10GBASE\ORADATA\OY\REDO01.LOG      NO
 
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> $ move C:\ora10gBase\oradata\oy\REDO01.LOG  D:\D_Oracle_DBF\REDO01.LOG
SQL> $ move C:\ora10gBase\oradata\oy\REDO02.LOG  D:\D_Oracle_DBF\REDO02.LOG
SQL> $ move C:\ora10gBase\oradata\oy\REDO03.LOG  D:\D_Oracle_DBF\REDO03.LOG
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  209715200 bytes
Fixed Size                  1248140 bytes
Variable Size              92275828 bytes
Database Buffers          113246208 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
 
SQL> alter database
  2  rename file
  3  'C:\ora10gBase\oradata\oy\REDO01.LOG',
  4  'C:\ora10gBase\oradata\oy\REDO02.LOG',
  5  'C:\ora10gBase\oradata\oy\REDO03.LOG'
  6  to
  7  'D:\D_Oracle_DBF\REDO01.LOG',
  8  'D:\D_Oracle_DBF\REDO02.LOG',
  9  'D:\D_Oracle_DBF\REDO03.LOG';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
 
控制文件迁移
 
 
将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库,
然后create spfile from pfile.最后以spfile启动数据库即可。
SQL> create spfile from pfile='D:\xxxx\pfile\init.ora.2162010162124';
 
-----------------------------
 
此外,其他移动数据文件的方法(在数据库启动归档的情况下,可以开机迁移,还未测试是否正确):
 
移动Oracle数据库表空间文件
 
目的:把oracle表空间文件从一个地方移动到另外一个地方。
 
详细操作步骤:
 
第一、启用介质恢复模式:
A、Shutdown immdiate;
B、Startup mount;
C、Alter database archivelog;
D、Alter database open;
 
第二、卸载表空间:
A、Alter tablespace 表空间名字 offline;(注:如果为非归档模式后面加Drop);
 
第三、在操作系统下移动文件到新位置。
 
第四、告诉表空间数据文件已经移动:
A、Alter database rename file '原文件路径' to '新文件路径';
 
第五、装载表空间:
A、Alter tablespace 表空间名字 online;
 
第六、关闭数据库:
A、Shutdown;
 
第七、启动数据库:
A、Startup force;
 
Oracle数据库表空间文件移动成功。

oracle数据文件迁移的更多相关文章

  1. Oracle 数据文件迁移

    背景 这两天做一个oracle数据库迁移,以前都是用exp.imp来走,这次用到了expdp.impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘 ...

  2. Oracle数据文件迁移到裸设备

    本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上. 前提条件 1.oracle运行正常. 2.已使用LVM命令规划好LV文件.如/dev/vgoracle/lvdatat ...

  3. Oracle 10g DG 数据文件迁移

    背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...

  4. Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中

    在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...

  5. 收缩Oracle数据文件

    最近有网友提到收缩Oracle数据文件的问题,这是DBA经常碰到的一个常见问题.通常我们需要收缩相应的数据文件以减少来自磁盘空间的压力以及提高数据库的整体性能.但这并非对于所有情形都是适用的,尤其是生 ...

  6. Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

    Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...

  7. SqlServer:SqlServer(数据库备份,数据文件迁移,增加数据库文件组,递归查询一周报送情况,查询近X天未报送单位,截断数据库日志,复制单个或多个数据库表到另一个数据库 )

    1.数据备份 ) ) ) )),'-','') ) SET @savePath = 'f:/DatabaseBackup/' DECLARE My_Cursor CURSOR FOR ( select ...

  8. 批量迁移Oracle数据文件,日志文件及控制文件

    有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当 ...

  9. oracle之 RAC本地数据文件迁移至ASM

    系统环境:CentOS release 6.7 (Final)Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit 操作过 ...

随机推荐

  1. 方法重载(overroad)和方法覆盖(override)------java基础知识总结

    a.什么是方法重载?(同一个类中)方法重载是指在同一个类中,出现方法名相同,参数列表不同的情况. b.什么是方法覆盖?(子父类中)方法覆盖是指在子类中,出现和父类一模一样的方法声明的时候,会运行子类的 ...

  2. Hadoop基础-网络拓扑机架感知及其实现

    Hadoop基础-网络拓扑机架感知及其实现 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网络拓扑结构 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其 ...

  3. SQL Server 日期和时间类型

    在Microsoft SQL Server的类型系统中,使用 date 表示日期类型,使用time表示时间类型,使用DateTime和DateTime2表示日期和时间的组合,DateTime2是Dat ...

  4. javascript 获取鼠标在盒子中的坐标

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Hbase记录-Hbase介绍

    Hbase是什么 HBase是一种构建在HDFS之上的分布式.面向列的存储系统,适用于实时读写.随机访问超大规模数据的集群. HBase的特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇 ...

  6. Study 6 —— while循环

    语法while 条件: 执行代码... 1. #从0打印到100,每循环一次 +1 count = 0 while count <= 100 : print('Loop: ', count) c ...

  7. PHP5.5+Nginx1.9

    1. 安装Nginx:http://www.cnblogs.com/vurtne-lu/p/7010065.html 2. 编译安装 [root@zabbix opt]# wget http://cn ...

  8. vue自学入门-3(vue第一个例子)

    1.安装后打开8080端口,http://localhost:8080/#/ 2.进入项目目录 2.默认路由 3.修改文件index.js 将Import HelloWorld一句修改为 import ...

  9. 四、NAND Flash

    4.1 nand flash启动u-boot nand flash 启动的时候,CPU 需要将 nand flash 中前面 4KB 的内容复制到 SRAM 中执行,然后将 NAND Flash 中的 ...

  10. Docker入门02——Dockerfile详解

    基本示例 FROM MAINTAINER LABEL RUN ADD COPY CMD ENTRYPOINT ENV EXPOSE VOLUME WORKDIR USER ARG 基本示例 # Thi ...