プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
あるユーザーデータベーステーブルスペースtablespaceがOFFLINEしたら、またONLINE出来なくなったトラブルになった。alter tablespace ABC onlineを操作したら、エラになる:
alter tablespace abc online; error at line 1: ORA-00600: internal error code, arguments : [6856],[0],[163] 600のargument 1 によって、そのエラはそのテーブルスペースのデータとundoデータの間に整合性がないからである。
Ora-600 Base | Functionality | Description |
6000 | ram/data ram/analyze ram/index |
data, analyze command and index related activity |
ここのundoデータは Deferred Undo Segmentと意味する;
あるDEFERRED ROLLBACKもSAVE Undo segmentsと呼ばれている。以下のメリットがある:
- それは突然OFFLINEされたテーブルスペースのトランザクションをUNDO/Rollbackに格納して、データをロールバックする。
- Segment_nameデータセグメントの名前はFILE#ファイル番号.Block#ブロック番号
- そのSEGMENT_TYPEはDEFERRED ROLLBACKである
- SYSTEMシステムテーブルに自動的に作成する。
- SYSユーザーに属している
- もしOFFLINEされたテーブルスペースを再びONLINEして、そして、undoデータが既に応用されて、自動的にDROPされた。
Deferred Undo Segmentsは特別なロールバックセグメントで、そのundoデータはundoテーブルスペースのデータ構造と違っていて、ある単純な手順ログ形式で存在している。そのSEGMENT_NAMEはFILE#.Block#で,そのセグメントヘッダの物理位置に該当する。
DBA_SEGMENTSから検索してみれば、SEGMENT_TYPE为DEFERRED ROLLBACKのデータセグメントとなる。一般的にSYSTEMテーブルスペースにある。いくつのテーブルスペースがOFFLINEされたら,SYSTEMテーブルスペースが急速に膨らんできた。調べてみれば、DEFERRED ROLLBACKバックアップセグメントがスペースを占めたからである。
詳しい内容は:https://www.askmac.cn/archives/deferred-rollback.html
ORA-00600: internal error code, arguments : [6856],[0],[163] に対する解決策は該当するdeferred rollbackロールバックデータセグメントをロールバックする。例えばbbedなどのコマンドでdeferred rollback segmentの rollback headerを処理する。
Comment