Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

0

好友

2

主题
1#
发表于 2014-2-19 18:01:55 | 查看: 5380| 回复: 16
数据库版本: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: 内部错误代码, 参数: [kcbgtcr_13], [], [], [], [], [], [], []

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: 内部错误代码, 参数: [kcbgtcr_13], [], [], [], [], [], [], []

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...
刘大,帮忙看看啊;

2#
发表于 2014-2-19 20:37:52
上传alert.log

回复 只看该作者 道具 举报

3#
发表于 2014-2-20 01:57:54
使用数据库恢复检查脚本(Oracle Database Recovery Check) 检测数据库,上传或者发我生成的html文件
http://www.xifenfei.com/5056.html

回复 只看该作者 道具 举报

4#
发表于 2014-2-20 10:30:19
Maclean Liu(刘相兵 发表于 2014-2-19 20:37
上传alert.log

ALERT&TRC.rar (253.31 KB, 下载次数: 1290)

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

回复 只看该作者 道具 举报

5#
发表于 2014-2-20 10:35:08
本帖最后由 yaoxun 于 2014-2-20 10:39 编辑
xifenfei 发表于 2014-2-20 01:57
使用数据库恢复检查脚本(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文件了么?默认路径是哪里啊?

回复 只看该作者 道具 举报

6#
发表于 2014-2-20 13:37:15
你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html

回复 只看该作者 道具 举报

7#
发表于 2014-2-20 14:02:14
xifenfei 发表于 2014-2-20 13:37
你执行该脚本的时候,使用sqlplus登录的目录,找到db_recover_xifenfei.html

db_recover_xifenfei.html (15.51 KB, 下载次数: 625)

回复 只看该作者 道具 举报

8#
发表于 2014-2-20 14:03:53
有参考 Metalink note 1016968.102 么?

回复 只看该作者 道具 举报

9#
发表于 2014-2-20 14:32:24
yaoxun 发表于 2014-2-20 14:02

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

回复 只看该作者 道具 举报

10#
发表于 2014-2-20 14:39:45
anbob 发表于 2014-2-20 14:03
有参考 Metalink note 1016968.102 么?

。。。没有账号哦。。

回复 只看该作者 道具 举报

11#
发表于 2014-2-20 14:45:02
xifenfei 发表于 2014-2-20 14:32
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>
怎么会这个样子

回复 只看该作者 道具 举报

12#
发表于 2014-2-20 14:48:29
先确shutdown imediate
然后启动数据库到mount   startup mount
再执行我给的相关脚本

回复 只看该作者 道具 举报

13#
发表于 2014-2-20 15:12:37
xifenfei 发表于 2014-2-20 14:48
先确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 ???
我把库还原至事故发生的时候再执行你的脚本给出相关文件吧,稍等;

回复 只看该作者 道具 举报

14#
发表于 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

回复 只看该作者 道具 举报

15#
发表于 2014-2-20 15:39:01
xifenfei 发表于 2014-2-20 15:19
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: 内部错误代码, 参数: [4193], [5330], [5335], [], [], [], [], []
这个以前有过处理办法
PFILE 增加
undo_management='MANUAL'
_corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
顺利OPEN
感谢飞总的指导,非常感谢

回复 只看该作者 道具 举报

16#
发表于 2014-2-21 09:44:43
yaoxun 发表于 2014-2-20 14:45
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.

回复 只看该作者 道具 举报

17#
发表于 2014-2-21 10:12:46
anbob 发表于 2014-2-21 09:44
Red word was wrong.

是敲错了,不过当时调整过来了,也是提示 no logged on
再从SPFILE启到MOUNT 就OK了

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-1 20:15 , Processed in 0.060924 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569