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

例:将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:如果当前的控制文件不允许从这个历史备份集中进行恢复,立马寻求他法!!!

参看:http://www.cnblogs.com/Vegaslee/archive/2010/04/26/1721454.html 用dbms_backup_restore解决RMAN-06026 06023错误

 

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

RMAN >  recover  database ;

也可以在sqlplus中手动恢复

SQL > recover  database  using  backup  controlfile until cancel; 

 

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

 http://www.cnblogs.com/Vegaslee/archive/2010/03/26/1696698.html

 

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

RMAN >   alter   database   open  resetlogs;

 

15、配置em

参看:http://www.cnblogs.com/vegaslee/archive/2009/04/08/1431762.html 

 

 

【Vegas原创】使用RMAN转移数据库到不同主机(Linux版)请参看:http://www.cnblogs.com/vegaslee/archive/2009/03/02/1401481.html

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

常见问题解决:

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 

 

 

 

参考文档:http://junmail.javaeye.com/blog/237109 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值