例:将mestest服务器的dtlbwms数据库移动到dtsoradb01服务器中。
1、源数据库RMAN备份:
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