如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
[Problem]
包含current的online REDO日志文件全部损坏了。
控制文件,数据文件没有损坏。
用RMAN获得备份。
使用catalog。并以归档日志模式来使用。
通过RMAN来修复的方法。
[To reproduce]
包含current的online REDO日志文件都损坏时,就会发生这样的故障。
。
SVRMGR> alter system switch logfile;
ORA-03113: end-of-file on communication channel
Alertファイル:
Thu Nov 30 17:46:50 2000
Errors in file /export/home/rman/ora816c/admin/tar816c/bdump/tar816c_lgwr_1880.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: ‘/export/home/rman/ora816c/oradata/tar816c/redo03.log’
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
Thu Nov 30 17:46:50 2000
LGWR: terminating instance due to error 313
Instance terminated by LGWR, pid = 1880
因为无法进行日志的switch,LGWR异常终止,实例下降
[Action]
以下是数据库的online REDO日志文件全部损坏时的对策(包含current)。
请大家注意,前提是控制文件,数据文件,归档完成的日志文件都没有损坏。。
- 如果数据库正在运行的话,数据库就会崩溃。
因为online REDO日志文件损坏了,所以一般不会崩溃。
进行shutdown abort。
- 将数据库mount。
SVRMGR> startup mount
3.启动RMAN,连接目标数据库与catalog数据库。
% rman target system/manager@target catalog rman/rman@catalog
- 查看归档日志文件的状况,可以应用的归档日志文件的日志顺序编号。
Alert文件:
Thu Nov 30 17:37:30 2000
Thread 1 advanced to log sequence 15
Current log# 2 seq# 15 mem# 0: /export/home/rman/ora816c/oradata/tar816c/redo02.log
Thu Nov 30 17:37:30 2000
ARC0: Beginning to archive log# 1 seq# 14
ARC0: Completed archiving log# 1 seq# 14
Thu Nov 30 17:46:50 2000
Errors in file ….
在发生故障之前,寻找归档完成的部分。通过上述记录,我们可以知道日志序号14之前的日志都玩了归档(现在的日志编号为15)
如果实例为mount状态的话,通过SVRMGR,也可以查看到同样的信息。
SVRMGR> archive log list
数据库日志模式;归档模式
自动归档 可以使用
归档地址 /export/home/rman/ora816c/arch
最旧的online日志顺序编号 14
然后是归档日志顺序编号 15
现有的日志顺序编号 15
- 通过RMAN执行restore recovery。
日志顺序编号 因为我们知道直到14号为止,都完成了归档,应用14号前的日志顺序编号,启动、
因为是不完全恢复,所以需要restore所有数据文件。
执行命令:
RMAN> run {
2> allocate channel ch1 type disk;
3> set until logseq 15 thread 1; ==> チェック(1)
4> restore database;
5> recover database;
6> sql ‘alter database open resetlogs’; ==> チェック(2)
7> }
检测项目:
(1) 指定恢复到哪个时点为止。
set until logseq 15 thread 1;
请应用到日志顺序编号14为止。
(2) 因为是执行不完全恢复,启动时,需要resetlogs选项。
部分执行日志:
RMAN-03022: Compile command: recover
RMAN-03022: Compile command: recover(1)
RMAN-03022: Compile command: recover(2)
RMAN-03022: Compile command: recover(3)
RMAN-03023: 実行コマンド: recover(3)
RMAN-08054: メディアのリカバリを開始します。
RMAN-03022: Compile command: recover(4)
RMAN-06050: 归档日志线程 1、順序 11作为文件 /export/home/rman/or
a816c/arch/arch_1_11.arc存在于磁盘中。
RMAN-06050: 归档日志线程 1、順序 12作为文件/export/home/rman/or
a816c/arch/arch_1_12.arc存在于磁盘中。
RMAN-06050: 归档日志线程 1、順序 13作为文件/export/home/rman/or
a816c/arch/arch_1_13.arc存在于磁盘中。
RMAN-06050: 归档日志线程 1、順序 14作为文件/export/home/rman/or
a816c/arch/arch_1_14.arc存在于磁盘中。
RMAN-03023: 执行命令: recover(4)
RMAN-08515: 归档日志文件名=/export/home/rman/ora816c/arch/arch_1_11.arc
スレッド=1 順序=11
RMAN-08515: 归档日志文件名=/export/home/rman/ora816c/arch/arch_1_12.arc
线程=1 順序=12
RMAN-08515: 归档日志文件名=/export/home/rman/ora816c/arch/arch_1_13.arc
线程=1 順序=13
RMAN-08515: 归档日志文件名=/export/home/rman/ora816c/arch/arch_1_14.arc
线程=1 順序=14
RMAN-08055: 介质恢复完成。
==> 损坏的online REDO日志文件(順序番号 15号)没有应用。
- 因为添加resetlogs选项启动数据库,恢复日志文件也会通知。
。
RMAN> reset database;
- 为了防御今后的故障,请一定要获得备份。
Comment