需要迁移的文件有 * 数据文件 * 控制文件 * 临时表空间文件 * redo 文件 * UNDO 文件
1.将数据库在 mount 状态下
shutdown immediate;
startup mount;
2.迁移数据文件(也可考虑并行)
copy datafile '+DG/test/datafile/system.293.939434861' to '/u01/app/oracle/oradata/test/system.293.939434861';
copy datafile '+DG/test/datafile/sysaux.294.939434861' to '/u01/app/oracle/oradata/test/sysaux.294.939434861';
copy datafile '+DG/test/datafile/undotbs1.295.939434861' to '/u01/app/oracle/oradata/test/undotbs1.295.939434861';
copy datafile '+DG/test/datafile/users.296.939434861' to '/u01/app/oracle/oradata/test/users.296.939434861';
rman target / 执行上面语句
alter database rename file '+DG/test/datafile/system.293.939434861' to '/u01/app/oracle/oradata/test/system.293.939434861';
alter database rename file '+DG/test/datafile/sysaux.294.939434861' to '/u01/app/oracle/oradata/test/sysaux.294.939434861';
alter database rename file '+DG/test/datafile/undotbs1.295.939434861' to '/u01/app/oracle/oradata/test/undotbs1.295.939434861';
alter database rename file '+DG/test/datafile/users.296.939434861' to '/u01/app/oracle/oradata/test/users.296.939434861';
sqlplus 下执行上面语句
alter database open;
3.迁移控制文件
SQL> create pfile='/u01/app/oracle/test.ora' from spfile;
File created.
修改 /u01/app/oracle/test.ora
*.control_files='/u01/app/oracle/control.ctl'
直接cp 控制文件 (复制当前控制文件)
关库
ASMCMD> cp +DG/TEST/CONTROLFILE/Current.290.939861683 /u01/app/oracle/control.ctl
注意修改 control.ctl 文件权限
使用 pfile 启库
4.迁移redo
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo1.log' size 512m;
Database altered.
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo2.log' size 512m;
Database altered.
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo3.log' size 512m;
Database altered.
进行多次 alter system switch logfile;
SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
Database altered.
5.迁移 temp 文件
SQL> create TEMPORARY TABLESPACE temp1 tempfile '/u01/app/oracle/oradata/test/temp01.dbf' size 512m;
Tablespace created.
SQL> alter database default temporary tablespace TEMP1;
Database altered.
SQL> drop TABLESPACE TEMP;
Tablespace dropped.
SQL> col name for a60
SQL> select file#,name from v$tempfile;
FILE# NAME
---------- ------------------------------------------------------------
2 /u01/app/oracle/oradata/test/temp01.dbf
到此迁移完成,rman copy (非归档方式),需要多次停库,感觉不太适用,你们学会了么
1.将数据库在 mount 状态下
shutdown immediate;
startup mount;
2.迁移数据文件(也可考虑并行)
copy datafile '+DG/test/datafile/system.293.939434861' to '/u01/app/oracle/oradata/test/system.293.939434861';
copy datafile '+DG/test/datafile/sysaux.294.939434861' to '/u01/app/oracle/oradata/test/sysaux.294.939434861';
copy datafile '+DG/test/datafile/undotbs1.295.939434861' to '/u01/app/oracle/oradata/test/undotbs1.295.939434861';
copy datafile '+DG/test/datafile/users.296.939434861' to '/u01/app/oracle/oradata/test/users.296.939434861';
rman target / 执行上面语句
alter database rename file '+DG/test/datafile/system.293.939434861' to '/u01/app/oracle/oradata/test/system.293.939434861';
alter database rename file '+DG/test/datafile/sysaux.294.939434861' to '/u01/app/oracle/oradata/test/sysaux.294.939434861';
alter database rename file '+DG/test/datafile/undotbs1.295.939434861' to '/u01/app/oracle/oradata/test/undotbs1.295.939434861';
alter database rename file '+DG/test/datafile/users.296.939434861' to '/u01/app/oracle/oradata/test/users.296.939434861';
sqlplus 下执行上面语句
alter database open;
3.迁移控制文件
SQL> create pfile='/u01/app/oracle/test.ora' from spfile;
File created.
修改 /u01/app/oracle/test.ora
*.control_files='/u01/app/oracle/control.ctl'
直接cp 控制文件 (复制当前控制文件)
关库
ASMCMD> cp +DG/TEST/CONTROLFILE/Current.290.939861683 /u01/app/oracle/control.ctl
注意修改 control.ctl 文件权限
使用 pfile 启库
4.迁移redo
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo1.log' size 512m;
Database altered.
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo2.log' size 512m;
Database altered.
SQL> alter database add logfile '/u01/app/oracle/oradata/test/nredo3.log' size 512m;
Database altered.
进行多次 alter system switch logfile;
SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
Database altered.
5.迁移 temp 文件
SQL> create TEMPORARY TABLESPACE temp1 tempfile '/u01/app/oracle/oradata/test/temp01.dbf' size 512m;
Tablespace created.
SQL> alter database default temporary tablespace TEMP1;
Database altered.
SQL> drop TABLESPACE TEMP;
Tablespace dropped.
SQL> col name for a60
SQL> select file#,name from v$tempfile;
FILE# NAME
---------- ------------------------------------------------------------
2 /u01/app/oracle/oradata/test/temp01.dbf
到此迁移完成,rman copy (非归档方式),需要多次停库,感觉不太适用,你们学会了么
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7569309/viewspace-2136279/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7569309/viewspace-2136279/