如果自己搞不定可以找诗檀软件专业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.2、10.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$controlfile、v$logfile、v$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/dbname:asmdb
・・在DG1 disk group上配置了控制文件、数据文件、online REDO 日志文件
・归档日志文件的输出地址为DG1
・发生故障的disk group为DG1
・制成相同名字的DG1的disk 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实例:执行备份
=======================================
如果完成所有恢复处理的话,就请立即进行备份。
Leave a Reply