当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 用ORACLE8i修复数据库坏块的三种方法

MYSQL
mysql Load Data InFile 的用法
MSSQL output使用
mysql 性能的检查和调优方法
mysql 的load data infile
MySQL 配置文件my.cnf 例子最详细翻译
MYSQL 随机 抽取实现方法及效率分析
mysql 存储过程的问题
Mysql my.ini 配置文件详解
mysql 控制台操作
mysql 服务完全卸载技巧
mysql 数据库设计
mysql 中文乱码 解决方法集锦
MYSQL 没有完全卸载将导致其安装不成功
mysql 教程 存储过程
asp.net 将图片上传到mysql数据库的方法
绿色版 mysql 安装配置
mysql root用户的密码修改和消除
MySQL 相关的环境变量
mysql 常用命令集锦[绝对精华]
linux mysql 安装与操作

MYSQL 中的 用ORACLE8i修复数据库坏块的三种方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 90 ::
收藏到网摘: n/a

  在进行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#ruanchen.com(把#改为@)。