使用隐含参数跳过一致性检查,数据库OPEN时报错
数据库版本:10.1.0.2OS:windows xp
无归档,无备份
异常断电之后数据库无法OPEN,报错提示:
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00322: 日志 3 (用于线程 1) 不是当前副本
ORA-00312: 联机日志 3 线程 1:
'C:\XXXXXX\10.1.0\ORADATA\XXXXX\REDO03.LOG'
查看v$log信息如下
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
1 1 950 10485760 1 NO CURRENT
31017735 12-2月 -14
2 1 948 10485760 1 NO INACTIVE
31006691 12-2月 -14
3 1 949 10485760 1 NO ACTIVE
31012600 12-2月 -14
redo03的日志组状态时ACTIVE
准备做不完全恢复,使用_allow_resetlogs_corruption参数跳过一致性检查
SQL> show parameter all
NAME TYPE VALUE
------------------------------------ ----------- -----------------
_allow_resetlogs_corruption boolean TRUE
SQL> recover database until cancel;
ORA-00279: 更改 31012600 (在 02/12/2014 13:15:59 生成) 对于线程 1 是必需的
ORA-00289: 建议:
C:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\xxxx\ARCHIVELOG\2014_02_19\O1_MF
_1_949_%U_.ARC
ORA-00280: 更改 31012600 (用于线程 1) 在序列 #949 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\xxxxx\SYSTEM01.DBF'
ORA-01112: 未启动介质恢复
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01092: ORACLE 例程终止。强制断开连接
警告日志文件中有如下记录
ORA-00600: 内部错误代码, 参数: , [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxx\udump\pstc_ora_732.trc:
ORA-00600: 内部错误代码, 参数: , [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxxx\bdump\pstc_lgwr_1556.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxxx\bdump\pstc_mman_492.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxx\bdump\pstc_ckpt_716.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxxx\bdump\pstc_reco_1732.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxxx\bdump\pstc_smon_780.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Wed Feb 19 15:35:46 2014
Errors in file c:\oracle\product\10.1.0\admin\xxxxx\bdump\pstc_dbw0_1276.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Instance terminated by USER, pid = 732
ORA-1092 signalled during: alter database open resetlogs...
刘大,帮忙看看啊;
上传alert.log 使用数据库恢复检查脚本(Oracle Database Recovery Check) 检测数据库,上传或者发我生成的html文件
http://www.xifenfei.com/5056.html Maclean Liu(刘相兵 发表于 2014-2-19 20:37 static/image/common/back.gif
上传alert.log
ALERT.log里面有一个关于临时表空间数据文件报错的信息,是我从故障库冷备后在本地恢复之后引起的,这个报错没有影响吧? 本帖最后由 yaoxun 于 2014-2-20 10:39 编辑
xifenfei 发表于 2014-2-20 01:57 static/image/common/back.gif
使用数据库恢复检查脚本(Oracle Database Recovery Check) 检测数据库,上传或者发我生成的html文件
http:/ ...
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> @c:\check_recover_db_win.sql
+----------------------------------------------------------------------------+
| Oracle Database Recovery Check Result |
|----------------------------------------------------------------------------+
| Copyright (c) 2012-2013 xifenfei. All rights reserved. (www.xifenfei.com) |
+----------------------------------------------------------------------------+
Please start the database to mount state.
This script must be run as mount state.
To send db_recover_xifenfei.html to dba@xifenfei.com
Remember: Do not modify any inspection results
从 Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
这是成功执行脚本并保存HTML文件了么?默认路径是哪里啊? 你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html xifenfei 发表于 2014-2-20 13:37 static/image/common/back.gif
你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html
有参考 Metalink note 1016968.102 么? yaoxun 发表于 2014-2-20 14:02 static/image/common/back.gif
oradebug setmypid
oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
alter session set db_file_multiblocK_read_count=1;
oradebug TRACEFILE_NAME
alter database Open;
如果trace小上传论坛,如果大,使用附件发我dba@xifenfei.com邮箱 anbob 发表于 2014-2-20 14:03 static/image/common/back.gif
有参考 Metalink note 1016968.102 么?
。。。没有账号哦。。 xifenfei 发表于 2014-2-20 14:32 static/image/common/back.gif
oradebug setmypid
oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
alter session set db_f ...
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 2月 20 14:42:46 2014
Copyright (c) 1982, 2004, Oracle. All rights reserved.
已连接。
SQL> oradebug setmypid
已处理的语句
SQL> oradebug EVENT 10046 TRACE NAME CONTEST FOREVER,LEVEL 12
ORA-01012: not logged on
SQL> SHOW USER;
USER 为 "SYS"
SQL> EXIT
已断开连接
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 2月 20 14:43:34 2014
Copyright (c) 1982, 2004, Oracle. All rights reserved.
已连接。
SQL> oradebug setmypid
已处理的语句
SQL> oradebug EVENT 10046 TRACE NAME CONTEST FOREVER,LEVEL 12
ORA-01012: not logged on
SQL> SHOW USER;
USER 为 "SYS"
SQL>
怎么会这个样子 先确shutdown imediate
然后启动数据库到mount startup mount
再执行我给的相关脚本 xifenfei 发表于 2014-2-20 14:48 static/image/common/back.gif
先确shutdown imediate
然后启动数据库到mount startup mount
再执行我给的相关脚本 ...
前面recover database until cancel
cancel
这个操作了,现在如果不用PFILE文件启库,mount的时候报如下错误
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 130023424 bytes
Fixed Size 787788 bytes
Variable Size 66058932 bytes
Database Buffers 62914560 bytes
Redo Buffers 262144 bytes
ORA-00214: ???? 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\CONTROL01.CTL' ??
16855 ??? 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\CONTROL02.CTL' ?? 16832 ???
我把库还原至事故发生的时候再执行你的脚本给出相关文件吧,稍等; ORA-00214: ???? 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\CONTROL01.CTL' ??
16855 ??? 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\CONTROL02.CTL' ?? 16832 ???
使用其中一个试试看
搞不定,加qq 107644445 xifenfei 发表于 2014-2-20 15:19 static/image/common/back.gif
ORA-00214: ???? 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\CONTROL01.CTL' ??
16855 ??? 'C:\ORACLE\PRO ...
3个控制文件的版本号都不一样
ctl_1 16855 ctl_2 16832 ctl_3 16826
依次试下来 用CTL_1可以mount 其他的2个都提示着个控制文件版本来自最后一次resetlogs之前,
mount 之后OPEN的时候报错,alert里记录了
Doing block recovery for file 2 block 3338
Block recovery range from rba 2.41.0 to scn 0.31036308
Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0
Mem# 0 errs 0: C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\REDO02.LOG
Block recovery stopped at EOT rba 2.43.16
Block recovery completed at rba 2.43.16, scn 0.31036308
Doing block recovery for file 2 block 41
Block recovery range from rba 2.41.0 to scn 0.31036307
Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0
Mem# 0 errs 0: C:\ORACLE\PRODUCT\10.1.0\ORADATA\PSZX_DB\REDO02.LOG
Block recovery completed at rba 2.43.16, scn 0.31036308
Thu Feb 20 15:27:51 2014
Errors in file c:\oracle\product\10.1.0\admin\pszx_db\udump\pstc_ora_1192.trc:
ORA-00600: 内部错误代码, 参数: , , , [], [], [], [], []
这个以前有过处理办法
PFILE 增加
undo_management='MANUAL'
_corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
顺利OPEN
感谢飞总的指导,非常感谢 yaoxun 发表于 2014-2-20 14:45 static/image/common/back.gif
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.1.0.2.0 - Produc ...
SQL> oradebug EVENT 10046 TRACE NAME CONTEST FOREVER,LEVEL 12
Red word was wrong.
anbob 发表于 2014-2-21 09:44 static/image/common/back.gif
Red word was wrong.
是敲错了,不过当时调整过来了,也是提示 no logged on
再从SPFILE启到MOUNT 就OK了
页:
[1]