7 x 24 在线支持!
Oracle 在Awr表上的ORA-1578 ORA-26040
如果自己搞不定可以找诗檀软件专业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