用ORACLE8i修复数据库坏块的三种方法
2008-02-23 07:37:48来源:互联网 阅读 ()
在进行SUN CLUSTER双机转换、意外断电或其他情况下,有时会发生共享盘MOUNT不上的情况,需要使用FSCK对共享盘进行修复。修复完成后,在数据库启动过程中,却又出现"数据块损坏,无法启动数据库"的现象,此时,能够根据不同的数据块损坏类型,检测并修复错误。在此介绍三种使用Oracle8i修复损坏数据块的方法。
一、数据块损坏,错误代码为ORA-01578
ORA-1115 I/O ERROR READING BLOCK
通常后跟ORA-737X错误和操作系统错误(如UNIX中的错误号5)
产生原因:
1. 硬件问题(磁盘控制器问题或磁盘问题)
2. 物理级的数据块损坏(通常由前一原因造成)
3. 处理巨型文档时,后跟错误代码ORA-7371
确定故障原因和恢复的方法:
1. 查看alert.log文档中其他ORA-1115错误的发生情况:
1) 假如指向不同磁盘的文档,则是磁盘控制器的问题,查看V$DATAFILE,有哪些文档位于该控制器下,转到第二步。
2) 假如指向相同磁盘的不同文档,则是磁盘的问题,转到第二步。
3) 假如指向同一个文档,执行以下语句查找文档名:
SELECT SEGMENT_NAME,SEGMENT_TYPE FROM DBA_EXTENTS WHERE FILE_ID=<文档号> AND <块号> BETWEEN BLOCK_ID
AND BLOCK_ID BLOCKS-1;
其中,文档号和块号是ORA-1115中指出的,假如该查询持续指向某表或索引,则重建他们即可。
2. 假如文档是SYSTEM表空间,或处于NOARCHIVELOG模式,关闭数据库,转到第四步。
3. 假如数据库处于ARCHIVELOG模式,仍应关闭数据库,假如不能关闭数据库,则将相应的数据文档脱机:ALTER DATABASE DATAFILE '文档名' OFFLINE;
4. 试着将数据文档拷贝到别的磁盘。
5. 假如拷贝失败,则文档将丢失。
6. STARTUP MOUNT;
7. 将数据文档重命名为成功拷贝到别的磁盘的文档名:
ALTER DATABASE RENAME FILE '老路径文档名' TO '新路径文档名';
8. ALTER DATABASE OPEN;
9. RECOVER DATAFILE 文档名;
ALTER DATABASE DATAFILE '文档名' ONLINE;
二、回滚段需要恢复
假如回滚段处于NEED RECOVERY状态,需要执行以下步骤进行恢复:
1. 查看任何联机的表空间和数据文档
2. 在init.ora文档中加入event = "10015 trace name context forever,level 10",这将生成一个追踪文档,其中含有事务和回滚的信息。
3. 关闭并重新打开数据库。
4. 查看TRACE文档,应有error recovery tx(#,#) object #.TX(#,#),指出事务信息,其中object #和sys.dba_objects中的object_id相同。
5. 使用以下查询找出正在进行恢复的对象:
SELECT owner,object_name,object_type,status FROM dba_objects WHERE object_id=
请作者联系本站,及时附注您的姓名。联系邮箱:edu#chinaz.com(把#改为@)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash