<?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-01410</title>
	<atom:link href="https://www.xifenfei.com/tag/ora-01410/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>Thu, 22 Oct 2026 15:45:06 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>bootstrap$核心index(I_OBJ1,I_USER1,I_FILE#_BLOCK#,I_IND1,I_TS#,I_CDEF1等)异常恢复&#8212;ORA-00701错误解决</title>
		<link>https://www.xifenfei.com/2014/10/%e8%a7%a3%e5%86%b3ora-00701-object-necessary-for-warmstarting-database-cannot-be-altered%e9%94%99%e8%af%af.html</link>
		<comments>https://www.xifenfei.com/2014/10/%e8%a7%a3%e5%86%b3ora-00701-object-necessary-for-warmstarting-database-cannot-be-altered%e9%94%99%e8%af%af.html#comments</comments>
		<pubDate>Fri, 24 Oct 2014 16:50:27 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[非常规恢复]]></category>
		<category><![CDATA[bootstrap$]]></category>
		<category><![CDATA[i_obj4]]></category>
		<category><![CDATA[open bootstrap$]]></category>
		<category><![CDATA[ORA-00600]]></category>
		<category><![CDATA[ORA-00701]]></category>
		<category><![CDATA[ORA-01410]]></category>
		<category><![CDATA[ORA-01499]]></category>
		<category><![CDATA[ORA-01578]]></category>
		<category><![CDATA[ORA-08102]]></category>
		<category><![CDATA[ORA-08103]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=5566</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2014/10/%e8%a7%a3%e5%86%b3ora-00701-object-necessary-for-warmstarting-database-cannot-be-altered%e9%94%99%e8%af%af.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/2014/10/%e8%a7%a3%e5%86%b3ora-00701-object-necessary-for-warmstarting-database-cannot-be-altered%e9%94%99%e8%af%af.html" target="_blank">bootstrap$核心index(I_OBJ1,I_USER1,I_FILE#_BLOCK#,I_IND1,I_TS#,I_CDEF1等)异常恢复&#8212;ORA-00701错误解决</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>在Oracle使用的过程中,经常遭遇一些核心index出现异常，导致数据库无法正常使用,特别是在数据库open的情况下,因为出现这些bootstrap$中的部分index是无法通过设置event38003进行重建,从而导致数据库无法正常使用,最常见异常index 有:I_ICOL1, I_TS1, I_CDEF1, I_CDEF2, I_CDEF3, I_CDEF4, I_PROXY_DATA$, I_IND1, I_TS#, I_UNDO1, I_UNDO2, I_COBJ#, I_USER1, I_USER2, I_CON1, I_CON2, I_FILE1, I_FILE2, I_FILE#_BLOCK#, I_USER#, I_OBJ#, I_PROXY_ROLE_DATA$_1, I_PROXY_ROLE_DATA$_2, I_CCOL1, I_CCOL2, I_TAB1, I_COL1, I_COL2, I_COL3, I_OBJ1, I_OBJ2, I_OBJ3, I_OBJ4, I_OBJ5<br />
重建的index异常报错有:ORA-00701,ORA-01410,ORA-08102,ORA-08103,ORA-01578,ORA-01499,ORA-00600等各类错误<br />
因为处理细节复杂,无法一一描述出来.这里假设Oracle数据库一个非常核心的表OBJ$中的I_OBJ1异常,现在准备重建它,大概步骤如下:<br />
<strong>1. 假设异常index信息（I_OBJ1）</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; alter index sys.i_obj1 rebuild;
alter index sys.i_obj1 rebuild
*
ERROR at line 1:
ORA-00701: object necessary for warmstarting database cannot be altered

SQL&gt; SELECT SQL_TEXT FROM BOOTSTRAP$ WHERE SQL_TEXT LIKE '%obj%';

SQL_TEXT
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX I_OBJ1 ON OBJ$(OBJ#,OWNER#,TYPE#) PCTFREE 10 INITRANS 2 MAXT
RANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PC
TINCREASE 0 OBJNO 36 EXTENTS (FILE 1 BLOCK 336))
</pre>
<p><strong>2. 创建获取异常index所属表</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;  select table_name from dba_indexes where owner='SYS' AND INDEX_NAME='I_OBJ1';

TABLE_NAME
--------------------------------------------------------------------------------
OBJ$
</pre>
<p><strong>3. 获取obj$ ddl 语句</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; set long 10000
SQL&gt; set pages 1000
SQL&gt;  SELECT DBMS_METADATA.GET_DDL('TABLE','OBJ$','SYS') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','OBJ$','SYS')
--------------------------------------------------------------------------------

  CREATE TABLE &quot;SYS&quot;.&quot;OBJ$&quot;
   (    &quot;OBJ#&quot; NUMBER NOT NULL ENABLE,
        &quot;DATAOBJ#&quot; NUMBER,
        &quot;OWNER#&quot; NUMBER NOT NULL ENABLE,
        &quot;NAME&quot; VARCHAR2(128) NOT NULL ENABLE,
        &quot;NAMESPACE&quot; NUMBER NOT NULL ENABLE,
        &quot;SUBNAME&quot; VARCHAR2(128),
        &quot;TYPE#&quot; NUMBER NOT NULL ENABLE,
        &quot;CTIME&quot; DATE NOT NULL ENABLE,
        &quot;MTIME&quot; DATE NOT NULL ENABLE,
        &quot;STIME&quot; DATE NOT NULL ENABLE,
        &quot;STATUS&quot; NUMBER NOT NULL ENABLE,
        &quot;REMOTEOWNER&quot; VARCHAR2(128),
        &quot;LINKNAME&quot; VARCHAR2(128),
        &quot;FLAGS&quot; NUMBER,
        &quot;OID$&quot; RAW(16),
        &quot;SPARE1&quot; NUMBER,
        &quot;SPARE2&quot; NUMBER,
        &quot;SPARE3&quot; NUMBER,
        &quot;SPARE4&quot; VARCHAR2(1000),
        &quot;SPARE5&quot; VARCHAR2(1000),
        &quot;SPARE6&quot; DATE,
        &quot;SIGNATURE&quot; RAW(16),
        &quot;SPARE7&quot; NUMBER,
        &quot;SPARE8&quot; NUMBER,
        &quot;SPARE9&quot; NUMBER
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 16384 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;
</pre>
<p><strong>4. 获取obj$相关index 语句</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;  SELECT DBMS_METADATA.GET_DDL('INDEX',INDEX_NAME,'SYS') FROM dba_indexes where owner='SYS' AND TABLE_NAME='OBJ$';

DBMS_METADATA.GET_DDL('INDEX',INDEX_NAME,'SYS')
--------------------------------------------------------------------------------

  CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ5&quot; ON &quot;SYS&quot;.&quot;OBJ$&quot; (&quot;SPARE3&quot;, &quot;NAME&quot;, &quot;NAMESPA
CE&quot;, &quot;TYPE#&quot;, &quot;OWNER#&quot;, &quot;REMOTEOWNER&quot;, &quot;LINKNAME&quot;, &quot;SUBNAME&quot;, &quot;OBJ#&quot;)
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;


  CREATE INDEX &quot;SYS&quot;.&quot;I_OBJ4&quot; ON &quot;SYS&quot;.&quot;OBJ$&quot; (&quot;DATAOBJ#&quot;, &quot;TYPE#&quot;, &quot;OWNER#&quot;)
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;


  CREATE INDEX &quot;SYS&quot;.&quot;I_OBJ3&quot; ON &quot;SYS&quot;.&quot;OBJ$&quot; (&quot;OID$&quot;)
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;


  CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ2&quot; ON &quot;SYS&quot;.&quot;OBJ$&quot; (&quot;OWNER#&quot;, &quot;NAME&quot;, &quot;NAMESPA
CE&quot;, &quot;REMOTEOWNER&quot;, &quot;LINKNAME&quot;, &quot;SUBNAME&quot;, &quot;TYPE#&quot;, &quot;SPARE3&quot;, &quot;OBJ#&quot;)
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 16384 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;


  CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ1&quot; ON &quot;SYS&quot;.&quot;OBJ$&quot; (&quot;OBJ#&quot;, &quot;OWNER#&quot;, &quot;TYPE#&quot;)

  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;
</pre>
<p><strong>5. 创建obj$img表和相关index</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;   CREATE TABLE &quot;SYS&quot;.&quot;OBJ$IMG&quot;
  2     (    &quot;OBJ#&quot; NUMBER NOT NULL ENABLE,
  3          &quot;DATAOBJ#&quot; NUMBER,
  4          &quot;OWNER#&quot; NUMBER NOT NULL ENABLE,
  5          &quot;NAME&quot; VARCHAR2(128) NOT NULL ENABLE,
  6          &quot;NAMESPACE&quot; NUMBER NOT NULL ENABLE,
  7          &quot;SUBNAME&quot; VARCHAR2(128),
  8          &quot;TYPE#&quot; NUMBER NOT NULL ENABLE,
  9          &quot;CTIME&quot; DATE NOT NULL ENABLE,
 10          &quot;MTIME&quot; DATE NOT NULL ENABLE,
 11          &quot;STIME&quot; DATE NOT NULL ENABLE,
 12          &quot;STATUS&quot; NUMBER NOT NULL ENABLE,
 13          &quot;REMOTEOWNER&quot; VARCHAR2(128),
 14          &quot;LINKNAME&quot; VARCHAR2(128),
 15          &quot;FLAGS&quot; NUMBER,
 16          &quot;OID$&quot; RAW(16),
 17          &quot;SPARE1&quot; NUMBER,
 18          &quot;SPARE2&quot; NUMBER,
 19          &quot;SPARE3&quot; NUMBER,
 20          &quot;SPARE4&quot; VARCHAR2(1000),
 21          &quot;SPARE5&quot; VARCHAR2(1000),
 22          &quot;SPARE6&quot; DATE,
 23          &quot;SIGNATURE&quot; RAW(16),
 24          &quot;SPARE7&quot; NUMBER,
 25          &quot;SPARE8&quot; NUMBER,
 26          &quot;SPARE9&quot; NUMBER
 27     ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 28   NOCOMPRESS LOGGING
 29    STORAGE(INITIAL 16384 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
 30    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
 31    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
 32    TABLESPACE &quot;SYSTEM&quot;
 33  ;

Table created.

SQL&gt; 
SQL&gt;   CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ_5IMG&quot; ON &quot;SYS&quot;.&quot;OBJ$IMG&quot; (&quot;SPARE3&quot;, &quot;NAME&quot;, &quot;NAMESPACE&quot;, &quot;TYPE#&quot;, &quot;OWNER#&quot;, &quot;REMOTEOWNER&quot;, &quot;LINKNAME&quot;, &quot;SUBNAME&quot;, &quot;OBJ#&quot;)
  2    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  3    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  4    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  5    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  6    TABLESPACE &quot;SYSTEM&quot;;

Index created.

SQL&gt;   CREATE INDEX &quot;SYS&quot;.&quot;I_OBJ4IMG&quot; ON &quot;SYS&quot;.&quot;OBJ$IMG&quot; (&quot;DATAOBJ#&quot;, &quot;TYPE#&quot;, &quot;OWNER#&quot;)
  2    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  3    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  4    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  5    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  6    TABLESPACE &quot;SYSTEM&quot;;   

Index created.

SQL&gt;   CREATE INDEX &quot;SYS&quot;.&quot;I_OBJ3IMG&quot; ON &quot;SYS&quot;.&quot;OBJ$IMG&quot; (&quot;OID$&quot;)
  2    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  3    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  4    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  5    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  6    TABLESPACE &quot;SYSTEM&quot;;

Index created.

SQL&gt;   CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ2IMG&quot; ON &quot;SYS&quot;.&quot;OBJ$IMG&quot; (&quot;OWNER#&quot;, &quot;NAME&quot;, &quot;NAMESPACE&quot;, &quot;REMOTEOWNER&quot;, &quot;LINKNAME&quot;, &quot;SUBNAME&quot;, &quot;TYPE#&quot;, &quot;SPARE3&quot;, &quot;OBJ#&quot;)
  2    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  3    STORAGE(INITIAL 16384 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
  4    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  5    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  6    TABLESPACE &quot;SYSTEM&quot;;

Index created.

SQL&gt;   CREATE UNIQUE INDEX &quot;SYS&quot;.&quot;I_OBJ1IMG&quot; ON &quot;SYS&quot;.&quot;OBJ$IMG&quot; (&quot;OBJ#&quot;, &quot;OWNER#&quot;, &quot;TYPE#&quot;)
  2    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  3    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  4    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  5    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  6    TABLESPACE &quot;SYSTEM&quot;
  7  ;

Index created.
</pre>
<p><strong>6. 获取bootstrap$语句</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; SELECT DBMS_METADATA.GET_DDL('TABLE','BOOTSTRAP$','SYS') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','BOOTSTRAP$','SYS')
--------------------------------------------------------------------------------

  CREATE TABLE &quot;SYS&quot;.&quot;BOOTSTRAP$&quot;
   (    &quot;LINE#&quot; NUMBER NOT NULL ENABLE,
        &quot;OBJ#&quot; NUMBER NOT NULL ENABLE,
        &quot;SQL_TEXT&quot; VARCHAR2(4000) NOT NULL ENABLE
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 57344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE &quot;SYSTEM&quot;
</pre>
<p><strong>7. 创建bootstrap$img表</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;   CREATE TABLE &quot;SYS&quot;.&quot;BOOTSTRAP$IMG&quot;
  2     (    &quot;LINE#&quot; NUMBER NOT NULL ENABLE,
  3          &quot;OBJ#&quot; NUMBER NOT NULL ENABLE,
  4          &quot;SQL_TEXT&quot; VARCHAR2(4000) NOT NULL ENABLE
  5     ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  6   NOCOMPRESS LOGGING
  7    STORAGE(INITIAL 57344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  8    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  9    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
 10    TABLESPACE &quot;SYSTEM&quot;
 11  /

Table created.
</pre>
<p><strong>8.插入数据</strong></p>
<pre class="brush: sql; title: ; notranslate">
insert into obj$img select * from obj$;
insert into bootstrap$img select * from bootstrap$;
commit;
</pre>
<p><strong>9. 删除bootstrap$img对象名</strong></p>
<pre class="brush: sql; title: ; notranslate">
delete from bootstrap$img where obj# in 
 (select obj# from obj$ 
  where name in ('OBJ$',  'I_OBJ1',  'I_OBJ2', 'I_OBJ3', 'I_OBJ4', 'I_OBJ5',
                 'BOOTSTRAP$'));
commit;
</pre>
<p><strong>10. 插入新创建对象</strong></p>
<pre class="brush: sql; title: ; notranslate">
insert into bootstrap$img select * from bootstrap$tmpstr;
commit;
</pre>
<p><strong>11. 关闭数据库</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
</pre>
<p><strong>12. bbed修改相关block值</strong></p>
<pre class="brush: bash; title: ; notranslate">
[oracle@oel6 ~]$ bbed 
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on Thu Aug 7 04:54:50 2014

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED&gt; set filename '/u01/app/oracle/oradata/XIFENFEI/system01.dbf'
        FILENAME        /u01/app/oracle/oradata/XIFENFEI/system01.dbf

BBED&gt; set blocksize 8192
        BLOCKSIZE       8192

BBED&gt; set block 1
        BLOCK#          1

BBED&gt; set mode edit
        MODE            Edit

BBED&gt; set count 32
        COUNT           32

BBED&gt; m /x e81d
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /u01/app/oracle/oradata/XIFENFEI/system01.dbf (0)
 Block: 1                Offsets:   196 to  227           Dba:0x00000000
------------------------------------------------------------------------
 e81d4000 12000000 00000000 41bad632 15bad632 01000000 00000000 00000000 

 &lt;32 bytes per line&gt;

BBED&gt; m /x 5200 offset +2
 File: /u01/app/oracle/oradata/XIFENFEI/system01.dbf (0)
 Block: 1                Offsets:   198 to  229           Dba:0x00000000
------------------------------------------------------------------------
 52001200 00000000 000041ba d63215ba d6320100 00000000 00000000 00000000 

 &lt;32 bytes per line&gt;

BBED&gt; d offset 96
 File: /u01/app/oracle/oradata/XIFENFEI/system01.dbf (0)
 Block: 1                Offsets:   196 to  227           Dba:0x00000000
------------------------------------------------------------------------
 e81d5200 12000000 00000000 41bad632 15bad632 01000000 00000000 00000000 

 &lt;32 bytes per line&gt;

BBED&gt; sum apply
Check value for File 0, Block 1:
current = 0x5fbf, required = 0x5fbf

BBED&gt; verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/XIFENFEI/system01.dbf
BLOCK = 1


DBVERIFY - Verification complete

Total Blocks Examined         : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 0
Total Blocks Influx           : 0
Message 531 not found;  product=RDBMS; facility=BBED


BBED&gt; exit
</pre>
<p><strong>13. 启动数据库</strong></p>
<pre class="brush: bash; title: ; notranslate">
SQL&gt; startup
ORACLE instance started.

Total System Global Area  663945216 bytes
Fixed Size                  2291808 bytes
Variable Size             369100704 bytes
Database Buffers          289406976 bytes
Redo Buffers                3145728 bytes
Database mounted.
Database opened.
</pre>
<p><strong>14. 验证I_OBJ1 index重建情况</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; SELECT OBJECT_ID,DATA_OBJECT_ID,CREATED FROM DBA_OBJECTS WHERE OBJECT_NAME='I_OBJ1';

 OBJECT_ID DATA_OBJECT_ID CREATED
---------- -------------- ---------
     77120          77120 06-AUG-14

SQL&gt; !date  
Thu Aug  6 05:29:25 CST 2014

SQL&gt; SELECT HEADER_FILE,HEADER_BLOCK FROM DBA_SEGMENTS WHERE SEGMENT_NAME='I_OBJ1';

HEADER_FILE HEADER_BLOCK
----------- ------------
          1        77296

SQL&gt; SELECT SQL_TEXT FROM BOOTSTRAP$ WHERE SQL_TEXT LIKE '%obj%';

SQL_TEXT
-----------------------------------------------------------------------------------------------------------------------------------------------
create unique index i_obj1 on obj$(obj#, owner#, type#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 65536 NEXT 1048576 MINEXTENTS 1 M
AXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 77120 EXTENTS (FILE 1 BLOCK 77296))

create unique index i_obj2 on obj$(owner#, name, namespace,remoteowner, linkname, subname, type#, spare3, obj#) PCTFREE 10 INITRANS 2 MAXTRANS
255 STORAGE (  INITIAL 16384 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 77119 EXTENTS (FILE 1 BLOCK 77288))

create index i_obj3 on obj$(oid$) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 P
CTINCREASE 0 OBJNO 77118 EXTENTS (FILE 1 BLOCK 77280))

create index i_obj4 on obj$(dataobj#, type#, owner#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXE
XTENTS 2147483645 PCTINCREASE 0 OBJNO 77117 EXTENTS (FILE 1 BLOCK 77272))

create unique index i_obj5 on obj$(spare3, name, namespace, type#, owner#, remoteowner, linkname, subname, obj#) PCTFREE 10 INITRANS 2 MAXTRANS
 255 STORAGE (  INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 77116 EXTENTS (FILE 1 BLOCK 77264))
</pre>
<p>不同版本对应的基表和index结构不一样(本篇blog使用的是12c做试验),但是本方法支持数据库从Oracle 7到Oracle 12c对于bootstrap$中核心index处理.<br />
因为重建bootstrap$中的核心index是一个复杂而且风险非常大的事情,在你无法确定风险或者无法正常完成此类操作之时,如有需要请联系我<br />
<strong><font color="red" size=4>Phone:17813235971  &nbsp;&nbsp;   Q Q:<a href='https://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes' target='_blank'>107644445</a>  &nbsp;&nbsp;  E-Mail:dba@xifenfei.com</font></strong></p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/07/%e4%bd%bf%e7%94%a8copy%e5%ae%9e%e7%8e%b0long%e7%b1%bb%e5%9e%8b%e8%bd%ac%e7%a7%bb%e8%a1%a8%e7%a9%ba%e9%97%b4.html" rel="bookmark" class="crp_title">使用copy实现long类型转移表空间</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/01/%e8%b7%b3%e8%bf%87obj%e5%9d%8f%e5%9d%97%e6%96%b9%e6%b3%95.html" rel="bookmark" class="crp_title">跳过obj$坏块方法</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/05/%e4%bd%bf%e7%94%a8dbms_metadata-get_ddl%e5%87%ba%e7%8e%b0ora-31605%e9%94%99%e8%af%af.html" rel="bookmark" class="crp_title">使用dbms_metadata.get_ddl出现ORA-31605错误</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2026/05/ora-39083-ora-14102.html" rel="bookmark" class="crp_title">impdp报ORA-39083 ORA-14102错误处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/07/oracle-12c-%e5%9c%a8datapump%e6%96%b9%e9%9d%a2%e5%a2%9e%e5%bc%ba%e5%8f%82%e6%95%b0.html" rel="bookmark" class="crp_title">ORACLE 12C 在datapump方面增强参数</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/03/%e8%af%af%e5%88%a0%e9%99%a4dual%e8%a1%a8%e6%81%a2%e5%a4%8d.html" rel="bookmark" class="crp_title">误删除dual表恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/08/oracle-12c-dbms_utility-expand_sql_text-%e6%9f%a5%e7%9c%8bsql%e8%a7%86%e5%9b%be%e5%9f%ba%e8%a1%a8.html" rel="bookmark" class="crp_title">ORACLE 12C dbms_utility.expand_sql_text 查看SQL视图基表</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/08/fckeditor%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e.html" rel="bookmark" class="crp_title">fckeditor使用说明</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/09/shell%e7%bc%96%e7%a8%8b%e2%80%94%e2%80%94%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95.html" rel="bookmark" class="crp_title">shell编程——基本语法</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/09/bbed_wrap%e8%84%9a%e6%9c%ac%e8%8e%b7%e5%8f%96%e6%95%b0%e6%8d%ae%e5%9d%97%e5%86%85%e5%ae%b9.html" rel="bookmark" class="crp_title">bbed_wrap脚本获取数据块内容</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/01/%e9%aa%8c%e8%af%81imp-show%e5%8f%82%e6%95%b0.html" rel="bookmark" class="crp_title">验证imp show参数</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/09/ora-02266-uniqueprimary-keys-in-table-referenced-by-enabled-foreign-keys.html" rel="bookmark" class="crp_title">ORA-02266: unique/primary keys in table referenced by enabled foreign keys</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2014/10/%e8%a7%a3%e5%86%b3ora-00701-object-necessary-for-warmstarting-database-cannot-be-altered%e9%94%99%e8%af%af.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORA-01410: invalid ROWID 分析</title>
		<link>https://www.xifenfei.com/2011/06/ora-01410-invalid-rowid-%e5%88%86%e6%9e%90.html</link>
		<comments>https://www.xifenfei.com/2011/06/ora-01410-invalid-rowid-%e5%88%86%e6%9e%90.html#comments</comments>
		<pubDate>Fri, 10 Jun 2011 07:28:44 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[ORA-xxxxx]]></category>
		<category><![CDATA[ORA-01410]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=1092</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2011/06/ora-01410-invalid-rowid-%e5%88%86%e6%9e%90.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/2011/06/ora-01410-invalid-rowid-%e5%88%86%e6%9e%90.html" target="_blank">ORA-01410: invalid ROWID 分析</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p><strong>1、跟踪错误表</strong><br />
alter session set max_dump_file_size=unlimited;<br />
alter session set db_file_multiblock_read_count=1;<br />
alter session set events &#8217;10200 trace name context forever, level 1&#8242;;<br />
执行下面语句<br />
SELECT COUNT(*) FROM  QXTDEV1.TAB_SMS_MT_DOWN<br />
报错<br />
ORA-01410: invalid ROWID<br />
alter session set events &#8217;10200 trace name context off&#8217;;</p>
<p><strong>2、查看跟踪文件尾部</strong><br />
Consistent read started for block 0 : <span style="color: #ff0000;">00400652</span><br />
env: (scn: 0x0abf.1ee04657  xid: 0&#215;0000.000.00000000  uba: 0&#215;00000000.0000.00  statement num=0  parent xid: xid: 0&#215;0000.000.00000000  scn: 0&#215;0000.00000000 0sch: scn: 0&#215;0000.00000000)<br />
Consistent read finished for block 0 : 400652<br />
Consistent read finished for block 0 : 400652<br />
通过这个文件看到文件读到400652的块的时候终止了，错误应该在这块上</p>
<p><strong>3、分析400652块内容</strong><br />
&#8211;转换为10进制<br />
SELECT to_number(&#8217;400652&#8242;,&#8217;xxxxxxxx&#8217;) FROM dual;<br />
&#8211;求文件号和块号<br />
SELECT DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(4195922),<br />
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(4195922)<br />
FROM DUAL;</p>
<p><strong>4、dump文件号为1，块号为1618的内容</strong><br />
alter system dump datafile 1 block 1618;<br />
Block header dump:  0&#215;00400652<br />
Object id on Block? Y<br />
seg/obj: <span style="color: #ff0000;">0xde </span> csc: 0xabf.1e400c0c  itc: 2  flg: O  typ: 1 &#8211; DATA<br />
fsl: 0  fnx: 0&#215;0 ver: 0&#215;01<br />
得到object_id为de，转化为十进制<br />
SELECT to_number(&#8216;de&#8217;,&#8217;xx&#8217;) FROM dual;<br />
查询all_objects表<br />
SELECT * FROM All_Objects WHERE object_id=222;<br />
发现这个数据库（绝对块号400652，相对：文件号1，块号1618）指向的表为dual</p>
<p><strong>5、得出结论</strong><br />
我们的QXTDEV1.TAB_SMS_MT_DOWN表中的数据块指向了sys.dual表，从而出现了ORA-01410错误</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/10/oracle%e4%b8%adconnect-by-start-with-%e7%9a%84%e4%bd%bf%e7%94%a8.html" rel="bookmark" class="crp_title">Oracle中connect by…start with…的使用</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/09/%e6%a8%a1%e6%8b%9f%e6%99%ae%e9%80%9aora-08103%e5%b9%b6%e8%a7%a3%e5%86%b3.html" rel="bookmark" class="crp_title">模拟普通ORA-08103并解决</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/04/%e9%80%9a%e8%bf%87dump%e5%88%86%e6%9e%90undo%e9%95%9c%e5%83%8f%e5%86%85%e5%ae%b9.html" rel="bookmark" class="crp_title">通过dump分析undo镜像内容</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/03/bbed%e6%a8%a1%e6%8b%9f%e6%8f%90%e4%ba%a4%e4%ba%8b%e5%8a%a1%e4%b8%80%e4%b9%8b%e4%bf%ae%e6%94%b9itl.html" rel="bookmark" class="crp_title">bbed模拟提交事务一之修改itl</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/09/%e6%a8%a1%e6%8b%9f%e6%9e%81%e7%ab%afora-08103%e5%b9%b6%e8%a7%a3%e5%86%b3.html" rel="bookmark" class="crp_title">模拟极端ORA-08103并解决</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/08/ora-01012-not-logged-on.html" rel="bookmark" class="crp_title">ORA-01012: not logged on</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/12/%e5%9c%a8ultraedit%e4%b8%ad%e5%ae%9a%e4%bd%8d%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html" rel="bookmark" class="crp_title">在UltraEdit中定位数据文件内容</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/04/%e8%a1%a8%e7%a9%ba%e9%97%b4online%e5%87%ba%e7%8e%b0ora-00600kcbz_check_objd_typ%e5%a4%84%e7%90%86%e8%bf%87%e7%a8%8b.html" rel="bookmark" class="crp_title">表空间online出现ORA-00600[kcbz_check_objd_typ]处理过程</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/11/%e5%9d%97%e4%bf%ae%e6%94%b9%e8%b7%9f%e8%b8%aa%e7%89%b9%e6%80%a7block-change-tracking.html" rel="bookmark" class="crp_title">块修改跟踪特性(Block Change Tracking)</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/01/dd%e6%93%8d%e4%bd%9c%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6.html" rel="bookmark" class="crp_title">dd操作数据文件</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/03/undo%e5%bc%82%e5%b8%b8%e4%ba%8b%e5%8a%a1%e5%9b%9e%e6%bb%9a%e8%a7%84%e5%88%99%e5%88%86%e6%9e%90.html" rel="bookmark" class="crp_title">undo异常事务回滚规则分析</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/04/oracle-%e8%b7%9f%e8%b8%aa%e4%bc%9a%e8%af%9d.html" rel="bookmark" class="crp_title">oracle 跟踪会话</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2011/06/ora-01410-invalid-rowid-%e5%88%86%e6%9e%90.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
