ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN异机恢复(不同系统)

RMAN异机恢复(不同系统)

原创 Linux操作系统 作者:q418441117 时间:2012-09-20 18:05:10 0 删除 编辑

RMAN异机恢复(不同系统)

环境:

源环境:系统LINUX-32    ORACLE:10.2.0.4

目标环境:系统LINUX-64   ORACLE:10.2.0.4

准备工作:COPY controlfile,spfile备份集。全库备份集。Archivelog备份集。

一:restore SPFILE

使用RMAN进入其他instance,才可以恢复出spfile

RMAN> restore spfile to '/u01/MICSPROD.spfile' from '/u01/MICSPRODBAK';

 

根据恢复的SPFILE,用LINUX下strings命令打开,复制到vi下,把controlfile注释掉,编辑成PFILE。

SQL> startup nomount   pfile='/u01/MICSPROD.pfile';

SQL> create spfile from    pfile='/u01/MICSPROD.pfile';

SQL> shutdown immediate

SQL> startup nomount

 

二:restore controlfile

[oracle@micsgmm ~]$ rman target /

RMAN> restore controlfile from '/u01/MICSPRODBAK/2012_09_06/o1_mf_s_793317938_84kcflvf_.bkp';

SQL> alter database mount;

SQL> show parameter control

NAME                                 TYPE        VALUE

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

control_file_record_keep_time        integer     7

control_files                        string      /u01/app/oracle/oradata/MICSPR

                                                 OD/controlfile/o1_mf_85lf9xxp_

                                                 .ctl, /u01/app/oracle/flash_re

                                                 covery_area/MICSPROD/controlfi

                                                 le/o1_mf_85lf9yjz_.ctl

 

三:restore datafiles

由于备份集和目标路劲不同,所以要注册备份集和指定恢复后的路劲

RMAN> catalog start with '/u01/MICSPRODBAK/2012_09_06_1/o1_mf_nnnd0_LEVEL0_060912_84k09py2_.bkp';              (注册备份集)

 

(指定恢复后的路劲)

RUN

{ set newname for datafile 1 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_system_4s1qt2g2_.dbf';        

  set newname for datafile 2 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_undotbs1_4s1qt2jf_.dbf';       

  set newname for datafile 3 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_sysaux_4s1qt2g7_.dbf';        

  set newname for datafile 4 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_users_4s1qt2jn_.dbf';          

  set newname for datafile 5 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_emp_4swx1w4s_.dbf';      

  set newname for datafile 6 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_ttk_4swx1wp0_.dbf';        

  set newname for datafile 7 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_pre_4swx1xh0_.dbf';        

  set newname for datafile 8 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_enr_4swx1yk8_.dbf';        

  set newname for datafile 9 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_cla_4swx1zcf_.dbf';     

  set newname for datafile 10 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_fin_4swx212s_.dbf';

  set newname for datafile 11 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_sta_4swx21vr_.dbf';

  set newname for datafile 12 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_cla_4swx2305_.dbf';

  set newname for datafile 13 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_ind_4swx24gn_.dbf';

  set newname for datafile 14 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_cal_4swx25q9_.dbf';

  set newname for datafile 15 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_xml_4swx29t3_.dbf';

  set newname for datafile 16 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_ttk_4swx2bxy_.dbf';

  set newname for datafile 17 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_med_4swx2d7r_.dbf';

  set newname for datafile 18 to '/u01/app/oracle/oradata/MICSPROD/datafile/o1_mf_tbsp_mic_56tddh9m_.dbf';

restore database;

switch datafile all;           --修改控制文件的路劲

}

 

 

四:restore archivelog

RMAN> catalog start with '/u01/MICSPRODBAK/ARCHIVE';    - -注册archivelog的备份路劲。

SQL>SELECT *  FROM  v$ARCHIVED_LOG ORDER BY SEQUENCE#;

