网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  用Oracle8i修复数据库坏块的三种方法     
  文章作者:未知  文章来源:未知  
  查看:176次  录入:管理员--2007-04-23  
 

在进行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相同。

 
 
上一篇: 把应用程序和Oracle客户端一起打包    下一篇: Oracle OCCI的一个简单的包装类的实现
  相关文档
关于Oracle 9i数据库密码重用规则分析 04-11
Oracle的恢复管理器及DBMS_JOB包分析 04-11
教你如何收集Oracle进程中SQL跟踪信息 05-27
如何使用pl/sql读取数据库中的blob对象 03-27
oracle failsafe与rac两者之间的不同之处 05-13
教你快速掌握oracle 9i数据库的移动过程 11-15
Linux平台下数据库资源使用情况分析 04-11
Oracle数据库中通过扩展SQL跟踪数据 04-11
RMAN备份恢复——配置介质管理器 06-03
循序渐进讲解oracle数据库管理员的职责 (1) 04-29
轻松掌握oracle数据库开发中序列的使用 08-05
深入了解缓冲日志文件i/o重要性能问题 04-16
oracle-decode()函数和case语句有哪些不同 04-15
Oracle系统表查询 01-15
如何才能解决job的interval输入参数过长 03-24
windows下oracle 9i数据库文件的自动备份 07-11
oracle数据库中关于"null"排序的问题 01-25
实例讲解如何实现某种类型的分页功能 03-05
相关的技术培训(oracle) 01-15
Oracle数据库删除两表中相同数据的方法 06-10
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息