ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供 携帯番号: +86 13764045638 メール:service@parnassusdata.com

    1.適用範囲   バーション8.1.7.4から10.2.3[release 8.1.7 to 10.2]   2.目标   このファイルはリカバリ策を提供している。SYSTEM ロールバックセグメントがORA-600[4139]/ORA-600[4194]になると、データベースが起動できなくなる。 システムがロールバックセグメントから影響を受ける前に、リカバリの時点をエラが起こる前にしてください。 ORA-600[4193]とORA-[4104はundoのセグメントヘッダと(TRN CTL / FREE BLOCK POOL的信息)undo セグメントブロックに起こった。もし非SYSTEMのundoセグメントに起こる場合に関連するロールバックセグメントを削除すればいい。   3.リカバリ   オペレーションを実行する前に、バックアップしてください SYSTEM ロールバックセグメントにBBED でktuxc.ktuxcnfb と ktuxc.ktuxcfbp[0..x].ktufbuba を0に設定した。こうすれば、Oraclが新たなトランザクションに空なブロックを使うようになる。   例えば: 以下はロールバックセグメントヘッダのダンプである
TRN CTL:: seq: 0x00af chd: 0x0036 ctl: 0x002a inc: 0x00000000 nfb: 0x0001 mgc: 0x8002 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe) uba: 0x00400006.00af.0f scn: 0x07be.a0bae152 Version: 0x01 FREE BLOCK POOL:: uba: 0x00400006.00af.0f ext: 0x0 spc: 0x13b4 uba: 0x00000000.00a8.0d ext: 0x7 spc: 0x1a2c uba: 0x00000000.009b.0b ext: 0x3 spc: 0x1c08 uba: 0x00000000.0092.27 ext: 0x3 spc: 0x12d0 uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
 
  1. bbedに対してふさわしい偏差値を設定する。 ktuxc.ktuxcnfbを0X0000に変更する。この例では:0X0001
  2. 偏差値を設定する。すべての非0ktuxcfbp[0..x].ktufbubaを0X00000000に設定する。この例でktuxc.ktuxcfbp[0].ktufbubaは0X00400006
  3.ブロックは既にリカバリできて、ブロックのチェックサムを新たな数値に設定する。あるいは、ブロックのchecksumを禁止する。   一部のブロックが修正したダンプは以下の通り:
The partial block dump after the modification is: TRN CTL:: seq: 0x00af chd: 0x0036 ctl: 0x002a inc: 0x00000000 nfb: 0x0000 mgc: 0x8002 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe) uba: 0x00400006.00af.0f scn: 0x07be.a0bae152 Version: 0x01 FREE BLOCK POOL:: uba: 0x00000000.00af.0f ext: 0x0 spc: 0x13b4 uba: 0x00000000.00a8.0d ext: 0x7 spc: 0x1a2c uba: 0x00000000.009b.0b ext: 0x3 spc: 0x1c08 uba: 0x00000000.0092.27 ext: 0x3 spc: 0x12d0 uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0  
  nfb=ktuxc.ktuxcnfb –空のブロック、プールに空じゃないスロットの数 ktuxc.ktuxcfbp=空のブロック・プール   4.データベースを起動して、system ロールバックセグメント: alter rollback segment SYSTEM shrink;