ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
_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)
Comment