如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]
本文章主要说明 Document 1732736.1(KROWN:105100) [ASM] disk group破损时,使用RMAN修复的方法(restore/recovery),并总结使用RMAN执行restore/recovery的顺序的文章。
ASM 环境中,因为某些原因(H/W故障等)包含数据库的的结构文件的disk group修复时, Document 1732736.1(KROWN:105100) 的顺序如下所示。
03. 制成disk group以及目录
04.从备份中restore
05.执行恢复
[适用版本]
Oracle 10g Database Release 1 (10.1.0.4 以上)
Oracle 10g Database Release 2 (10.2.0)
# 本文的对象的数据库的详细内容请查看[前提条件]
[适用平台]
所有平台
[前提条件]
我们之后将谈到的操作方法都必须满足以下前提条件。
・数据库的版本在 PSR 10.1.0.4 以上。
・通过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/asmdb104/controlfile/current.267.565224183
数据文件 : +DG1/asmdb104/datafile/system.260.565218957
Online REDO日志文件: +DG1/asmdb104/onlinelog/group_1.257.565218957
[顺序概要]
使用版本为 Oracle 10.1.0.4 以上时,Document 1730749.1(KROWN:98490)中的对策无法解决,请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:asmdb104
・在DG1 disk group上配置了控制文件、数据文件、online REDO 日志文件
・归档日志文件的输出地址为DG1
・发生故障的disk group为DG1
・制成相同名字的DG1的disk group
・RMAN的备份会获得控制文件、数据文件、归档日志文件。为了在不是DG1的文件系统上也可以使用,需要设定以下参数
control_files = ‘+DG1/asmdb104/controlfile/current.267.565224183’
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。
使用的版本为 Oracle 10.1.0.4 以上时,因为无法对应Document 1730749.1(KROWN:98490)的问题,制成相同名字的disk group。
例>
% setenv ORACLE_SID +ASM
% sqlplus “/ as sysdba”
SQL> create diskgroup DG1 disk
‘/dev/vgs11/rasmdisk_FA01’ name ASM1_DISK_A1,
‘/dev/vgs11/rasmdisk_FA02’ name ASM1_DISK_A2,
‘/dev/vgs11/rasmdisk_FB01’ name ASM1_DISK_B1,
‘/dev/vgs11/rasmdisk_FB02’ name ASM1_DISK_B2;
参考Document 1732736.1(KROWN:105100)。
04. DB实例:准备init参数
=========================================
为了restore控制文件,control_files参数仅仅指定disk group名。
例>
control_files = ‘+DG1’
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 ‘+DG1’ size XXm;
并且,使用Oracle10.2 时,因为会自动追加临时表区域,所以不需要执行以上操作。
14. DB实例:重新编辑init参数
===========================================
需要重新编辑control_files参数。
* 查看现行控制文件的路径
SQL> select name from v$controlfile;
NAME
——————————————————————————–
+DG1/asmdb104/controlfile/current.256.565280849
在 * control_file 参数中,用全路径指定使用 v$controlfile查看到的路径,重启。
例>
control_files = ‘+DG1/asmdb104/controlfile/current.256.565280849’
15. DB实例:执行备份
=======================================
如果完成所有恢复处理的话,就请立即进行备份。
Leave a Reply