例:将mestest服务器的dtlbwms数据库移动到dtsoradb01服务器中。

1、源数据库RMAN备份:

【Vegas原创】使用RMAN转移数据库到不同主机(Windows版)_oracle

【Vegas原创】使用RMAN转移数据库到不同主机(Windows版)_sql_02

run {
set command id to 'rman';
allocate channel dev1 type disk;
backup  
   format 'F:\HISDBRMANBAK\df%s_%p_%t'
   database include current controlfile;

sql 'alter system archive log current';
sql 'alter system archive log current';

delete noprompt obsolete;

backup
   filesperset 20
   format 'F:\HISDBRMANBAK\Log\ar%s_%p_%t'
   (archivelog until time '(SYSDATE-1)' all delete input);

delete noprompt obsolete;

release channel dev1;
}

 

 

2、获得源数据库的参数文件,修改后传送至目标数据库,修改后的参数文件可以用于数据库启动,主要修改的参数应该包括:*_dmpb_dest、control_files、db_recovery_file_dest、db_create_file_dest等。

 

3、show parameter查出*_dmpb_dest、control_files、db_recovery_file_dest、db_create_file_dest等参数,在目标数据库中建立相应的文件夹。

 

4、将init<SID>.ora文件、Control文件copy到目标数据库,更改pfile相应的路径参数。如没有pfile,则在源数据库中从spfile生成:

SQL>create pfile form spfile;

 

5、在window平台下,可以通过oradim创建一个服务启动oracle环境。  

C:\>oradim -new -sid dtlbwms

 

 

6、通过rman来启动数据库到nomount状态

C:\>set oracle_sid=dtlbwms
C:\>rman target / 
RMAN> startup nomount pfile ='F:\oracle\product\10.2.0\db_1\database\initdtlbwms.ora'

 

7、通过备份的控制文件恢复出控制文件

RMAN> restore controlfile from 'F:\tmp\DF344_1_714024149';

 

8、装载数据库

RMAN> alter database mount;

 

9、将备份集拷贝到相应目录,向控制文件中加载备份集

RMAN>catalog start with 'G:\wmsRMan';

10、作交叉检查,然后删除无效backup。

RMAN> crosscheck backup;
RMAN> delete expired backup;

 

11、通过控制文件获得表空间及数据文件列表

RMAN> report schema;

 

12、通过编写恢复脚本,然后执行恢复

RMAN>run{
set newname for datafile 1 to 'F:\oracle\product\10.2.0\oradata\dtlbwms\SYSTEM01.DBF';
set newname for datafile 2 to 'F:\oracle\product\10.2.0\oradata\dtlbwms\UNDOTBS01.DBF';
set newname for datafile 3 to 'F:\oracle\product\10.2.0\oradata\dtlbwms\SYSAUX01.DBF';
set newname for datafile 4 to 'F:\oracle\product\10.2.0\oradata\dtlbwms\USERS01.DBF';
set newname for tempfile 1 to 'F:\oracle\product\10.2.0\oradata\dtlbwms\TEMP01.DBF';
restore database;
switch datafile all;
}

 

run{
set newname for datafile 1 to 'D:\oracle\product\10.2.0\oradata\hisdb\SYSTEM01.DBF';
set newname for datafile 2 to 'D:\oracle\product\10.2.0\oradata\hisdb\UNDOTBS01.DBF';
set newname for datafile 3 to 'D:\oracle\product\10.2.0\oradata\hisdb\SYSAUX01.DBF';
set newname for datafile 4 to 'D:\oracle\product\10.2.0\oradata\hisdb\USERS01.DBF';
set newname for datafile 5 to 'D:\oracle\product\10.2.0\oradata\hisdb\EXAMPLE01.DBF';
set newname for datafile 6 to 'D:\oracle\product\10.2.0\oradata\hisdb\DRSYS';
set newname for datafile 7 to 'D:\oracle\product\10.2.0\oradata\hisdb\INDX';
set newname for datafile 8 to 'D:\oracle\product\10.2.0\oradata\hisdb\RBS';
set newname for datafile 9 to 'D:\oracle\product\10.2.0\oradata\hisdb\TOOLS';
set newname for tempfile 1 to 'D:\oracle\product\10.2.0\oradata\hisdb\TEMP01.DBF';
restore database;
switch datafile all;
}

 

注意:如果数据文件路径和原来的相同则直接

run
{
restore database;
}

 

PS:如果当前的控制文件不允许从这个历史备份集中进行恢复,立马寻求他法!!!

参看用dbms_backup_restore解决RMAN-06026 06023错误

 

13、数据文件恢复出来以后,可以对数据库应用归档日志进行恢复

RMAN> recover database;

也可以在sqlplus中手动恢复

SQL>recover database using backup controlfile until cancel;

 

PS:如果在线日志或归档日志全部丢失,不能进行如上操作,请参看:


 

14、最后以resetlogs方式打开数据库

RMAN> alter database open resetlogs;

 

15、配置em

 

 

【Vegas原创】使用RMAN转移数据库到不同主机(Linux版)

----------------------------------------------------------------------------------------------------------------

常见问题解决:

1,目标数据库startup时,报redolog路径不对错误:

ALTER DATABASE RENAME FILE  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO01.LOG' TO  'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO01.LOG'; 
ALTER DATABASE RENAME FILE  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO02.LOG' TO  'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO02.LOG'; 
ALTER DATABASE RENAME FILE  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO03.LOG' TO  'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\REDO03.LOG';  

 

2,OEM查看表空间时,报TEMP空间错误:

ALTER DATABASE RENAME FILE  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\TEMP01.DBF' TO  'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DTLBWMS\TEMP01.DBF';

 

3,select时,报ORA-06553错误:
1)、Shutdown immediate
2)、startup migrate
注:startup migrate表示降级,在9i,无论升级/降级 数据库都是startup migrate;
10g后增加了upgrade参数,升级可直接用startup upgrade,降级仍是startup migrate.
3)、@$ORACLE_HOME/rdbms/admin/utlirp.sql;
4)、Shutdown immediate
5)、Startup
6)、@$ORACLE_HOME/rdbms/admin/utlrp.sql;
7)、Shutdown immediate
8)、Startup