7 x 24 在线支持!
【Oracleデータリカバリ】ORA-00600[3020]エラ解析
ORA-00600[3020]もSTUCK RECOVERYとよばれる。一般的な原因はあるデータブロックがリカバリされた途中で、そのブロックにAPPLYする必要があるredoログでそのブロックを検証するときに、ORACLEのアルゴリズムとマッチしていない。つまり認証redoとdata blockの間に一致していないから、エラになる。
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
ORA-00600[3020]エラに関連するargumentは9.2での意味は:
Arg [a] Block DBA
Arg [b] Redo Thread
Arg [c] Redo RBA Seq
Arg [d] Redo RBA Block No
Arg [e] Redo RBA Offset.
ORACLE 10.1での意味は:
Arg [a] Absolute file number of the datafile.
Arg [b] Block number
Arg [c] Block DBA
このエラのモジュールはカーネルに属し、parallelメモリーリカバリを実行する。これによる影響はロールフォワードの時にエラになって、データベースを起動できなくなる。
解決策: recoverコマンドでこのエラを導く可能性はいくつもある。よくあるのはデータファイルがデータファイルをまともにディスクにrestoreされていないから、あるいはrestoreは不完全なものだった。それで、まずはバックアップごとにrestoreされたことを確保してください。Restoreがデータベースをリカバリした前に済ませてください。。
Restoreは完全であったことを確認できたが、トラブルがまだ残っている場合に、restoreを再びバックアップして、時点に基づき、POINT-IN-TIMのリカバリを実行してください。この時点はORA-600[3020]エラが指定した時点より早い。
例えば:
SQL> recover database until time ‘YYYY-MON-DD:HH:MI:SS’;
もちろん、このエラの原因はlost updateかもしれない。
普通の操作プロセスで、ブロックについてのアップグレードや書くことは一連のデータファイル、redoログ及びアーカイブログで進めている。どんなファイルをなくしてもORA-00600[3020]エラになる。それで、トラブルが起こったオペレーションシステムとディスクハードウェアを全面的にテストしてください。
書き込みをなくした場合に、より古いバックアップからrestoreして、リカバリとロールフォワードを試してください。
必要な診断情報は主にalert.logと一部のtraceに含んでいた。例えば、ロールフォワードを実行するプロセス:traceとSMONのtrace。
ORA-600 [3020]に関連するbugリスト:
NB | Bug | Fixed | Description |
9847338 | Session hang after applying the patch for Bug 9587912 which causes ORA-600 [3020] | ||
+ | 13467683 | 11.2.0.2.BP15, 11.2.0.3.3, 11.2.0.3.BP04, 12.1.0.0 | Join of temp and permanent tables in RAC might cause corruption of permanent table. Regression by bug 10352368 |
12831782 | 11.2.0.2.BP11, 11.2.0.3.BP01, 12.1.0.0 | ORA-600 [3020] / ORA-333 Recovery of datafile or async transport do not read mirror if there is a stale block | |
12582839 | 11.2.0.3, 12.1.0.0 | ORA-8103/ORA-600 [3020] on RMAN recovered locally managed tablespace | |
11689702 | 11.2.0.2.5, 11.2.0.2.BP13, 11.2.0.2.GIPSU05, 11.2.0.3, 12.1.0.0 | ORA-600 [3020] during recovery after datafile RESIZE (to smaller size) | |
10329146 | 11.2.0.1.BP10, 11.2.0.2.2, 11.2.0.2.BP03, 11.2.0.2.GIBUNDLE02, 11.2.0.2.GIPSU02, 11.2.0.3, 12.1.0.0 | Lost write in ASM with multiple DBWs and a disk is offlined and then onlined | |
10218814 | 11.2.0.2.2, 11.2.0.2.BP02, 11.2.0.3, 12.1.0.0 | ORA-600 [3020] during recovery / on standby | |
+ | 10209232 | 11.1.0.7.7, 11.2.0.1.BP08, 11.2.0.2.1, 11.2.0.2.BP02, 11.2.0.2.GIBUNDLE01, 11.2.0.3, 12.1.0.0 | ORA-1578 / ORA-600 [3020] Corruption. Misplaced Blocks and Lost Write in ASM |
* | 10205230 | 11.2.0.1.6, 11.2.0.1.BP09, 11.2.0.2.2, 11.2.0.2.BP04, 11.2.0.3, 12.1.0.0 | ORA-600 / corruption possible during shutdown in RAC |
10094823 | 11.2.0.2.4, 11.2.0.2.BP09, 11.2.0.3, 12.1.0.0 | Block change tracking on physical standby can cause data loss | |
10071193 | 11.2.0.2.BP02, 11.2.0.3, 12.1.0.0 | Lost write / ORA-600 [kclchkblk_3] / ORA-600 [3020] in RAC – superceded | |
9587912 | 11.2.0.2, 12.1.0.0 | ORA-600 [3020] in datafile that went offline/online in a RAC instance | |
8774868 | 11.2.0.1.2, 11.2.0.1.BP06, 11.2.0.2, 12.1.0.0 | OERI[3020] reinstating primary | |
+ | 8769473 | 11.2.0.2, 12.1.0.0 | ORA-600 [kcbzib_5] on multi block read in RAC. Invalid lock in RAC. ORA-600 [3020] in Recovery |
P | 8635179 | 10.2.0.5, 11.2.0.2, 12.1.0.0 | Solaris: directio may be disabled for RAC file access. Corruption / Lost Write |
+ | 8597106 | 11.2.0.1.BP06, 11.2.0.2, 12.1.0.0 | Lost Write in ASM when normal redundancy is used |
P | 12330911 | 12.1 | EXADATA LSI firmware for lost writes |
+ | 10425010 | 11.2.0.3, 12.1 | Stale data blocks may be returned by Exadata FlashCache |
8826708 | 10.2.0.5, 11.2.0.2 | ORA-600 [3020] for block type 0x3a (58) during recovery for block restored by RMAN backup | |
11684626 | 11.2.0.1 | ORA-600 [3020] on standby involving “BRR” redo when db_lost_write_protect is enabled | |
8230457 | 10.2.0.4.1, 10.2.0.5, 11.1.0.7.1, 11.2.0.1 | Physical standby media recovery gets OERI[krr_media_12] | |
+ | 7680907 | 10.2.0.5, 11.1.0.7.1, 11.2.0.1 | ORA-600 [kclexpandlock_2] in LMS / instance crash. Incorrect locks in RAC. ORA-600 [3020] in recovery |
4637668 | 10.2.0.3, 11.1.0.6 | IMU transactions can produce out-of-order redo (OERI [3020] on recovery) | |
4594917 | 9.2.0.8, 10.2.0.2, 11.1.0.6 | Write IO error can cause incorrect file header checkpoint information | |
4453449 | 10.2.0.2, 11.1.0.6 | OERI:3020 / corruption errors from multiple FLASHBACK DATABASE | |
7197445 | 10.2.0.4.1, 10.2.0.5 | Standby Recovery session cancelled due to ORA-600 [3020] “CHANGE IN FUTURE OF BLOCK” | |
5610267 | 10.2.0.5 | MRP terminated by ORA-600[krr_media_12] / OERI:3020 after flashback | |
3762714 | 9.2.0.7, 10.1.0.4, 10.2.0.1 | ALTER DATABASE RECOVER MANAGED STANDBY fails with OERI[3020] | |
3560209 | 10.2.0.1 | OERI[3020] stuck recovery under RAC | |
3397181 | 9.2.0.5, 10.1.0.3, 10.2.0.1 | ALTER SYSTEM KILL SESSION of recovery slave causes stuck recovery | |
* | 3381950 | 10.2.0.1 | Backups from RAC DB before Data Guard Failover cannot be used |
3535712 | 9.2.0.6, 10.1.0.4 | OERI[3020] / ORA-10567 from RAC with standby in max performance mode | |
4594912 | 9.2.0.8, 10.1.0.2 | Incorrect checkpoint possible in datafile headers | |
3635331 | 9.2.0.6, 10.1.0.4 | Stuck recovery (OERI:3020) / ORA-1172 on startup after a crash | |
2322620 | 9.2.0.1 | OERI:3020 possible on recovery of LOB DATA | |
P+ | 656370 | 7.3.3.4, 7.3.4.0, 8.0.3.0 | AlphaNT only: Corrupt Redo (zeroed byte) OERI:3020 |