用ORACLE8i修复数据库坏块的三种方法
http://tech.ddvip.com 2007年05月08日 社区交流
本文详细介绍用ORACLE8i修复数据库坏块的三种方法
在进行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.试着将数据文件拷贝到别的磁盘。
责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>