ORA-01578: ORACLE 数据块损坏的解决方案

错误描述:
Errors in file d:\app\administrator\diag\rdbms\ticket\ticket\trace\ticket_ora_46572.trc  (incident=170565):
ORA-01578: ORACLE 数据块损坏 (文件号 6, 块号 4621)
ORA-01110: 数据文件 6: 'D:\APP\ADMINISTRATOR\ORADATA\TICKET\TBS_DATA.DBF'
ORA-26040: 数据块是使用 NOLOGGING 选项加载的
Incident details in: d:\app\administrator\diag\rdbms\ticket\ticket\incident\incdir_170565\ticket_ora_46572_i170565.trc
Thu Sep 01 18:51:40 2011
错误原因:Oracle数据块受损,数据块使用NOLOGGING选项加载不能恢复.
解决方法:
1.dba登录oracle 
 sqlplus /nolog
 conn /as sysdba
2.查看数据库受损的数据块,得到受损的对象
Select * from dba_extents
where file_id = '6' and '4621' between block_id and block_id + blocks - 1;
备注:6为受损数据库文件号
     4621为受损数据块块号
	 查看知道customers表受损
	 
3.设置时间禁止跳过对应受损的数据块.
ALTER session SET EVENTS='10231 trace name context off';
ALTER session SET EVENTS='10231 trace name context forever,level 10';
4.将受损数据块对应表对象创建备份
切换至一般用户
conn tbs/ticket
创建表
create table t_customers as
   select * from customers;
5.删除旧表
drop table t_customers;
6.重新命名表的名称.
 rename t_customers to customers;
备注:
A.在Oracle 11g中不能执行alter table t_customers rename customers,
否则报错提示如下:
ORA-14155 缺失PARTITION 或者SUBPARTITION,t_customers本身也有分区;
B.在执行CREATE TABLE语句和RENAME T_NEW TO T语句直接的修改可能会丢失,如果要保证一致性,
需要在执行完语句后对数据进行检查,而这个代价是比较大的。 




 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值