仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 804|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计ORACLE坏块(ORA-01578)处置办法

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:38:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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接洽。不外这些方面的坏的机率很少很少的,在今后的文章中我也会做先容。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-19 20:02:16 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
莫相离 该用户已被删除
板凳
发表于 2015-1-26 19:48:54 | 只看该作者
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
山那边是海 该用户已被删除
地板
发表于 2015-2-4 20:05:28 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
admin 该用户已被删除
5#
发表于 2015-2-10 05:48:33 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
简单生活 该用户已被删除
6#
发表于 2015-2-28 21:57:45 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
深爱那片海 该用户已被删除
7#
发表于 2015-3-10 08:45:13 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
精灵巫婆 该用户已被删除
8#
发表于 2015-3-17 06:10:34 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
蒙在股里 该用户已被删除
9#
发表于 2015-3-23 23:07:50 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表