网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle Database 10 g : 为 DBA .
.oracle 存储过程的基本语法.
.oracle8i-系统结构的组件(入门篇.
.查找运行系统里低劣的SQL方法.
.教你怎么样卸载Oracle 9i.
.Oracle SQL*NET TCP/IP 的通信模.
.如何使用DBMS_REPAIR检测和修补数.
.如何使特定用户具有smbmount上的.
.如何列出目录树.
.手工设定 LILO.
.国人的一些错误观念.
.Oracle体系结构:内存结构和进程.
.重建Oracle数据库控制文件的简单.
.说一说Oracle的优化器(Optimizer).
.[Oracle]数据库访问限制绕过漏洞.
.Oracle中利用EXP/IMP工具实现数据.
.Linux平台数据库大比拚(2).
.Oracle数据库共享连接和专用连接.
.通过Oracle平台依赖性进行系统优.
.[收藏]ORACLE函数大全.

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

发表日期:2007-4-9


  在进行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=

上一篇:oracle OCCI 的一个简单的包装类的实现 人气:3094
下一篇:.NET调用Oracle存储过程,使用数组类型的参数(如ArrayList) 人气:7870
浏览全部ORACLE8i的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