yaoxun 发表于 2014-2-19 18:01:55

使用隐含参数跳过一致性检查,数据库OPEN时报错

数据库版本:10.1.0.2
OS: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...
刘大,帮忙看看啊;

Maclean Liu(刘相兵 发表于 2014-2-19 20:37:52

上传alert.log

xifenfei 发表于 2014-2-20 01:57:54

使用数据库恢复检查脚本(Oracle Database Recovery Check) 检测数据库,上传或者发我生成的html文件
http://www.xifenfei.com/5056.html

yaoxun 发表于 2014-2-20 10:30:19

Maclean Liu(刘相兵 发表于 2014-2-19 20:37 static/image/common/back.gif
上传alert.log



ALERT.log里面有一个关于临时表空间数据文件报错的信息,是我从故障库冷备后在本地恢复之后引起的,这个报错没有影响吧?

yaoxun 发表于 2014-2-20 10:35:08

本帖最后由 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文件了么?默认路径是哪里啊?

xifenfei 发表于 2014-2-20 13:37:15

你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html

yaoxun 发表于 2014-2-20 14:02:14

xifenfei 发表于 2014-2-20 13:37 static/image/common/back.gif
你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html


anbob 发表于 2014-2-20 14:03:53

有参考 Metalink note 1016968.102 么?

xifenfei 发表于 2014-2-20 14:32:24

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邮箱

yaoxun 发表于 2014-2-20 14:39:45

anbob 发表于 2014-2-20 14:03 static/image/common/back.gif
有参考 Metalink note 1016968.102 么?

。。。没有账号哦。。

yaoxun 发表于 2014-2-20 14:45:02

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>
怎么会这个样子

xifenfei 发表于 2014-2-20 14:48:29

先确shutdown imediate
然后启动数据库到mount   startup mount
再执行我给的相关脚本

yaoxun 发表于 2014-2-20 15:12:37

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 ???
我把库还原至事故发生的时候再执行你的脚本给出相关文件吧,稍等;

xifenfei 发表于 2014-2-20 15:19:28

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

yaoxun 发表于 2014-2-20 15:39:01

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
感谢飞总的指导,非常感谢

anbob 发表于 2014-2-21 09:44:43

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.

yaoxun 发表于 2014-2-21 10:12:46

anbob 发表于 2014-2-21 09:44 static/image/common/back.gif
Red word was wrong.

是敲错了,不过当时调整过来了,也是提示 no logged on
再从SPFILE启到MOUNT 就OK了
页: [1]
查看完整版本: 使用隐含参数跳过一致性检查,数据库OPEN时报错