RMAN 异机恢复

 

 

九牧王ONE-ERP项目

ORACLE 还原到异机不同文件夹

 

 

 

Author:         wuzhiqiang

Creation Date:  2013-08-20

Last Updated:   

Control Number: 

Version:         v1.0

 

 

变更记录

Date

Author

Version

Change Reference

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

审阅

Name

Position

 

 

 

 

 

 

 

 

 

 

 

 

分发

Copy No

Name

Location

 

 

 

1     

 

 

2     

 

 

3     

 

 

4     

 

 

5     

 

 

6     

 

 

7     

 

 

8     

 

 

9     

 

 

10    

 

 

11    

 

 

12    

 

 

13    

 

 

14    

 

 

15    

 

 

16    

 

 

17    

 

 

18    

 

 

19    

 

 

20    

 

 

21    

 

 

22    

 

 

 

 

文档控制....................................................................................................................................... ii

1    ORACLE catalog还原到异机不同文件夹.......................................................................... 4

2     参数文件的恢复..................................................................................................................... 4

2.1      从指定位置恢复参数文件,这时只要先启动数据库到nomount状态,可以用其他实例的参数文件;       4

2.2      从还原的SPFILE文件启动数据库到nomount状态,然后从SPFILE文件创建PFILE.......... 4

2.3      修改参数文件、创建相应的系统目录;.............................................................................. 4

3     控制文件的还原..................................................................................................................... 4

4     数据文件的restore............................................................................................................ 5

5     进行数据文件的recover.................................................................................................... 6

6     resetlogs的方式启动数据库....................................................................................... 6


1 ORACLE catalog还原到异机不同文件夹

本文档介绍如何使用catalog数据库还原数据库到不同的机器上面,且目标数据库的文件结构跟源数据库的文件结构不一致,但是数据库版本是一致的;

整个还原的思路如下:

a)       先还原参数文件SPFILE

b)       然后通过SPFILE参数文件生成PFILE

c)       PFILE文件进行修改,创建符合本机的目录结构;

d)      启动到nomount状态;

e)       还原控制文件;

f)        通过指定恢复位置进行数据文件的restore

g)       修改控制文件中的数据文件的路径,然后进行recover

h)      修改redo log的位置,通过resetlogs方式启动数据库;

2 参数文件的恢复

2.1      指定位置还原参数文件

指定位置恢复参数文件,这时只要先启动数据库到nomount状态,可以用其他实例的参数文件;

脚本:restore spfile to 'c:\testspfile.ora' from 'd:\SPFILE_20130820';

2.2      spfile创建pfile

从还原的SPFILE文件启动数据库到nomount状态,然后从SPFILE文件创建PFILE

脚本:create pfile='D:\PFILETEST.ORA' FROM SPFILE;

2.3      修改参数文件、创建相应的系统目录;

需要创建控制文件的路径、报警日志的路径、快速闪回区的路径、修改内存的大小;

3 控制文件的还原

rman恢复控制文件的时候需要先设置恢复数据库的DBID,控制文件恢复完启动数据库到mount状态;

脚本:set DBID=1542976835

脚本:

run {   

ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';

SEND DEVICE TYPE 'SBT_TAPE' 'NSR_ENV=(NSR_SERVER=bkserver01,NSR_CLIENT=ekpdb01)';

restore controlfile from 'EKPJ_CONTROL_312_1_20130820';

RELEASE CHANNEL CH1; 

}

4 数据文件的restore

因为恢复的目录不一样,所以需要通过set  newname进行数据文件的重定向;

脚本:

run {

ALLOCATE CHANNEL C1 TYPE 'SBT_TAPE';

ALLOCATE CHANNEL C2 TYPE 'SBT_TAPE';

ALLOCATE CHANNEL C3 TYPE 'SBT_TAPE';

ALLOCATE CHANNEL C4 TYPE 'SBT_TAPE';

SEND DEVICE TYPE 'SBT_TAPE' 'NSR_ENV=(NSR_SERVER=bkserver01,NSR_CLIENT=ekpdb01)';

set newname for datafile 1 to '/oracle/oradata/ekpj/system01.dbf';

set newname for datafile 2 to '/oracle/oradata/ekpj/sysaux01.dbf';

set newname for datafile 3 to '/oracle/oradata/ekpj/undotbs01.dbf';

set newname for datafile 4 to '/oracle/oradata/ekpj/users01.dbf';

set newname for datafile 5 to '/oracle/oradata/ekpj/EKP01';

set newname for datafile 6 to '/oracle/oradata/ekpj/EKP02';

set newname for datafile 7 to '/oracle/oradata/ekpj/EKP03';

set newname for datafile 8 to '/oracle/oradata/ekpj/EKP04';

set newname for datafile 9 to '/oracle/oradata/ekpj/EKP05';

set newname for datafile 11 to '/oracle/oradata/ekpj/EKP06';

set newname for datafile 12 to '/oracle/oradata/ekpj/EKP07';

set newname for datafile 13 to '/oracle/oradata/ekpj/EKP08';

set newname for datafile 14 to '/oracle/oradata/ekpj/EKP09';

set newname for datafile 15 to '/oracle/oradata/ekpj/EKP10';

set newname for datafile 10 to '/oracle/oradata/ekpj/INDEX01';

restore database;

RELEASE CHANNEL C1;

RELEASE CHANNEL C2;

RELEASE CHANNEL C3;

RELEASE CHANNEL C4;

5 进行数据文件的recover

因为这个时候控制文件里面的文件信息还是指向原来的文件路径,这个时候需要查看控制文件中的原文件路径脚本,然后修改对应的文件路径成正确的文件路径;

查看控制文件中的文件路径:select name from v$datafile;

修改脚本:

alter database rename file  '/data/ekpj/system01.dbf'  to '/oracle/oradata/ekpj/system01.dbf';

alter database rename file  '/data/ekpj/sysaux01.dbf'  to '/oracle/oradata/ekpj/sysaux01.dbf';

alter database rename file  '/data/ekpj/undotbs01.dbf' to '/oracle/oradata/ekpj/undotbs01.dbf';

6  resetlogs的方式启动数据库

跟其他文件系统一样,也需要重新修改redolog的路径,才能进行resetlogs

查看日志文件组:select * from v$logfile;

修改日志文件路径:alter database rename file '/data/redo03.log' to '/oracle/oradata/redo03.log';

启动数据库:alter database open resetlogs;

7 添加临时表空间

脚本:SQL> create temporary tablespacetemp01 tempfile '/oracle/oradata/ekpj/temps01.dbf' size 200M;

脚本:SQL> alter database default temporary tablespace temp01;

请使用浏览器的分享功能分享到微信等