RMAN异机恢复到不同的路劲下

1.全库备份,scp到异机目录下
  查询源库的DBID:
  SQL> select dbid,name from v$database;

      DBID NAME
---------- ---------
 439840715 YIJI

SQL>
   异机建立dump目录、oradata下建立SID名对应目录
 
2.恢复spfile,启动到nomount:   
   export ORACLE_SID=yiji
   rman target /
   set dbid=439840715
   startup nomount
   restore spfile to pfile '/u01/yiji/inityiji.ora' from '/u01/oradata/rman/YIJI_7_1_1.spf';
   startup force nomount pfile='/u01/yiji/inityiji.ora';

3.恢复控制文件到新的'/u01/yiji/' 而非老的'/u01/oradata/yiji/',启动到mount
 restore controlfile to '/u01/yiji/control01.ctl' from '/u01/oradata/rman/YIJI_6_1_1.ctl';
 restore controlfile to '/u01/yiji/control02.ctl' from '/u01/oradata/rman/YIJI_6_1_1.ctl';
RMAN> restore controlfile to '/u01/yiji/control03.ctl' from '/u01/oradata/rman/YIJI_6_1_1.ctl';

Starting restore at 19-JAN-15
using channel ORA_DISK_1

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 19-JAN-15

RMAN>


 这个时候,初始化参数文件中的控制文件还是显示的之前的:
 SQL> show parameter contro

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      /u01/oradata/yiji/control01.ct
                                                 l, /u01/oradata/yiji/control02
                                                 .ctl, /u01/oradata/yiji/contro
                                                 l03.ctl
SQL>

 alter database mount;

 RMAN> alter database mount;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 01/19/2015 16:46:59
ORA-00205: error in identifying control file, check alert log for more info

RMAN>

所以,先修改 '/u01/yiji/inityiji.ora' 文件中的控制文件地址/u01/yiji,启动到nomout,然后再次mount:

RMAN> startup force nomount pfile='/u01/yiji/inityiji.ora';

Oracle instance started

Total System Global Area     285212672 bytes

Fixed Size                     2020224 bytes
Variable Size                 92277888 bytes
Database Buffers             188743680 bytes
Redo Buffers                   2170880 bytes

RMAN> alter database mount;

using target database control file instead of recovery catalog
database mounted

RMAN>


4.恢复数据库
 登记备份段:
catalog start with '/u01/oradata/rman/';

 run  {
set newname for datafile '/u01/oradata/yiji/system01.dbf' to '/u01/yiji/system01.dbf';
set newname for datafile '/u01/oradata/yiji/undotbs01.dbf' to '/u01/yiji/undotbs01.dbfF';
set newname for datafile '/u01/oradata/yiji/sysaux01.dbf' to '/u01/yiji/sysaux01.dbf';
set newname for datafile '/u01/oradata/yiji/users01.dbf' to '/u01/yiji/users01.dbf';
restore database;
switch datafile all;
}
recover database;

5.此时,控制文件中的redolog的路劲还是之前的/u01/oradata/yiji,所以需要backup controlfile to trace的方式重建控制文件,
修改其中的redolog的路劲到新的路劲,然后再打开:

CREATE CONTROLFILE REUSE DATABASE "YIJI" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/yiji/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/yiji/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/yiji/redo03.log'  SIZE 50M
DATAFILE
  '/u01/yiji/system01.dbf',
  '/u01/yiji/undotbs01.dbfF',
  '/u01/yiji/sysaux01.dbf',
  '/u01/yiji/users01.dbf'
CHARACTER SET WE8ISO8859P1
;


alter database open resetlogs;

至此,控制文件、数据文件、redolog的路劲全部改了,数据库恢复成功!

本文出自 “hunter的Oracle世界” 博客,转载请与作者联系!

你可能感兴趣的:(rman,异机恢复,路劲)