[ASM] 使用RMAN修复(restore/recovery)的方法(10.1.0.3以前/OMF)

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569 邮箱:[email protected]

 

本文章

  Document 1732736.1(KROWN:105100) [ASM] disk group破损时使用RMAN修复的方法

总结使用RMAN执行restore/recovery的顺序的文章。

ASM环境中,因为某些原因(H/W故障等)包含数据库的结构文件的disk group破损时,请参考Document 1732736.1(KROWN:105100),主要操作顺序如下所示。

03. 制成disk group以及目录

04. 从备份中restore

05. 执行恢复

[适用版本]

Oracle Database 10g Release1 (10.1.0.210.1.0.3)

# 本文章的对象的数据库的详细内容,请查看 [前提条件]

[适用平台]

所有平台

[前提条件]

以下操作请满足以下前提条件后执行。

・数据库在 PSR 10.1.0.3 之前。

・通RMAN获得的备份不是发生故障的disk group,在正常的disk group或者文件系统上配置,并且可以使用。

・如果通RMAN获得的备份如果是online备份时,就已经收集完成了归档日志文件的备份

・控制文件、数据文件、online REDO日志文件为OMF形式 (*1)

・控制文件、数据文件、online REDO日志文件、归档日志文件所包含的所有disk group出现了故障

・以通RMAN获得的备份为基础,尽可能以最新的状态来执行恢复。

(*1)

OMF的形式是指制成ASM文件时,用户不指定其他名字来制作时,就会自动添加名字。

OMF的形式可以通过参考 v$controlfilev$logfilev$datafile 来查看。

OMF的形式与路径如下所示

>

制御文件         :+DG1/asmdb/controlfile/current.268.1

数据文件       :+DG1/asmdb/datafile/system.261.1

Online REDO日志文件:+DG1/asmdb/onlinelog/group_1.258.1

[顺序概要]

使用的版本 Oracle 10.1.0.2 或者10.1.0.3 ,并且,ASM文件名中使用了OMF的形式时,因为是Document 1730749.1(KROWN:98490) 的问题,所以无法restore相同名字的disk group

因此会restore其他disk group

01. DB实例:shutdown

02. ASM实例:删除破损的disk group

03. ASM实例:重新制作disk group

04. DB实例:准备 init参数

05. 启动rman,连接目标数据库以及恢复catalog(如果使用了的话)

06. DB实例:startup nomount

07. DB实例:restore控制文件

08. DB实例:执行alter database mount実行

09. 查看可以恢复的point

10. DB实例:restore数据文件

11. DB实例:执行RECOVER命令

12. DB实例:执行alter database open resetlogs

13. DB实例:恢复本地管理临时表区域

14. DB实例:重新编辑init参数

15. DB实例:执行备份

以下的例子中,设定如下所示。

ORACLE_SID/dbnameasmdb

・・在DG1 disk group上配置了控制文件、数据文件、online REDO 日志文件 

归档日志文件的输出地址为DG1

发生故障的disk groupDG1

・制成相同名字的DG1disk group

RMAN的备份会获得控制文件、数据文件、归档日志文件。为了在不是DG1的文件系统上也可以使用,需要设定以下参数

  control_files       = ‘+DG1/asmdb/controlfile/current.268.1’

  db_create_file_dest = ‘+DG1’

  log_archive_dest_1  = ‘location=+DG1’

[详细顺序]

01. DB实例:shutdown

=============================

详细内容请参考 Document 1732736.1(KROWN:105100)

02. ASM实例:删除破损的disk group

====================================================

详细内容请参考Document 1732736.1(KROWN:105100)

03. ASM实例:重新制成disk group

========================================================

连接ASM实例,制成disk group

通过CREATE DISKGROUP命令制成disk group

因为Document 1730749.1(KROWN:98490) 中有问题,所以制成名为DG2 的新disk group

  >

   % setenv ORACLE_SID +ASM

   % sqlplus “/ as sysdba”

   SQL> create diskgroup DG2 disk

          ‘/dev/vgs11/rasmdisk_FA01’ name ASM2_DISK_A1,

          ‘/dev/vgs11/rasmdisk_FA02’ name ASM2_DISK_A2,

          ‘/dev/vgs11/rasmdisk_FB01’ name ASM2_DISK_B1,

          ‘/dev/vgs11/rasmdisk_FB02’ name ASM2_DISK_B2;

参考 Document 1732736.1(KROWN:105100)

04. DB实例:准备init参数

=========================================

为了restore新的disk group,编辑init参数文件。

仅对control_files参数指定disk group名。

  >

   control_files         = ‘+DG2’

   log_archive_dest_1    =’location=’+DG2′

   db_create_file_dest   = ‘+DG2’

   db_recovery_file_dest = ‘+DG2’

05. 启动rman,连接目标数据库以及恢复目录

===============================================================

启动rman,连接目标深刻以及恢复目录。

没有使用恢复目录的话,请只连接目标数据库。

  >使用了恢复目录

   % setenv ORACLE_SID asmdb104

   % rman target / catalog rman1/rman1@catalogdb

  >没有使用恢复目录

   % setenv ORACLE_SID asmdb104

   % rman target / nocatalog

06. DB实例:startup nomount

====================================

DB实例 startup nomount

RMAN product或者 sqlplus product都可以。

  >

   RMAN> startup nomount

07. DB实例:restore控制文件

============================================

restore控制文件。

  >

   RMAN> restore controlfile;

没有使用恢复目录时请添加from autobackuup 语句。上述内容是使用了disk的默认通道的例子。

tape进行备份时,会一边分割适合的通道一边进行restore

08. DB实例:执行alter database mount

=============================================

假设将实例进行mount

  >

   RMAN> alter database mount;

09. 查看可以恢复的point

=================================

本文章的案例中,因为归档日志文件的输出地址也是损坏的disk group,所以只有已备份的对象才会有归档日志文件。

可以恢复的point是获得了备份的归档日志文件制作应用了最新版本的对象。

执行list命令,在有备份的归档日志文件之中,可以查看最新的Next SCN的线程编号、日志顺序编号。

  >

   RMAN> list backup of archivelog all;

  

    备份set 40的归档日志列表如果有

    Thrd Seq     Low SCN    Low時刻  Next SCN   Next Time

    —- ——- ———- ——– ———- ———

    1    8       159548     05-08-02 161218     05-08-02

    1    9       161218     05-08-02 161229     05-08-02

  

等输出的话,就会变成线程编号1、日志顺序编号9

  

  

10. DB实例:restore数据文件

=============================================

restore数据文件。

备份tape时,请一边分割合适的通道一边进行restore。。

  >

   通过顺序 09,这次的案例中直到应用顺序编号09为止,请执行以下命令。

   RMAN> restore database until sequence 10 thread 1;

11. DB实例:执行RECOVER命令

========================================

执行RECOVER命令。执行增量备份(如果获得了的话)以及应用REDO。自动restore增量备份以及归档日志以及必要的文件。备份tape时,请一边分割合适的通道一边进行restore

  >

通过顺序 09,这次的案例中直到应用顺序编号09为止,请执行以下命令。

   RMAN> recover database until sequence 10 thread 1;

12. DB实例:执行alter database open resetlogs

======================================================

RECOVER命令完成的话,就会通过 RESETLOGS选项启动数据库。自动对新的disk group生成online REDO日志文件。

  >

   RMAN> alter database open resetlogs;

13. DB实例:恢复本地管理临时表区域

======================================================

使用本地管理临时表区域时,需要追加一些临时文件。追加时的group disk也是新的disk group

  *查看临时表区域

  SQL> select property_value from database_properties

       where property_name like ‘%TEMP%’;

  SQL> select * from dba_tablespaces where contents=’TEMPORARY’;

  

  * 追加临时文件

  SQL> alter tablespace <临时表区域名> add tempfile ‘+DG2’ size XXm;

14. DB实例:重新编辑init参数

===========================================

需要重新编辑control_files参数。

  * 查看现行控制文件的路径

  SQL> select name from v$controlfile;

  

  NAME

  ——————————————

  +DG2/asmdb/controlfile/current.256.1

  

  * control_file 参数中,用全路径指定使用 v$controlfile查看到的路径,重启。

  >

  control_files = ‘+DG2/asmdb/controlfile/current.256.1’

15. DB实例:执行备份

=======================================

如果完成所有恢复处理的话,就请立即进行备份。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *