【Oracle数据恢复】ORA-00600[6856]一例

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队 

服务热线 : 13764045638   QQ号:47079569    邮箱:service@parnassusdata.com

 

 

某用户数据库一表空间tablespace在OFFLINE之后出现无法ONLINE的问题,一旦操作alter tablespace ABC  online即报错:

QQ截图20151221143340

 

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#,对应其段头segment header的物理位置。

从DBA_SEGMENTS查的话就是SEGMENT_TYPE为DEFERRED ROLLBACK的数据段,一般存在SYSTEM表空间上,且属于SYS用户。  有用户遇到过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

*

沪ICP备14014813号-2

沪公网安备 31010802001379号