咨询微信: dbservice1234 7 x 24 在线支持!

[Oracleのデータ復旧] ORA-00600【6856】一つのケース

[Oracleのデータ復旧] ORA-00600【6856】一つのケース

プロの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バックアップセグメントがスペースを占めたからである。

 

詳しい内容は:http://www.askmac.cn/archives/deferred-rollback.html

 

ORA-00600: internal error code, arguments : [6856],[0],[163] に対する解決策は該当するdeferred rollbackロールバックデータセグメントをロールバックする。例えばbbedなどのコマンドでdeferred rollback segmentの rollback headerを処理する。