<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; ORA-00600 internal error code arguments [16703] [1403]</title>
	<atom:link href="https://www.xifenfei.com/tag/ora-00600-internal-error-code-arguments-16703-1403/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Wed, 28 Oct 2026 00:37:06 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>警告：互联网中有oracle介质被注入恶意程序导致&#8212;ORA-600 16703</title>
		<link>https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html</link>
		<comments>https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html#comments</comments>
		<pubDate>Mon, 10 Jul 2017 18:00:54 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[非常规恢复]]></category>
		<category><![CDATA[bbed tab$]]></category>
		<category><![CDATA[DBMS_SUPPORT_DBMONITOR]]></category>
		<category><![CDATA[DBMS_SUPPORT_DBMONITORP]]></category>
		<category><![CDATA[delete tab$]]></category>
		<category><![CDATA[ORA-00600 internal error code arguments [16703] [1403]]]></category>
		<category><![CDATA[ORA-600 16703]]></category>
		<category><![CDATA[ORA-600 kzrini:!uprofile]]></category>
		<category><![CDATA[ORA-7445 kokeicbegin]]></category>
		<category><![CDATA[ORACHK]]></category>
		<category><![CDATA[ORACLE恶意脚本]]></category>
		<category><![CDATA[oracle注入恶意脚本]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=7156</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html" target="_blank">警告：互联网中有oracle介质被注入恶意程序导致&#8212;ORA-600 16703</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>继续上篇的tab$被清空(<a href="//www.xifenfei.com/2017/07/ora-600-16703-recovery.html" title="ORA-600 16703故障解析—tab$表被清空">ORA-600 16703故障解析—tab$表被清空</a>),导致数据库启动异常的case<br />
<strong>ORA-600 16703报错</strong><br />
<a href="//www.xifenfei.com/2017/07/ora-600-16703-recovery.html"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/ora-600-16703.png" alt="ora-600-16703" width="593" height="400" class="alignleft size-full wp-image-7229" /></a><br />
<hr />
<strong>数据库日志分析</strong><br />
数据库open成功同时报ORA-7445 kokeicbegin和ORA-600 kzrini:!uprofile错误<br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/ora-600-kzrini-uprofile.jpg" alt="ora-600-kzrini-uprofile" width="1399" height="548" class="alignleft size-full wp-image-7157" /></a><br />
<hr />
再次启动数据库直接报ORA-600 16703错误<br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/ora-600-16703.jpg" alt="ora-600-16703" width="1091" height="567" class="alignleft size-full wp-image-7158" /></a><br />
<hr />
这里有一个其他现象,就是数据库在open成功的同时(同一秒内),开始报异常.重启之后直接报<br />
ORA-00704: bootstrap process failure<br />
ORA-00704: bootstrap process failure<br />
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []<br />
根据10046分析结果</p>
<pre class="brush: bash; title: ; notranslate">
=====================
select rowcnt,blkcnt,empcnt,avgspc,chncnt,avgrln,nvl(degree,1), nvl(instances,1) from tab$ where obj# = :1
END OF STMT
PARSE #140048443935120:c=0,e=390,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905161433
=====================
select blevel, leafcnt, distkey, lblkkey, dblkkey, clufac,        nvl(degree,1), nvl(instances,1) from ind$ where bo# = :1 and obj# = :2
END OF STMT
PARSE #140048443934176:c=1000,e=601,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162088
=====================
PARSING IN CURSOR #140048443933232 len=70 dep=1 uid=0 oct=3 lid=0 tim=1499185905162444 hv=3377894161 ad='84f13d70' sqlid='32d4jrb4pd4sj'
select charsetid, charsetform from col$  where obj# = :1 and col# = :2
END OF STMT
PARSE #140048443933232:c=0,e=294,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162443
=====================
PARSING IN CURSOR #140048443932288 len=52 dep=1 uid=0 oct=3 lid=0 tim=1499185905247020 hv=429618617 ad='84f0f2d0' sqlid='4krwuz0ctqxdt'
select ctime, mtime, stime from obj$ where obj# = :1
END OF STMT
PARSE #140048443932288:c=0,e=549,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905247019
BINDS #140048443932288:
select blevel, leafcnt, distkey, lblkkey, dblkkey, clufac,        nvl(degree,1), nvl(instances,1) from ind$ where bo# = :1 and obj# = :2
END OF STMT
PARSE #140048443934176:c=1000,e=601,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162088
=====================
PARSING IN CURSOR #140048443933232 len=70 dep=1 uid=0 oct=3 lid=0 tim=1499185905162444 hv=3377894161 ad='84f13d70' sqlid='32d4jrb4pd4sj'
select charsetid, charsetform from col$  where obj# = :1 and col# = :2
END OF STMT
PARSE #140048443933232:c=0,e=294,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162443
=====================
PARSING IN CURSOR #140048443932288 len=52 dep=1 uid=0 oct=3 lid=0 tim=1499185905247020 hv=429618617 ad='84f0f2d0' sqlid='4krwuz0ctqxdt'
select ctime, mtime, stime from obj$ where obj# = :1
END OF STMT
PARSE #140048443932288:c=0,e=549,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905247019
BINDS #140048443932288:
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f5f91b87bd0  bln=22  avl=02  flg=05
  value=20
EXEC #140048443932288:c=2000,e=2686,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=1218588913,tim=1499185905249810
WAIT #140048443932288: nam='db file sequential read' ela= 6205 file#=1 block#=337 blocks=1 obj#=36 tim=1499185905256132
WAIT #140048443932288: nam='db file sequential read' ela= 3739 file#=1 block#=338 blocks=1 obj#=36 tim=1499185905266704
WAIT #140048443932288: nam='db file sequential read' ela= 4966 file#=1 block#=241 blocks=1 obj#=18 tim=1499185905271761
FETCH #140048443932288:c=0,e=21976,p=3,cr=3,cu=0,mis=0,r=1,dep=1,og=4,plh=1218588913,tim=1499185905271820
STAT #140048443932288 id=1 cnt=1 pid=0 pos=1 obj=18 op='TABLE ACCESS BY INDEX ROWID OBJ$ (cr=3 pr=3 pw=0 time=21993 us)'
STAT #140048443932288 id=2 cnt=1 pid=1 pos=1 obj=36 op='INDEX RANGE SCAN I_OBJ1 (cr=2 pr=2 pw=0 time=16923 us)'
CLOSE #140048443932288:c=0,e=63,dep=1,type=0,tim=1499185905271941
BINDS #140048443935120:
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f5f91c07de8  bln=22  avl=02  flg=05
  value=20
EXEC #140048443935120:c=1000,e=795,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=2970138452,tim=1499185905272802
WAIT #140048443935120: nam='db file sequential read' ela= 3197 file#=1 block#=169 blocks=1 obj#=3 tim=1499185905276069
WAIT #140048443935120: nam='db file sequential read' ela= 3459 file#=1 block#=170 blocks=1 obj#=3 tim=1499185905404084
WAIT #140048443935120: nam='db file sequential read' ela= 6358 file#=1 block#=145 blocks=1 obj#=4 tim=1499185905410548
FETCH #140048443935120:c=999,e=137805,p=3,cr=3,cu=0,mis=0,r=0,dep=1,og=4,plh=2970138452,tim=1499185905410635
STAT #140048443935120 id=1 cnt=0 pid=0 pos=1 obj=4 op='TABLE ACCESS CLUSTER TAB$ (cr=3 pr=3 pw=0 time=137810 us)'
STAT #140048443935120 id=2 cnt=1 pid=1 pos=1 obj=3 op='INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=2 pw=0 time=131330 us)'
 
*** 2017-07-05 00:31:46.094
Incident 176395 created, dump file: /oracle/diag/rdbms/orcl/orcl2/incident/incdir_176395/orcl_ora_51261_i176395.trc
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
</pre>
<p>以及以往恢复经验和mos,基本上可以确定是由于tab$和obj$记录不匹配导致该问题.而且是obj#=20的记录在tab$和obj$中不匹配.<br />
<br />
<strong>分析tab$和obj$记录</strong></p>
<pre class="brush: bash; title: ; notranslate">
Data UnLoader: 11.2.0.1.5 - Internal Only - on Wed Jul 05 01:28:53 2017
with 64-bit io functions and the decompression option
 
Copyright (c) 1994 2017 Bernard van Duijnen All rights reserved.
 
 Strictly Oracle Internal Use Only
 
 
Found db_id = 1334610369
Found db_name = orcl
DUL&gt; unload table TAB$( OBJ# number, DATAOBJ# number,
  2      TS# number, FILE# number, BLOCK# number,
  3      BOBJ# number, TAB# number, COLS number, CLUCOLS number,
  4      PCTFREE$ ignore, PCTUSED$ ignore, INITRANS ignore, MAXTRANS ignore,
  5      FLAGS ignore, AUDIT$ ignore, ROWCNT ignore, BLKCNT ignore,
  6      EMPCNT ignore, AVGSPC ignore, CHNCNT ignore, AVGRLN ignore,
  7      AVGSPC_FLB ignore, FLBCNT ignore,
  8      ANALYZETIME ignore, SAMPLESIZE ignore,
  9      DEGREE ignore, INSTANCES ignore,
 10      INTCOLS ignore, KERNELCOLS number, PROPERTY number)
 11      cluster  C_OBJ#(OBJ#)
 12      storage ( tablespace 0 segobjno 2 tabno 1 file 1 block 144);
. unloading table                      TAB$       0 rows unloaded
DUL&gt; unload table OBJ$( OBJ# number, DATAOBJ# number, OWNER# number,
  2      NAME clean varchar2(30), NAMESPACE ignore, SUBNAME clean varchar2(30),
  3      TYPE# number, CTIME ignore, MTIME ignore, STIME ignore,
  4      STATUS ignore, REMOTEOWNER ignore, LINKNAME ignore,
  5      FLAGS ignore, OID$ hexraw)
  6      storage ( tablespace 0 segobjno 18 file 1 block 240);
. unloading table                      OBJ$   89804 rows unloaded
DUL&gt;
</pre>
<p>这里可以明确表示tab$无记录,obj$有记录,从而启动的过程出现ORA-600 16703错误可以很好解释.由于数据库启动成功和报错几乎同时进行，以及上面看到的tab$记录不存在的情况，初步怀疑是有startup触发器清空tab$表记录<br />
<strong>工具分析触发器表trigger$</strong><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/startup-trigger.jpg" alt="startup-trigger" width="789" height="88" class="alignleft size-full wp-image-7159" /></a><br />
<hr />
这里果然看到一个after startup on database的触发器,名字为DBMS_SUPPORT_DBMONITOR,而它调用的是DBMS_SUPPORT_DBMONITORP存储.<br />
<br />
<strong>工具分析pl/sql表source$</strong><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/DBMS_SUPPORT_DBMONITOR.jpg" alt="DBMS_SUPPORT_DBMONITOR" width="741" height="607" class="alignleft size-full wp-image-7160" /></a><br />
<hr />
对wraped加密的程序进行解密<br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/DBMS_SUPPORT_DBMONITOR-unwraped.jpg" alt="DBMS_SUPPORT_DBMONITOR-unwraped" width="814" height="681" class="alignleft size-full wp-image-7161" /></a><br />
<hr />
这里可以明确的看到DBMS_SUPPORT_DBMONITORP存储过程备份tab$表到orachk中然后delete tab$表,现在已经明确是由于DBMS_SUPPORT_DBMONITOR触发器在数据库重启之后开始执行调用DBMS_SUPPORT_DBMONITORP程序,如果判断数据库创建时间大于等于300天,便干掉tab$表,实现数据库破坏.<br />
<br />
<strong>查找DBMS_SUPPORT_DBMONITOR等程序源头</strong><br />
分析相关程序创建时间,通过obj$表的ctime和name来判断<br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/DBMS_SUPPORT_DBMONITOR-ctime.jpg" alt="DBMS_SUPPORT_DBMONITOR-ctime" width="1181" height="90" class="alignleft size-full wp-image-7162" /></a><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/bootstrap-ctime.jpg" alt="bootstrap-ctime" width="1069" height="400" class="alignleft size-full wp-image-7163" /></a><br />
<hr />
这里可以看出来DBMS_SUPPORT_DBMONITOR和DBMS_SUPPORT_DBMONITORP的创建时间基本上和数据库核心对象的创建时间相差无几,我们可以大概排除掉,是由于pl sql等工具连接数据库导致该发问题(类似:<a href="//www.xifenfei.com/2016/11/plsql-dev-hacker-bitcoin.html" title="plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案">plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案</a>),很可能是在dbca创建库的过程中就已经带有了DBMS_SUPPORT_DBMONITOR等程序,如果这样那很可能是由于数据库的安装介质被破坏导致该问题.<br />
<br />
<strong>分析DBMS_SUPPORT_DBMONITOR来源</strong><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/prvtsupp.jpg" alt="prvtsupp" width="1204" height="95" class="alignleft size-full wp-image-7164" /></a><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/20170711001626.jpg" alt="20170711001626" width="761" height="631" class="alignleft size-full wp-image-7165" /></a><br />
<hr />
这里已经很清晰,由于prvtsupp.plb被人注入了恶意脚本从而使得数据库被创建了DBMS_SUPPORT_DBMONITOR的触发器和DBMS_SUPPORT_DBMONITORP的存储过程,从而实现了对数据库的而易破坏.<br />
<br />
<strong>确定破坏文件prvtsupp.plb来源于介质</strong><br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/jar.png" alt="jar" width="1188" height="386" class="alignleft size-full wp-image-7177" /></a></p>
<hr />这里比较明显,文件就是来源database\stage\Components\oracle.rdbms.dbscripts\11.2.0.4.0\1\DataFiles\filegroup2.jar\rdbms\admin\prvtsupp.plb文件被修改导致<br />
<a href="//www.xifenfei.com/?p=7156"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/md5.jpg" alt="md5" width="1188" height="288" class="alignleft size-full wp-image-7167" /></a><br />
<hr />
通过md5码对比,可以确定是有人对软件的安装介质进行了破坏,从而实现了恶意代码的注入,从而实现了数据库300天之后重启之后无法正常启动而是出现类似ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []的错误.<br />
<br />
<strong>温馨提示</strong><br />
各位一定要从官方途径下载oracle安装介质,如果是从其他互联网途径下载一定要验证md5,确保文件没有被人恶意篡改,造成无可挽回的损坏.如果真的不幸遇到这类问题,请保护现场联系我们<br />
<strong><font color="red" size=4>Tel:17813235971  &nbsp;&nbsp;   Q Q:107644445<a target="_blank" href="https://wpa.qq.com/msgrd?v=3&amp;uin=107644445&amp;site=qq&amp;menu=yes"><img id="xffqqimg" src="//www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"></a>  &nbsp;&nbsp;  E-Mail:dba@xifenfei.com</font></strong><br />
我们可以通过使用bbed对tab$表数据数据进行恢复实现数据库正常启动,实现数据0丢失,最大限度抢救您的数据和减少业务恢复时间</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html" rel="bookmark" class="crp_title">ORA-600 16703故障解析&#8212;tab$表被清空</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/05/wncry-recovery.html" rel="bookmark" class="crp_title">.wncry比特币勒索病毒恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/11/dbconsole-ora-00020.html" rel="bookmark" class="crp_title">Oracle dbconsole 引起ORA-00020</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/09/%e6%81%b6%e6%84%8f%e7%a0%b4%e5%9d%8f%e7%9a%84oracle%e6%95%b0%e6%8d%ae%e5%ba%93%e6%81%a2%e5%a4%8d%e6%a1%88%e4%be%8b%e5%88%86%e4%ba%ab.html" rel="bookmark" class="crp_title">恶意破坏的Oracle数据库恢复案例分享</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/01/hangao-2017-xifenfei-ppt.html" rel="bookmark" class="crp_title">2017瀚高·第二届数据库技术峰会&#8212;Oracle数据库非常规恢复之道</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/01/ora-600-16703-ora-702.html" rel="bookmark" class="crp_title">近期又遇到ORA-600 16703和ORA-702故障</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/03/ora-600-16703-202403.html" rel="bookmark" class="crp_title">最近遇到几起ORA-600 16703故障(tab$被清空),请引起重视</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2023/05/ora-600-16703-vandalism-ora-00704-ora-00922.html" rel="bookmark" class="crp_title">ORA-600 16703故障,客户找人恢复数据库,数据库被进一步恶意破坏&#8212;ORA-00704 ORA-00922</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/02/gandcrab-oracle-recovery.html" rel="bookmark" class="crp_title">GANDCRAB升级版Oracle恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2018/04/enq-hw-contention.html" rel="bookmark" class="crp_title">数据文件自扩展引起&#8212;enq: HW &#8211; contention</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/04/oracle-7-3-4-%e6%88%aa%e5%9b%be%e6%ac%a3%e8%b5%8f.html" rel="bookmark" class="crp_title">ORACLE 7.3.4 截图欣赏</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2016/01/vmware-vsphere6-0-%e5%88%9d%e8%af%95.html" rel="bookmark" class="crp_title">VMware vSphere6.0 初试</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORA-600 16703故障解析&#8212;tab$表被清空</title>
		<link>https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html</link>
		<comments>https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html#comments</comments>
		<pubDate>Tue, 04 Jul 2017 17:47:03 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[非常规恢复]]></category>
		<category><![CDATA[bbed tab$]]></category>
		<category><![CDATA[DBMS_SUPPORT_DBMONITOR]]></category>
		<category><![CDATA[DBMS_SUPPORT_DBMONITORP]]></category>
		<category><![CDATA[delete tab$]]></category>
		<category><![CDATA[ORA-00600 internal error code arguments [16703] [1403]]]></category>
		<category><![CDATA[ORA-600 16703]]></category>
		<category><![CDATA[ORA-600 kzrini:!uprofile]]></category>
		<category><![CDATA[ORA-7445 kokeicbegin]]></category>
		<category><![CDATA[ORACHK]]></category>
		<category><![CDATA[ORACLE恶意脚本]]></category>
		<category><![CDATA[oracle注入恶意脚本]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=7148</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html" target="_blank">ORA-600 16703故障解析&#8212;tab$表被清空</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>最近连续遇到两次数据库启动报ORA-600 16703错误,而导致数据库无法正常启动的问题</p>
<p><strong>ORA-600 16703报错</strong><br />
<a href="//www.xifenfei.com/2017/07/ora-600-16703-recovery.html"><img src="//www.xifenfei.com/wp-content/uploads/2017/07/ora-600-16703.png" alt="ora-600-16703" width="593" height="400" class="alignleft size-full wp-image-7229" /></a><br />
<hr />
<pre class="brush: bash; title: ; notranslate">
Completed: ALTER DATABASE RECOVER  database
alter database open
Beginning crash recovery of 1 threads
 parallel recovery started with 32 processes
Started redo scan
Completed redo scan
 read 0 KB redo, 0 data blocks need recovery
Started redo application at
 Thread 1: logseq 993752, block 2, scn 14872376881763
Recovery of Online Redo Log: Thread 1 Group 6 Seq 993752 Reading mem 0
  Mem# 0: /oracle/oradata/xifenfei/redo06.log
Completed redo application of 0.00MB
Completed crash recovery at
 Thread 1: logseq 993752, block 3, scn 14872376901765
 0 data blocks read, 0 data blocks written, 0 redo k-bytes read
Tue Jul 04 23:13:29 2017
Thread 1 advanced to log sequence 993753 (thread open)
Thread 1 opened at log sequence 993753
  Current log# 7 seq# 993753 mem# 0: /oracle/oradata/xifenfei/redo07.log
Successful open of redo thread 1
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Jul 04 23:13:29 2017
SMON: enabling cache recovery
Errors in file /oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_ora_15886.trc  (incident=163595):
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
Incident details in: /oracle/diag/rdbms/xifenfei/xifenfei/incident/incdir_163595/xifenfei_ora_15886_i163595.trc
Tue Jul 04 23:13:30 2017
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_ora_15886.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
Errors in file /oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_ora_15886.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
Error 704 happened during db open, shutting down database
USER (ospid: 15886): terminating the instance due to error 704
Instance terminated by USER, pid = 15886
ORA-1092 signalled during: alter database open...
opiodr aborting process unknown ospid (15886) as a result of ORA-1092
</pre>
<p>这里报错比较明显ORA-600 16703,而且是在启动时bootstrap$中的对象出现该问题.</p>
<p><strong>10046分析启动过程<br />
</strong></p>
<pre class="brush: bash; title: ; notranslate">
=====================
select rowcnt,blkcnt,empcnt,avgspc,chncnt,avgrln,nvl(degree,1), nvl(instances,1) from tab$ where obj# = :1
END OF STMT
PARSE #140048443935120:c=0,e=390,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905161433
=====================
select blevel, leafcnt, distkey, lblkkey, dblkkey, clufac,        nvl(degree,1), nvl(instances,1) from ind$ where bo# = :1 and obj# = :2
END OF STMT
PARSE #140048443934176:c=1000,e=601,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162088
=====================
PARSING IN CURSOR #140048443933232 len=70 dep=1 uid=0 oct=3 lid=0 tim=1499185905162444 hv=3377894161 ad='84f13d70' sqlid='32d4jrb4pd4sj'
select charsetid, charsetform from col$  where obj# = :1 and col# = :2
END OF STMT
PARSE #140048443933232:c=0,e=294,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162443
=====================
PARSING IN CURSOR #140048443932288 len=52 dep=1 uid=0 oct=3 lid=0 tim=1499185905247020 hv=429618617 ad='84f0f2d0' sqlid='4krwuz0ctqxdt'
select ctime, mtime, stime from obj$ where obj# = :1
END OF STMT
PARSE #140048443932288:c=0,e=549,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905247019
BINDS #140048443932288:
select blevel, leafcnt, distkey, lblkkey, dblkkey, clufac,        nvl(degree,1), nvl(instances,1) from ind$ where bo# = :1 and obj# = :2
END OF STMT
PARSE #140048443934176:c=1000,e=601,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162088
=====================
PARSING IN CURSOR #140048443933232 len=70 dep=1 uid=0 oct=3 lid=0 tim=1499185905162444 hv=3377894161 ad='84f13d70' sqlid='32d4jrb4pd4sj'
select charsetid, charsetform from col$  where obj# = :1 and col# = :2
END OF STMT
PARSE #140048443933232:c=0,e=294,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905162443
=====================
PARSING IN CURSOR #140048443932288 len=52 dep=1 uid=0 oct=3 lid=0 tim=1499185905247020 hv=429618617 ad='84f0f2d0' sqlid='4krwuz0ctqxdt'
select ctime, mtime, stime from obj$ where obj# = :1
END OF STMT
PARSE #140048443932288:c=0,e=549,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1499185905247019
BINDS #140048443932288:
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f5f91b87bd0  bln=22  avl=02  flg=05
  value=20
EXEC #140048443932288:c=2000,e=2686,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=1218588913,tim=1499185905249810
WAIT #140048443932288: nam='db file sequential read' ela= 6205 file#=1 block#=337 blocks=1 obj#=36 tim=1499185905256132
WAIT #140048443932288: nam='db file sequential read' ela= 3739 file#=1 block#=338 blocks=1 obj#=36 tim=1499185905266704
WAIT #140048443932288: nam='db file sequential read' ela= 4966 file#=1 block#=241 blocks=1 obj#=18 tim=1499185905271761
FETCH #140048443932288:c=0,e=21976,p=3,cr=3,cu=0,mis=0,r=1,dep=1,og=4,plh=1218588913,tim=1499185905271820
STAT #140048443932288 id=1 cnt=1 pid=0 pos=1 obj=18 op='TABLE ACCESS BY INDEX ROWID OBJ$ (cr=3 pr=3 pw=0 time=21993 us)'
STAT #140048443932288 id=2 cnt=1 pid=1 pos=1 obj=36 op='INDEX RANGE SCAN I_OBJ1 (cr=2 pr=2 pw=0 time=16923 us)'
CLOSE #140048443932288:c=0,e=63,dep=1,type=0,tim=1499185905271941
BINDS #140048443935120:
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f5f91c07de8  bln=22  avl=02  flg=05
  value=20
EXEC #140048443935120:c=1000,e=795,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=2970138452,tim=1499185905272802
WAIT #140048443935120: nam='db file sequential read' ela= 3197 file#=1 block#=169 blocks=1 obj#=3 tim=1499185905276069
WAIT #140048443935120: nam='db file sequential read' ela= 3459 file#=1 block#=170 blocks=1 obj#=3 tim=1499185905404084
WAIT #140048443935120: nam='db file sequential read' ela= 6358 file#=1 block#=145 blocks=1 obj#=4 tim=1499185905410548
FETCH #140048443935120:c=999,e=137805,p=3,cr=3,cu=0,mis=0,r=0,dep=1,og=4,plh=2970138452,tim=1499185905410635
STAT #140048443935120 id=1 cnt=0 pid=0 pos=1 obj=4 op='TABLE ACCESS CLUSTER TAB$ (cr=3 pr=3 pw=0 time=137810 us)'
STAT #140048443935120 id=2 cnt=1 pid=1 pos=1 obj=3 op='INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=2 pw=0 time=131330 us)'

*** 2017-07-05 00:31:46.094
Incident 176395 created, dump file: /oracle/diag/rdbms/xifenfei/xifenfei/incident/incdir_176395/xifenfei_ora_51261_i176395.trc
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
</pre>
<p>报错信息明显,由于select rowcnt,blkcnt,empcnt,avgspc,chncnt,avgrln,nvl(degree,1), nvl(instances,1) from tab$ where obj# = :1无法正常执行.从而出现了ORA-600 16703的错误,更加直接一点的解释就是obj#=20的对象在tab$中找不到记录，从而出现此类报错.和官方解释ORA-600 TAB$和obj$不匹配一致.</p>
<p><strong>分析system文件</strong><br />
通过dul等工具分析system文件发现tab$表记录为空</p>
<pre class="brush: bash; title: ; notranslate">
Data UnLoader: 11.2.0.1.5 - Internal Only - on Wed Jul 05 01:28:53 2017
with 64-bit io functions and the decompression option

Copyright (c) 1994 2017 Bernard van Duijnen All rights reserved.

 Strictly Oracle Internal Use Only

Found db_id = 1334610369
Found db_name = xifenfei
DUL&gt; unload table TAB$( OBJ# number, DATAOBJ# number,
  2      TS# number, FILE# number, BLOCK# number,
  3      BOBJ# number, TAB# number, COLS number, CLUCOLS number,
  4      PCTFREE$ ignore, PCTUSED$ ignore, INITRANS ignore, MAXTRANS ignore,
  5      FLAGS ignore, AUDIT$ ignore, ROWCNT ignore, BLKCNT ignore,
  6      EMPCNT ignore, AVGSPC ignore, CHNCNT ignore, AVGRLN ignore,
  7      AVGSPC_FLB ignore, FLBCNT ignore,
  8      ANALYZETIME ignore, SAMPLESIZE ignore,
  9      DEGREE ignore, INSTANCES ignore,
 10      INTCOLS ignore, KERNELCOLS number, PROPERTY number)
 11      cluster  C_OBJ#(OBJ#)
 12      storage ( tablespace 0 segobjno 2 tabno 1 file 1 block 144);
. unloading table                      TAB$       0 rows unloaded
DUL&gt; unload table OBJ$( OBJ# number, DATAOBJ# number, OWNER# number,
  2      NAME clean varchar2(30), NAMESPACE ignore, SUBNAME clean varchar2(30),
  3      TYPE# number, CTIME ignore, MTIME ignore, STIME ignore,
  4      STATUS ignore, REMOTEOWNER ignore, LINKNAME ignore,
  5      FLAGS ignore, OID$ hexraw)
  6      storage ( tablespace 0 segobjno 18 file 1 block 240);
. unloading table                      OBJ$   89804 rows unloaded
DUL&gt;
</pre>
<p>发现在obj$中有创建表ORACHKBEC66CBE055000000000001(ORACHK+16进制24位)的一个表名字<br />
<a href=" //www.xifenfei.com/2017/07/ora-600-16703-recovery.html"><img class="alignleft size-full wp-image-7149" alt="orachk" src="//www.xifenfei.com/wp-content/uploads/2017/07/orachk.jpg" width="852" height="138" /></a></p>
<hr />
<p>该表用途通过分析数据库日志发现<br />
create table ORACHKBEC66CBE055000000000001 tablespace system as select * from sys.tab$;<br />
也就是说,这个orachk的表是用来备份tab$的,然后进一步发现有delete from tab$.至此基本上分析清楚,tab$表备份到ORACHK表中,然后delete tab$表数据.实现数据库破坏以及难以恢复的效果.有点类似<a title="plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案" href="//www.xifenfei.com/2016/11/plsql-dev-hacker-bitcoin.html" target="_blank">plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案</a>的破坏案例<br />
我们可以通过使用bbed对tab$表数据数据进行恢复实现数据库正常启动,实现数据0丢失,最大限度抢救您的数据和减少业务恢复时间<br />
<strong><span style="color: red; font-size: large;">Phone:17813235971    Q Q:107644445<a href="https://wpa.qq.com/msgrd?v=3&amp;uin=107644445&amp;site=qq&amp;menu=yes" target="_blank"><img id="xffqqimg" title="QQ咨询惜分飞" alt="QQ咨询惜分飞" src="//www.xifenfei.com/wp-content/themes/img/site_qq.jpg" /></a>    E-Mail:dba@xifenfei.com</span></strong><br />
源头已经分析清楚,是有人篡改了oracle安装介质,导致数据库运行300天之后出现该问题,具体见:<a href="//www.xifenfei.com/2017/07/oracle-software-malicious-injection.html" title="警告：互联网中有oracle介质被注入恶意程序导致—ORA-600 16703" target="_blank">警告：互联网中有oracle介质被注入恶意程序导致—ORA-600 16703</a></p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/07/oracle-software-malicious-injection.html" rel="bookmark" class="crp_title">警告：互联网中有oracle介质被注入恶意程序导致&#8212;ORA-600 16703</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/02/ora-600-16703-2025-year.html" rel="bookmark" class="crp_title">2025年第一起ORA-600 16703故障恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/03/oracle-12c-ora-600-16703.html" rel="bookmark" class="crp_title">12C数据库遭遇ORA-600 16703</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/03/ora-00600-16703-1403-4.html" rel="bookmark" class="crp_title">ORA-00600: internal error code, arguments: [16703], [1403], [4] 原因</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/09/ora-600-16703.html" rel="bookmark" class="crp_title">ORA-600 16703故障再现</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/05/ora-600-kokasgi1-recovery.html" rel="bookmark" class="crp_title">ORA-600 kokasgi1故障恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/01/tab-recovery-error.html" rel="bookmark" class="crp_title">tab$恢复错误汇总</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2021/06/tab-recovery-ora-600-13304.html" rel="bookmark" class="crp_title">tab$异常被处理之后报ORA-600 13304故障处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/10/%e4%bd%bf%e7%94%a8ultraedit%e4%bf%ae%e6%94%b9oracle%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6.html" rel="bookmark" class="crp_title">使用UltraEdit修改oracle二进制文件</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/04/aix-tab-ora-600-16703-1403-28.html" rel="bookmark" class="crp_title">aix平台tab$被删除可能出现ORA-600  [16703], [1403], [28]错误</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/06/ora-01092-ora-00704-ora-00600-16703.html" rel="bookmark" class="crp_title">ORA-00600: internal error code, arguments: [16703], [1403], [32]</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2021/05/ora-600-16703-1403-4.html" rel="bookmark" class="crp_title">ORA-00600: internal error code, arguments: [16703], [1403], [4] 故障处理</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2017/07/ora-600-16703-recovery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
