Oracle 对象破损时的对策:其3(调查原因的方法)

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

查看破损块、修复以及调查原因的方法请查看以下文件

[详细内容]

 

调查原因的方法

====================

 

已经发生块破损时,可以查看破损情况,但很难知道为什么会发生故障,要调查发生故障的原因非常困难。

 

 

 

 

1) 查看以下内容。

 

– 发生故障时应该进行怎样的操作

– 不终止数据库时,OS是否崩溃

– OS 中是否检测到错误

查看messages,syslog,errpt。

 

 

2) 指定包含更新块完成的SCN的归档日志。

 

通过执行修复时获得的块转储,调查储存了问题块的SCN

 

———–

buffer tsn: 0 rdba: 0x00400062 (1/98)

scn: 0x0000.000fee5a seq: 0x01 flg: 0x06 tail: 0xee5a0601

^^^^^^^^^^^^^^^^^^^^ <— ★

frmt: 0x02 chkval: 0x5b40 type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

———–

 

从上述的SCN中查看包含对应SCN的归档日志。

将SCN 从16进制变更成10进制,执行以下SQL。

 

SQL> select SEQUENCE#,NAME,FIRST_CHANGE#,FIRST_TIME,NEXT_CHANGE#,NEXT_TIME,

2  RESETLOGS_CHANGE# from v$archived_log where FIRST_CHANGE# < <SCN#> and

3  <SCN#> < NEXT_CHANGE# order by RESETLOGS_CHANGE#,SEQUENCE#;

 

 

3) 获得包含2) 中查看到的更新的归档日志的REDO转储。

* 还保存了归档日志文件。

 

例)

SQL> alter system dump logfile ‘<archive_logfile_path>’

2  SCN MIN ‘<SCN#>-3000’ SCN MAX ‘<SCN#>+3000’;

 

* RAC 环境中,转储对应所有线程的REDO。

 

 

 

 

4)查看 2) 中查看到的归档日志所生成的时间段的更新处理,指定重现案例

– 查看应用的日志等时间段的更新处理

– 通过挖掘数据可以查看对应时间段的更新处理

– 从处理内容中指定重现案例

 

5) OS, HW中的调查

 

在进行块更新时,发现OS, HW 中发生了问题。

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号