文档详情

数据库文件损坏与坏块处理.docx

发布:2016-12-26约1.19万字共15页下载文档
文本预览下载声明
数据库文件损坏与坏块处理作者:徐聪在数据库日常使用中,我们经常会遇到各种各样的坏块。在不同文件中或不同对象中的损坏或坏块有着不同的处理方式。控制文件损坏处理:控制文件遇到坏块时,基本现象就是控制文件的损坏,数据库无法启动到MOUNT,当然一般数据库都有多个控制文件组成。如果遇到其中的一个或者几个控制文件损坏(不是全部控制文件损坏),那么我们可以通过修改pfile中的control file初始化参数去除损坏的控制文件,或者复制未损坏的控制文件来覆盖损坏的控制文件,来达到修复控制文件的目的。如果遇到所有的控制文件损坏(没有做任何备份的情况下),那么就要我们手工来创建控制文件。手工创建控制文件脚本列子如下(需要数据库在nomount下):CREATE CONTROLFILE REUSE DATABASE orcl RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292LOGFILE GROUP 1 /oradata/orcl/redo01.log SIZE 256M, GROUP 2 /oradata/orcl/redo02.log SIZE 256M, GROUP 3 /oradata/orcl/redo03.log SIZE 256MDATAFILE /oradata/orcl/SUPHISV3.dbf, /oradata/orcl/SUPHISV301.dbf, /oradata/orcl/SUPHISV302.dbf, /oradata/orcl/SUPHISV303.dbf, /oradata/orcl/SUPHISV304.dbf, /oradata/orcl/SUPHISV305.dbf, /oradata/orcl/SUPHISV3CJ.dbf, /oradata/orcl/SUPHISV3CJ01.dbf, /oradata/orcl/SUPHISV3CJ02.dbf, /oradata/orcl/SUPHISV3CJ03.dbf, /oradata/orcl/SUPNCIS.dbf, /oradata/orcl/SUPNCIS2011.dbf, /oradata/orcl/supncis01.dbf, /oradata/orcl/supncis02.dbf, /oradata/orcl/supncis03.dbf, /oradata/orcl/supncis04.dbf, /oradata/orcl/supncis05.dbf, /oradata/orcl/supncis06.dbf, /oradata/orcl/supncis07.dbf, /oradata/orcl/supncis08.dbf, /oradata/orcl/sysaux01.dbf, /oradata/orcl/system01.dbf, /oradata/orcl/undotbs01.dbf, /oradata/orcl/users01.dbfCHARACTER SET ZHS16GBK;注意上面脚本中标红的位置需要重点关注来进行修改。orcl为数据库的SIDNORESETLOGS/RESETLOGS为是否要重置redo log文件NOARCHIVELOG/ARCHIVELOG为数据库是否在归档模式CHARACTER SET ZHS16GBK为数据库的字符集关于是否要重置redo需要根据具体情况进行判断:一:对于在非归档模式下的数据库:当redo log文件为未损坏时,使用noresetlogs noarchivelog此时,当完成控制文件的创建后,直接使用alter database mount;alter database open;可以直接打开数据库。当redo log文件也同样损坏,使用resetlogs noarchivelogalter database mount;?alter system set _allow_resetlogs_corruption=truescope=spfile;???--这个参数是关键,可以允许Oracle重置REDO日志recover database until cancel;??--使用CANCEL退出,运行后才可以使用resetlogs去open数据库alter database open resetlogs;二:对于在归档模式下的数据库:所有的online logs好的情况下,使用noresetlogs archvelogalter database mount;alter
显示全部
相似文档