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

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

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

[适用版本] 所有版本 [适用平台] 所有平台 [详细内容] 修复破损块 ================== Document 1746576.1(KROWN:135925) 块破损时的对策:其1(查看破损块)中,我们可以发现与之前查看到的 SEGMENT_TYPE 的 INDEX 与 TABLE 的处理方法不同。 1) SEGMENT_TYPE = INDEX 的情况 索引破损的案例中,可以通过drop/create重新制成索引来处理。 * rebuild 时,无法重新使用现在正在使用的块。 CREATE 语句可以通过dbms_metadata package来查看。 Document 1721853.1(KROWN:63896) dbms_metadata package的概要与使用例 2) SEGMENT_TYPE = TABLE 的情况 1. 想获得RMAN 以及用户管理的备份时请使用。 并且,通过RMAN 来获得备份时,可以以块单位来执行恢复。详细内容请查看以下 KROWN。 Document 1713078.1(KROWN:38393) RMAN 9i新功能: 块介质恢复 (BMR) 2. 理论备份时(exp/imp 以及 csv 等)需要重新制成对象,从备份中加载数据。 3. 使用DBMS_REPAIR package,读取对应块,详细内容请查看以下 KROWN。 Document 1717045.1(KROWN:48684) DBMS_REPAIRpackage的使用例 ※DBMS_REPAIR package仅对标记为破损的块有效,无法对LOB段使用。 详细内容请查看 KROWN。 Document 1717169.1(KROWN:49040) 破损块对策 如果有备份的话 ---------------------------- 如果没有备份,也无法使用DBMS_REPAIR package时,从破损对象中尽可能取出数据重新制成 查看一下内容。 1. 使用export utility的修复 查看是否可以通过export utility获得转储文件。 $ exp test/test file=test.dmp tables=test direct=y * 11g 以后,请使用Datapump utility。 不会发生Document 1737396.1(KROWN:122837)直接输出以及 Data Pump Export ORA-1578 2. 使用CREATE TABLE AS SELECT(CTAS) 修复 a. 发生ORA-1578 时 设定event 10231,执行CTAS。 SQL> CREATE TABLE TEST_TMP AS SELECT * FROM TEST; Document 1706324.1(KROWN:21385) ORA-1578 块破损时,获得表数据 (event 10231) 无法执行b. a.,并且发生了其他错误时 从获得的块转储中指定发生破损的转储块或者问题行,查看破损的读取对象数据的ROWID 通过DBMS_ROWID.ROWID_CREATE来查看ROWID。 SQL> CREATE TABLE TEST_TMP AS SELECT * FROM TEST WHERE ROWID != 'AAAAACAABAAANX0AAD'; SQL> RENAME TEST TO TEST_BAK; SQL> RENAME TEST_TMP TO TEST; SQL> DROP TABLE TEST_BAK; 使用Document 1731203.1(KROWN:99901) dbms_rowid package,读取破损块数据的方法(R8.0以后) 3) TEMP 表空间中的破损 在发生TEMP 表空间中发生破损的案例中,请重新制成TEMP表空间。 Document 1722564.1(KROWN:66029) 本地管理临时表空间的备份、恢复方法以及注意事项 4) 本地管理表空间额bitmap块破损时 这些破损案例中,请使用通过用户管理的备份或者RMAN获得的备份执行恢复。 无法获得理论备份时,请在删除表空间并重新制成后,执行数据加载。 没有备份时,请使用export utility取出数据,重新制成表空间。