RMAN> list backup;     或者    RMAN> list backup of archivelog all;      --查看需要恢复那些SEQUENCE

RMAN> run {set archivelog destination to '/u01/MICSPRODBAK/archivelog';

2> restore archivelog sequence between 51991 and 51996;}

 

五:recover database,输入需要的archivelog路劲。

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 867752661 generated at 09/06/2012 18:55:30 needed for thread

1

ORA-00289: suggestion :

/u01/app/oracle/flash_recovery_area/MICSPROD/archivelog/2012_09_20/o1_mf_1_51991

_%u_.arc

ORA-00280: change 867752661 for thread 1 is in sequence #51991

 

 

Specify log: {=suggested | filename | AUTO | CANCEL}

/u01/MICSPRODBAK/archivelog/1_51991_726956744.dbf

ORA-00279: change 867753319 generated at 09/06/2012 19:15:15 needed for thread

1

ORA-00289: suggestion :

/u01/app/oracle/flash_recovery_area/MICSPROD/archivelog/2012_09_20/o1_mf_1_51992

_%u_.arc

ORA-00280: change 867753319 for thread 1 is in sequence #51992

ORA-00278: log file '/u01/MICSPRODBAK/archivelog/1_51991_726956744.dbf' no

longer needed for this recovery

 

 

修改ONLINE REDOLOG路劲:

SQL> alter database rename file '/u02/app/oracle/flash_recovery_area/MICSPROD/MICSPROD/onlinelog/o1_mf_3_66bgg9ld_1.log' to '/u01/app/oracle/flash_recovery_area/MICSPROD/onlinelog/redo01.log';

 

 

六:以RESETLOGS打开数据库

SQL> alter database open resetlogs;

注意:查看TEMP文件是否存在。

 

 

七:由于是LINUX-32导入到LINUX-64,所以要编译无效对象。

编译对象,先关闭数据库,然后以升级模式重新启动

Shutdown immediate

Startup upgrade pfile=’/u02/app/oracle/oradata/MICSREGR/rmandata/MICSREGR.ora’;

@@ ?/rdbms/admin/utlirp.sql

 

编译数据库中无效对象

Shutdown immediate;

Startup pfile=’/u02/app/oracle/oradata/MICSREGR/rmandata/MICSREGR.ora’;

@@ ?/rdbms/admin/utlrp.sql

在执行脚本过程中,会报03113错误

DECLARE
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel

 

再次编译@@ ?/rdbms/admin/utlrp.sql

Session异常中断,在alter log和trace里都有ORA-7445错误

Errors in file /u02/app/oracle/admin/MICSREGR/bdump/micsregr_j000_29490.trc:
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address not mapped to object] [0x2AB297D771CF] [] []

   导致这个问题,是因为我们启动了OLAP,在32位转到64位时就会遇到这种错误。

处理OLAP问题

(1)       删除组件

@?/olap/admin/catnoamd.sql

@?/olap/admin/olapidrp.plb

@?/olap/admin/catnoxoq.sql

@?/olap/admin/catnoaps.sql

@?/olap/admin/cwm2drop.sql ---此脚本在11G的版本中用,在10G是不需要的。

@?/rdbms/admin/utlrp.sql

drop public synonym OlapFactView;

drop public synonym OlapDimView;

drop public synonym DBMS_ODM;

关闭数据库

(2)       添加OLAP组件

利用DBCA工具。

因为恢复的实例在DBCA中是看不到的,所以要做一些修改,修改如下:/etc/oratab

添加MICSREGR:/u01/app/oracle/product/10.2.0/db_1:N

然后在图形化下启动DBCA, 选择 configure database option--------next--------next----------选择OLAP(SYSAUX) ----next ------finish

           待重建完毕后,可再次查看无效对象:

select count(*) from all_objects where status='INVALID';

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26655292/viewspace-744469/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-09-11

  • 博文量
    203
  • 访问量
    471909