Oracle _CORRUPTED_ROLLBACK_SEGMENTS隠しバラメタ

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

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]

 

_CORRUPTED_ROLLBACK_SEGMENTS(corrupted undo segment list)隠しバラメタしか持っていない機能:

  • インスタンスにstartupを起動して、データベースを起動する段階:_CORRUPTED_ROLLBACK_SEGMENTSにあげたundo segments(削除セグメント/ロールバックセグメント)が読み取らない
  • これらの_CORRUPTED_ROLLBACK_SEGMENTSによって挙げられたundo segmentsのトランザクションもコミットされたと認められて、今のundo segmentsはドロップの時に似ている:
    • これはかなりひどいロジックエラに導く
    • もしデータディクショナリーにアクチブトランザクションがあれば、より深刻な状況になる。データディクショナリーロジックエラはデータベース管理トラブルに導く。
    • もしbootstrapコアオブジェクトにアクチブトランザクションがあれば、ORA-00704: bootstrap process failureエラが無視できなくなって、データベースを強制的に起動できなくなる。(Oracleデータリカバリ:ORA-00600:[4000] ORA-00704: bootstrap process failureの解決例に参考してください)
  • _CORRUPTED_ROLLBACK_SEGMENTSというバラメタでデータをエクスポートして、データベースを再構造する。けど、このバラメタを使うと、後始末がかなりめんどくさくなる。
  • Oracle社内でTXCheckerというツールでトラブルトランザクションを検知できる

 

 

_offline_rollback_segments も_corrupted_rollback_segments もインスタンスを変化させる:

  • 以上の二つのバラメタに挙げられたUndo Segments(削除セグメント/ロールバックセグメント)はオンラインで使わないようにされる
  • UNDO$データディクショナリーベーステーブルにOFFLINEと示した記録
  • インスタンスは新たなトランザクションに使われない
  • バラメタに挙げられたUndo Segmentsリストにアクチブトランザクションactive transactionはロールバックされない、deadとマックされない。(みんなも知らないSMON起動(五):Recover Dead transaction)

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

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