July 18 2014

oracle oradebug

获取oradebug说明和帮助

SQL> oradebug help
HELP           [command]                 Describe one or all commands
SETMYPID                                 Debug current process

….

 今天有个库硬盘坏了,数据库起不来了,没有任何备份,没有开归档。。。

startup之后报system sysaux.和其它业务表空间有坏块,

先ftp拉下来一份 再cp一份 避免失败。。。

_allow_open_resetlogs 先用这个参数搞一下。

startup nomount;
alter system set “_allow_open_resetlogs”=true scope=spfile;
shutdown immediate;
startup mount;
recover database until cancel
cancel
alter database open resetlogs;

报ora 600 2662

由于库只能在Mount状态,用10015增进scn号

 

1.alter session set events ‘IMMEDIATE trace name ADJUST_SCN level x’;
–需要数据库OPEN

2.通过10015事件
alter session set events ‘10015 trace name adjust_scn level x’;
–mount状态

3.设_mini_giga_scn隐藏参数

–第三种,目前还不会,等我研究一下,再写出来

我尝试了10015没有搞定。。。然后公司集成那边来个大神

集成也用10015试了一下没有用。然后用第三种方法  在设_mini_giga_scn参数的时候,报该参数不存在。

到网上查了一下,才发现,oracle 11.2.0.4上已经屏蔽了前面说的那些推进scn的方法了。

然后集成的大神用了一个我没见过的参数 oradebug

 

ORA-00600: internal error code, arguments: [2662], [0], [17074851], [0], [17144854], [12583040], [], [], [], [], [], []

主要是第5个参数17144854,这个是目标的scn号

需要将scn改到大于17144854,才能拉起数据库。
select to_char(17144854,’xxxxxxxx’) from dual;
  1059c16

 

参考http://blog.itpub.net/29154652/viewspace-774532/
oradebug setmypid
oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [060019360, 060019390) = 00280FFC 00000000 00000000 00000000 00089F7B 00000000 00000000 00000000 00000000 00000000 60019040 00000000

跟V$DATABASE.CURRENT_SCN相近。
此外,我们使用的Linux平台,属于Little Endian,所以其SCN base在前,SCN wrap在后,这点需要注意。

 

然后recover database until cancel
再resetlogs



Copyright 2019. All rights reserved.

Posted 2014年7月18日 by ucjmh in category "oracle

Leave a Reply

Your email address will not be published. Required fields are marked *