热烈祝贺,Dodd的space开张!!!
不想当版主的puber不是好puber!!!
Redo故障的恢复
上一篇 / 下一篇 2008-01-23 11:40:08 / 个人分类:我是一名DBA
环境: windows XP Pro + oracle 9.2.0.4
一、redologfile group的删除
为了模拟日志故障,需要手工删除一些日志组,下面介绍如何删除日志组,以及影响:
logfile group的状态有3种current、active、inactive。
其中active和inactive的都可以删除。在数据库open状态或其他状态都可以。这里所说的删除是用操作系统的删除。如果用alter database drop logfile group * 的话,则只能删除inactive状态的logfile group。
其中删除active状态的logfile group后,最好alter system checkpoint,因为,这时如果不手工发出检查点的话,一旦数据库出现问题(abort,由于instance recovery需要active的logfile group),将不能正常恢复。
当前(current)日志组不能在open状态下删除。原因显而易见,至于删除之后如何恢复,下面将予以介绍。
二、丢失非活动的日志组
1、系统是noarchivelog
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUSITPUB个人空间OH!w@&Z Y
---------- ---------- ---------- ---------- ---------- --- ----------------
/]*{1jTK0FIRST_CHANGE# FIRST_TIMEITPUB个人空间%b2`m#D ]/hY
------------- ----------
0i/} sSvGTJO x0 1 1 22 104857600 1 NO INACTIVEITPUB个人空间L~,Jy#n}-r R5}?
243099 26-8月 -06
---------- ---------- ---------- ---------- ---------- --- ----------------
/]*{1jTK0FIRST_CHANGE# FIRST_TIMEITPUB个人空间%b2`m#D ]/hY
------------- ----------
0i/} sSvGTJO x0 1 1 22 104857600 1 NO INACTIVEITPUB个人空间L~,Jy#n}-r R5}?
243099 26-8月 -06
2 1 23 104857600 1 NO CURRENTITPUB个人空间\(Q)n-O\;b)s
243170 26-8月 -06
243170 26-8月 -06
3 1 21 104857600 1 NO INACTIVEITPUB个人空间+FT*zOh
243097 26-8月 -06
243097 26-8月 -06
现在在系统中删除 group 3,这时系统是open状态。
手工switch logfile后,例程马上崩溃;
SQL> alter system switch logfile;ITPUB个人空间4W*LLiPL])v!o:_
alter system switch logfileITPUB个人空间K MTu ~
*ITPUB个人空间D V K||o
ERROR 位于第 1 行:
,`"{ oun'PM0ORA-03113: 通信通道的文件结束
alter system switch logfileITPUB个人空间K MTu ~
*ITPUB个人空间D V K||o
ERROR 位于第 1 行:
,`"{ oun'PM0ORA-03113: 通信通道的文件结束
恢复方法有两种:
(1) drop相应的logfile group,添加新的logfile group。
- 将数据库mount状态
Sy0teC"z"L0SQL> startup mount
Pl#mG-I0ORACLE 例程已经启动。
/Cn0Q XG`0Total System Global Area 135339844 bytes
WSW,uS5v-hO0Fixed Size 454468 bytes
`U}[b7@6AR2z P0Variable Size 109051904 bytesITPUB个人空间%tD!U%w~+Zr-K
Database Buffers 25165824 bytes
mcMg*NqPa0Redo Buffers 667648 bytes
[[8O.[+Mr\0数据库装载完毕。ITPUB个人空间"K9|&x;t [\(B*]*`
SQL> alter database open;ITPUB个人空间7Dr)~f2n!qgZ5b
alter database open
gDW?GQp d:Y0*ITPUB个人空间!O]"Z NRR
ERROR 位于第 1 行:
,a.?\)Rp-JX0ORA-00313: 无法打开日志组 3 (线程 1) 的成员ITPUB个人空间e'JJ tk~,vC
ORA-00312: 联机日志 3 线程 1: 'E:\ORACLE\ORADATA\FOX\REDO03.LOG' - alter database drop logfile group 3;
"s^4Ho-d @(fo*j+D0SQL> alter database drop logfile group 3;ITPUB个人空间 UXIPm
数据库已更改。
I'p3ST5n xR4[B0SQL> select * from v$log;
Ut&zLC7U0 GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUSITPUB个人空间-d[2w2t1ss
---------- ---------- ---------- ---------- ---------- --- ----------------ITPUB个人空间u|,B0Fh%V5U
FIRST_CHANGE# FIRST_TIMEITPUB个人空间'h8P{8MV
------------- ----------ITPUB个人空间0Z{kGn
1 1 22 104857600 1 NO INACTIVE
oX0~a9fN&a9[;b$K0 243099 26-8月 -06ITPUB个人空间#c#s2[OT} a
2 1 23 104857600 1 NO INVALIDATEDITPUB个人空间8Du/~ E#tD _\H
243170 26-8月 -06
\Y7_Kx+{x*U0SQL> select * from v$logfile;ITPUB个人空间LP3Lhr!L:n NX
GROUP# STATUS TYPE
aE e/~*dgH1e5w5uo#?0---------- ------- -------
h+b2x%r5f3^OB0MEMBERITPUB个人空间#W `4|pJrz
----------------------------------
*x}G$h2O+@0 1 ONLINE