MYSQL教程之ORACLE罕见毛病代码的剖析与办理(二)...
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”oracle|毛病|办理ORACLE罕见毛病代码的剖析与办理(二)
文章源自于世纪易网
ORA-01578:Oracledatablockcorrupted(file#num,block#num)
发生缘故原由:当ORACLE会见一个数据块时,因为1、硬件的I/O毛病;2、操纵体系的I/O毛病或缓冲成绩;3、内存或paging问
题;4、ORACLE试图会见一个未被格局化的体系块失利;5、数据文件部分溢出等上述几种情形的一种引发了逻辑坏块大概
物理坏块,这时候就会报ORA-01578的毛病。
办理体例:因为ORACLE只要在会见到有成绩的数据文件时才会报错,以是报错的工夫有大概会比实践堕落的工夫要晚,如
果ORA-01578堕落信息提醒数据坏块指向的是用户本人的数据文件,则用以下办法来办理:
假如经由过程上面的SQL语句查出的坏块呈现有索引上,则只需重修索引便可
SQL>Selectowner,segment_name,segment_typefromdba_extentswherefile_id=<F>and<B>betweenblock_idand
block_id+blocks-1;(<F>和<B>分离是ORA-01578报出的坏块呈现的文件号和块号)
假如坏块呈现在表上,先用以下语句剖析是不是为永世性坏块(倡议多实行一两次,有助于判别数据坏块是永世性的(硬盘
上的物理坏块)仍是随机性的(内存或硬件毛病引发)):
SQL>Analyzetable<table_name>validatestructurecascade;
实行该命令后,大概会呈现以下的了局:
ORA-01578:与本来毛病信息有不异的参数,为永世性的物理或逻辑坏块;与本来毛病信息有分歧的参数,大概与内存,
pagespace和I/O设备有关。
假如用户有此表的最新备份,那末最好是用此备份来恢复此表,大概利用event10231来掏出坏块之外的数据:
<1>.先封闭数据库
<2>.编纂init<sid>.ora文件,到场:
event=”10231tracenamecontextforever,level10”
<3>.startuprestrict
<4>.创立一个一时表:SQL>createtableerrortempasselect*fromerror;(error是坏表的表名)
<5>.把event从init<sid>.ora文件中删失落偏重起数据库
<6>.rename坏表,把一时表rename成坏表的表名
<7>.创立表上的INDEX等
假如ORA-01578堕落信息提醒数据坏块指向的是数据字典大概是回滚段的话,你应当当即与ORACLE公司接洽,配合商议一个
好的办理举措。
这里所讲的办理办法只是对照罕见的一种,一些更加详细的办理举措能够检察一下ORACLE的妨碍办理手册,那边面有浞及
利用ROWID办法来掏出坏块之外的数据的办法,这里就不先容了。
响应的英文以下:
Cause:Thegivendatablockwascorrupted,probablyduetoprogramerrors
Action:Trytorestorethesegmentcontainingthegivendatablock,Thismayinvolvedroppingthesegment
andrecreatingit,Ifthereisatracefile,reportthemessagesrecordedinittocustomersupport.
ORA-01628:max#ofextentsnumreachedforrollbacksegmentnum
发生缘故原由:这类毛病一般为一个回滚段和一个表空间已到达MAXEXTENTS参数设置的极限。要注重的是这个MAXEXTENTS不
是该回滚段或表空间的硬件极限,硬件极限取决于数据库创立时在init.ora文件中指定的DB_BLOCK_SIZE参数的值。
办理办法:利用SQL命令ALTERTABLESPACE…STORAGE(MAXEXTENTSXXXX)来增添MAXEXTENTS,个中“XXXX”值必需年夜于
毛病信息中所指的数值,但不克不及年夜于LARGESTMAXEXTENT的值,假如已到达了LARGESTMAXEXTENTVALUE,办理的举措就
是从头创立较年夜的局限尺寸,利用带有选项COMPRESS=Y的Export工具导出表,假如表空间有可用空间,先给表做一个备
份,用altertablespacetablespace_name变动其名字,然后再装载表回数据库。
检察其毛病呈现的中央,假如呈现在回滚段或索引上,那末必需将其删除偏重建,假如呈现在一时表空间,修正一时表空
间的存储字段,即可办理这个成绩。
一个报错例子以下:
ORA-1628:max#extents50reachedforrollbacksegmentRBS_1
响应的英文以下:
Cause:Anattemptwasmadetoextendarollbacksegmentthatalreadyhasreacheditsmaximumsizeorspace
couldnotbeallocatedinthedatadictionarytocontainthedefinitionoftheobject.
Action:Ifpossible,increasethevalueofeithertheMAXEXTENTSorPCTINCREASEinitializationparametersor
findthedatadictionarytablelackingspaceandalterthestorageparameters,asdescribedintheOracle8
ServerAdministrator’sGuide.
MySQL的双许可模式意味着,那些希望对数据库具有额外控制的人可以直接从数据库厂商那儿得到帮助。MySQLAB公司提供了支持和维护服务,诸如代码更新和补丁修补服务等,每年订阅费为大约3000美元。 外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 你可以简单地认为适合的就是好,不适合就是不好。 另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程); 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 呵呵,这就是偶想说的 groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
页:
[1]