|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
客户还是可以使用DBaaS系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。oracle
ORACLE的坏块即ORA-01578错,同时还大概陪伴ORA-01110错,这类毛病关于初学者或是那些没有理论履历的dba来讲无疑是很辣手的。我现在就深受其害,写下这篇文章则是但愿对人人有所匡助。
1、出成绩时的情形
1、我的一个计费的进库的历程停失落,报的即是ORA-01578错,对使用相干的表tg_bill03做SQL>selectfromtg_cdr03whererownum<10;如许是能够的,但做SQL>selectcount(*)fromtg_bill03;时则报ORA-01578错。
2、反省alter<sid>.log中看到一几条报错信息:
Errorsinfile/oracle816/app/admin/billing/udump/ora_7281_billing.trc:
ORA-01578:ORACLEdatablockcorrupted(file#126,block#88490)
ORA-01110:datafile126:/dev/vgjf7/rdata471
2、过后剖析发生这类成绩的缘故原由
1、十之八九这个Oracle的数据库server翻开了异步I/O(asyncio)或增添了写历程。
2、硬件的I/O呈现了毛病。
3、操纵体系的I/O或缓存呈现我成绩,好比操纵体系关于异步I/O的补钉没有打。
4、手动的修正了数据文件中的数据,我摹拟这个毛病用的即是这类体例。
3、办理办法
这类成绩的办理办法是良多的,假如你用的是回档体例,则能够基于工夫点恢复来办理。不外这里先容一种对照便利的办理体例,由于我的库没有开回档。Metaline关于ORA-01578的笔墨也良多,不外我看事后总以为都不那末有用,不克不及办理实践的成绩。
1、办理这类成绩的第一步是起首你要断定是甚么段、哪一个段坏了,是索引仍是表?
A、翻开alter<sid>.log,找到ORA-01578的报错信息,并纪录下file#及block的值,我这里是126和88490。
B、实行以下语句看哪一个段坏了
SQL>Select*fromdba_extents
2wherefile_id=<F>
3and<B>betweenblock_idandblock_id+blocks-1;
这里的F指的是file#,B指的是block#
我的显现了局指出是tg_bill03呈现了坏块。
2、假如断定上去坏的是索引段,这时候你就能够轻舒一口吻了,只需把这个索相删除然后重修一下就能够了,假如呈现坏的是表段,则应往下走了。
3、纪录下这个表的建表语句
为我便利,倡议利用PL/SQLDeveloper来完成,假如你没有能够在http://www.allroundautomations.com/plsqldev.html往下载一个,操纵步骤是如许的。
A、以表的owner用pl/sqldeveloper连进oracle
B、在左面的树状栏中找到这个表tg_bill03,右击该表->view->ViewSQL,纪录下sql,以备以下步骤中重修索引。
4、实践处置了,以我的谁人表为例
A、以tg_bill03的owner连进oracle
B、利用诊断事务10231
SQL>ALTERSYSTEMSETEVENTS‘10231tracenamecontextforever,level10’;
C、创立一个一时表tg_bill_tmp的表中除坏块的数据都检索出来
SQL>CREATETABLEtg_bill03_tmpasselect*fromtg_bill03;
C、改名原表,并把tg_bill03_tmp为tg_bill03
SQL>altertabletg_bill03renametotg_bill03_bak;
SQL>altertabletg_bill03_tmptotg_bill03;
D、在tg_bill03上从头创立索引、束缚、受权、trigger等工具
E、使用表之间的营业干系,把坏块中的数据补足。
4、怎样只管削减成绩及成绩的丧失呢
剖析了发生成绩的缘故原由,我以为能够接纳以下几个措施
1、在为进步功能为操纵体系翻开异步I/O时,必定要与oracle及操纵体系手艺撑持接洽把操纵体系与异步I/O相干的补钉要打全。
2、制订一个优秀的备份恢复战略,最好有表的exp备份
3、要实时的反省硬件的形态,实时改换驱动器部件。
结篇:实在坏块触及的内容良多的,假如坏块产生的回滚段表空间、数据字典(system表空间)或联机日记,这些处置都是特难的,必要与oracle的supporter接洽。不外这些方面的坏的机率很少很少的,在今后的文章中我也会做先容。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。 |
|