遭遇数据库自动关闭()

来源:互联网 发布:vb如何抽取数据 编辑:程序博客网 时间:2024/06/05 00:08

日志显示:

Tue Dec 14 15:37:40 2010ITPUB个人空间QxL X W1s;_:~qV
Flush retried for xcb 0x2f5fc160, pmd 0x2f7a98e8ITPUB个人空间h,q-bvNb
Doing block recovery for file 2 block 145
3FZ+q5hG9@]Y21916216Block recovery from logseq 8, block 65 to scn 642130
iZA&Fx3XWvc21916216Tue Dec 14 15:37:40 2010ITPUB个人空间.m pO-e4?S;s#Z
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8 Reading mem 0ITPUB个人空间-jyV.binC/P{Z2]R)m
  Mem# 0 errs 0: /u01/app/oracle/oradata/stream2/redo01.log
o3iI m(oHM hY21916216Block recovery completed at rba 8.69.16, scn 0.642132
.F Cx6ZSh@21916216Tue Dec 14 15:37:48 2010
.|r[eN8TUsz21916216DEBUG: Replaying xcb 0x2f601ec0, pmd 0x2f798cd4 for failed op 8
)qOF/'?tEi4H21916216Doing block recovery for file 2 block 1893
n'Twcz0WO21916216Block recovery from logseq 8, block 63 to scn 642126ITPUB个人空间;w6yD/GQNe N
Tue Dec 14 15:37:48 2010ITPUB个人空间.ua xKY F}
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8 Reading mem 0
0{7P V R-Md21916216  Mem# 0 errs 0: /u01/app/oracle/oradata/stream2/redo01.logITPUB个人空间`./ [wj@O#m(|)UI Y
Block recovery completed at rba 8.67.16, scn 0.642129ITPUB个人空间fU#Z4qo&/[N
Tue Dec 14 15:37:49 2010ITPUB个人空间YbcdW9aM
Errors in file /u01/app/oracle/admin/stream2/bdump/stream2_pmon_3971.trc:ITPUB个人空间a']-k*_6X3@"wH ]@
ORA-00600: internal error code, arguments: [4194], [38], [46], [], [], [], [], []
X2e wt1up21916216Tue Dec 14 15:37:50 2010ITPUB个人空间2DE(t Dw5L:Q
Errors in file /u01/app/oracle/admin/stream2/bdump/stream2_pmon_3971.trc:ITPUB个人空间GO5pq9g&M6@[3w
ORA-00600: internal error code, arguments: [4194], [38], [46], [], [], [], [], []ITPUB个人空间Ao PS)U2i*j3i
PMON: terminating instance due to error 472ITPUB个人空间6C}oK O'q
Instance terminated by PMON, pid = 3971

后来在yangtingkun博客看到解决方法如下:

检查alert文件,发现导致问题的原因是由于掉电导致日志文件损坏,在进行CRASH恢复时无法将数据库恢复到一致性的状态。

对大致情况有了一定的了解后,准备开始着手恢复工作:首先是备份现场,这样如果恢复失败,至少保留了出错是的环境。

然后尝试利用隐含参数_allow_resetlogs_corruption来打开数据库,这个步骤在很多篇文章中都描述过了,这里就不重复了,可以参考:http://yangtingkun.itpub.net/post/468/464701

数据库顺利打开,ALTER DATABASE OPEN RESETLOGS操作并没有报错,但是由于使用了隐含参数,因此数据库肯定会丢失数据,而且会处于不一致的状态,为了避免数据库的不一致对数据造成进一步的损害,准备将业务用户执行逻辑导出:

D:>exp hc/hc file=hc_20100303.dmp buffer=2048000 compress=n log=hc_20100303.log

Export: Release 10.2.0.1.0 - Production on星期三33 17:38:01 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ITPUB个人空间O%q)E8yvQ/WX(Vl
EXP-00056:
遇到ORACLE错误1034
~HZ,f(z#m5Bx21916216ORA-01034: ORACLE not available
5}i"yJ VZ2c21916216ORA-27101: shared memory realm does not exist
9j6kK#{.op(j7g y21916216EXP-00005:
所有允许的登录尝试均失败

C!eT z-~*T8a21916216EXP-00000:
导出终止失败

看错误信息似乎数据库没有启动,检查发现果然数据库自动关闭了,查询alert文件发现了大量的ORA-600(4194)错误。

再次尝试启动数据库报错:

C:Documents and SettingsAdministrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on星期三33 17:35:43 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接到空闲例程。

SQL> STARTUP
;Dh].R J/+@G21916216ORACLE
例程已经启动。

Total System Global Area 612368384 bytesITPUB个人空间1F9@3k)v b8g VY
Fixed Size 1250428 bytesITPUB个人空间hz w)p0i6AQ+_$ic2h
Variable Size 121637764 bytes
D"z:z k;S21916216Database Buffers 482344960 bytes
CK:}*|.U.q:L3} bHi21916216Redo Buffers 7135232 bytes
数据库装载完毕。
d-/Pgnl3v+L2g21916216ORA-00607:
当更改数据块时出现内部错误
V#b:D&Ohpj{21916216ORA-00600:
内部错误代码,参数: [4194], [38], [22], [], [], [], [], []

虽然STARTUP命令报错,但是数据库已经打开可以访问了,但是没过几分钟的时间,数据库就又自动关闭了,导致数据库自动关闭的原因仍然是ORA-600(4194)错误。

查询metalink发现,导致这个错误是由于UNDO信息出现了不一致,虽然metalink上没有给出解决方法,不过根据经验,利用隐含参数_corrupted_rollback_segments尝试打开数据库。

好在数据库可以短暂的打开,这样可以方便的查询到系统启动的回滚段名称:

SQL> CONN / AS SYSDBA已连接。ITPUB个人空间-`-bOJ*@A t?&R%@ t
SQL> SELECT SEGMENT_NAME FROM DBA_ROLLBACK_SEGS;

SEGMENT_NAMEITPUB个人空间/Rs:D/I n4o:eg/g$k
------------------------------
V WYp{U4qW21916216SYSTEM
&dfw&aT/TCv1R21916216_SYSSMU1$
&|tH/q/qP21916216_SYSSMU2$
.U6FA2Py?&}21916216_SYSSMU3$
F?e |8N L+dxd/Si21916216_SYSSMU4$
Wr;Y/y4Rh|3A21916216_SYSSMU5$ITPUB个人空间Kq1K [M0BaqF
_SYSSMU6$
Nm8F/ cx21916216_SYSSMU7$
]:f2syX6RF1jY21916216_SYSSMU8$ITPUB个人空间-P?8l4w ?3[3j&Yj6j
_SYSSMU9$
*qc#K[-B B$a4VM21916216_SYSSMU10$

已选择11行。

SQL> CREATE PFILE='D:ORACLEADMINORCLPFILEINITORCL.ORA' FROM SPFILE;

文件已创建。

在初始化参数文件中添加下面的参数:

undo_management='MANUAL'
N$ECl4V7^21916216_corrupted_rollback_segments=(_SYSSMU1&,_SYSSMU2&,_SYSSMU3&,_SYSSMU4&,_SYSSMU5&,_SYSSMU6&,_SYSSMU7&,_SYSSMU8&,_SYSSMU9&,_SYSSMU10&)

下面尝试打开数据库:

SQL> conn / as sysdba已连接到空闲例程。
5VcRH(Q9j1R21916216SQL> STARTUP PFILE=D:ORACLEADMINORCLPFILEINITORCL.ORA MOUNT
9R&E,CzkF"U4Q%}21916216ORACLE
例程已经启动。

Total System Global Area 612368384 bytesITPUB个人空间.vg#Xg h%b? ^[,k
Fixed Size 1250428 bytes
Q:g0u `(^21916216Variable Size 121637764 bytes
!^ ` d%~8u21916216Database Buffers 482344960 bytes
8j&UMa9ix21916216Redo Buffers 7135232 bytes
数据库装载完毕。ITPUB个人空间%g&bU2q0h:/&B%}
SQL> RECOVER DATABASE;
完成介质恢复。
Kg!VLt21916216SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCELITPUB个人空间$I;w`)J*HXW
ORA-00279:
更改19786562 (03/03/2010 18:20:31生成)对于线程1是必需的
a"qWuT%h&i)t2c ayI21916216ORA-00289:
建议: D:ORACLEFLASH_RECOVERY_AREAORCLARCHIVELOG2010_03_03O1_MF_
3q g;]| ~9DF'o219162161_3_%U_.ARCITPUB个人空间^(c'~h"H n2/&g)Sk
ORA-00280:
更改19786562 (用于线程1)在序列#3

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}ITPUB个人空间MJ7o%j'L(n1B0m
CANCEL
介质恢复已取消。
ITPUB个人空间.^/WE7@Wa
SQL> ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

数据库成功打开,下面再次利用EXP将数据库的业务用户进行导出:

D:>exp hc/hc file=hc_20100303.dmp buffer=2048000 direct=y recordlength=65534 compress=n log=hc_20100303.log

Export: Release 10.2.0.1.0 - Production on星期三33 18:26:57 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionITPUB个人空间 i2u;~8pB |u
With the Partitioning, OLAP and Data Mining options
已导出ZHS16GBK字符集和AL16UTF16 NCHAR字符集

$@X6/Y9G;` L)Udq21916216.
正在导出pre-schema过程对象和操作ITPUB个人空间h!ic;_'f^ L s~
.
正在导出用户HC的外部函数库名ITPUB个人空间)_3E&M]~%il? jC3k
.
导出PUBLIC类型同义词
*qW&Qk0Vr21916216.
正在导出专用类型同义词
$T0te4y4xw-/o*kmr21916216.
正在导出用户HC的对象类型定义即将导出HC的对象...ITPUB个人空间P+_ sCShC:@
.
正在导出数据库链接
ITPUB个人空间MVYr:T[
.
正在导出序号ITPUB个人空间z v8s.?O}e#a
.
正在导出簇定义
Ck J$C L0|21916216.
即将导出HC的表通过直接路径...
^*Z/K?8s-`(t/K I21916216. .
正在导出表CAT_ORG导出了6116
ITPUB个人空间5pwH#kqP
. .
正在导出表CESHI_USER_FUNC导出了0HC_AGENT_ANN将以常规路径导出。ITPUB个人空间YO~(oc:j{0C
. .
正在导出表HC_AGENT_ANN导出了295ITPUB个人空间3}jh8U5l-X2T/Yl
. .
正在导出表HC_AGENT_ANN_ITEM导出了0ITPUB个人空间9wN&W^}j
. .
正在导出表HC_AGENT_LINK导出了5HC_AGENT_NEWS将以常规路径导出。ITPUB个人空间X9L,R[tbf0oC
. .
正在导出表HC_AGENT_NEWS导出了2054
xF7J;j#qE21916216. .
正在导出表HC_AGENT_NEWS_ITEM导出了0ITPUB个人空间~ b,v5p%O
.
N-].g+~/21916216.
zu"_Ba~*m1I~21916216.ITPUB个人空间'P]8G4Ws
. .
正在导出表HC_USER_MSN_SEND导出了122ITPUB个人空间X;c-abk
. .
正在导出表HC_VIP_PUBLISH_PRODUCT导出了1858ITPUB个人空间g5_:z4V Qp/U
. .
正在导出表HC_VISIT_COUNT导出了1ITPUB个人空间+[{7E-V$~*[,k$n%uQ;?
. .
正在导出表PLAN_TABLE导出了0
igD8q!}t)R21916216. .
正在导出表T_INVITE导出了0
%[#XMiU1g.J21916216.
正在导出同义词
@d&/X0i(TP3_21916216.
正在导出视图
Q5ky!L~T21916216.
正在导出存储过程
w r }'jM3H21916216.
正在导出运算符
KR*j[8~{.A21916216.
正在导出引用完整性约束条件ITPUB个人空间7`!PXXAM:V'` [
.
正在导出触发器
OAI!B9r[i'e21916216.
正在导出索引类型ITPUB个人空间$pn)bKJPB1?
.
正在导出位图,功能性索引和可扩展索引ITPUB个人空间-l9N],{.cT1?!n"K0p
.
正在导出后期表活动ITPUB个人空间V.Q(G"Q)V&]p h Gi
.
正在导出实体化视图ITPUB个人空间:q,n UGX
.
正在导出快照日志ITPUB个人空间Kf4T e~%~] E;/
.
正在导出作业队列
H7L_kW'V#o"o8y0c21916216.
正在导出刷新组和子组
K[/5Js6WZ21916216.
正在导出维
oFMf.v0LI:N21916216.
正在导出post-schema过程对象和操作ITPUB个人空间I[8~u8I m9yZK
.
正在导出统计信息成功终止导出,没有出现警告。

至此,数据库的恢复工作完成。虽然数据库可以打开,但是丢失数据在所难免,所以关键数据一定要做好备份工作。

原创粉丝点击