如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
适用于:
Oracle Database - Enterprise Edition –版本10.2.0.1 到10.2.0.5 [Release 10.2] 本文信息适用于任何平台。 适用于10gR2 *** 05-AUG-2014检查相关性***
症状
在报告的trace文件中: 遇到的错误:(ORA-01578: ORACLE data block corrupted (file# xx, block# xxxx) ORA-01110: data file x: '.....' ORA-26040: Data block was loaded using the NOLOGGING option Db Verify 报告: DBV-00200: Block, dba xxxxxx, already marked corrupted
原因
如果一个NOLOGGING(或不可恢复)操作在对象上执行,且包含该对象的数据文件随后被恢复,则受NOLOGGING操作影响的数据块被标记为损坏,并将发出ORA-1578,ORA-26040。 注意,从块中无法抢救出数据。 这在重建该对象时是需要的。
然而,损坏仍可能遗留在SYSAUX表空间中,直到块被再使用且因此重新格式化时。
解决方案
重建AWR(Automatic Workload Repository)表的步骤是:
1. 通过设置统计级别为basic,禁用AWR统计收集 ,例如: sqlplus /nolog connect / as sysdba show parameter statistics_level alter system set statistics_level = basic scope=both; 2. 在restricted模式下停止并重启实例,例如: sqlplus /nolog connect / as sysdba shutdown immediate startup restrict 3. Drop 并重建AWR 对象,例如: sqlplus /nolog connect / as sysdba @?/rdbms/admin/catnoawr alter system flush shared_pool; @?/rdbms/admin/catawr.sql @?/rdbms/admin/utlrp 4. 然后重新启用所需的AWR 统计收集,通过将STATISTICS_LEVEL 设回初始值并正常重启实例,例如: sqlplus /nolog connect / as sysdba alter system set statistics_level = <Previous Value from above> scope=both; shutdown immediate startup
5. 对10GR2 (实际上是10.2.0.3 )应用最新的补丁集,它解决一些AWR相关的损坏问题。
参考
NOTE:293515.1 - ORA-1578 ORA-26040 in a LOB segment - Script to solve the errors