新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 旧版
 → 当前位置:首页 > 教程 > 数据库 > Oracle > 正文

oracle教程 Oracle实例恢复详细分析总汇

XKER.COM   2006-6-20 11:17:17  来源:小新技术网  点击:

I. 数据库是处于关闭状态的。
  试图打开数据库时报ORA-1157和ORA-1110错误,这时的解决方法取于数据库是否是正常shutdown的(使用normal或immediate选项。
  I.A.数据库是正常shutdown的
  如果数据数据库是正常shutdown的,最简单的解决方法是以offline drop选项删除丢失或损坏的数据文件,以restriceted模式打个数据库,删除并重建这个数据文件所属的那个回滚表空间。如果数据库是以 shutdown abort或自己崩溃掉的则不要遵循这个过程。
  步骤如下:
  1、确认数据库是正常shutdown的。可以检查alter.log这个文件,定位到最后几行看是否可以看到如下的信息:
  "alter database dismount
  Completed: alter database dismount"
  这当然也包括以正常方式shutdown,接然试图启动数据库确失败的状况。如果最近一次你是以shutdown abort方式关闭数据库的或数据库是自己crashed掉的,你应用使用下面的I.B的方法。
  2、在init<sid>.ora中把属于丢失数据文件的回滚段从ROLLBACK_SEGMENTS参数中去掉。如果你不能确信是哪个回滚段,可以简单的把ROLLBACK_SEGMENTS这个参数注释掉。
  3、以restricted模式mount数据库
  STARTUP RESTRICT MOUNT;
  4、Offline drop丢失或损坏的那个数据文件。

ALTER DATABASE DATAFILE ’<full_path_file_name>’ OFFLINE DROP;

 

  5、打开数据库
  ALTER DATABASE OPEN;
  如果返回"Statement processed"这条信息,转到第7步.
  如果得到ORA-604,ORA-376,和ORA-1110错误,转到第6步。
  6、因为打开数据库失败,shutdown掉数据库并且编辑int<SID>.ora这个文件。注释掉ROLLBACK_SEGMENTS这个参数,并且在init<SID>.ora文件中加入如下一行:
  _corrupted_rollback_segments = (<rollback1>,...,<rollbackN> )

  需要注意的是这个参数只能在指定的情况下或在oracle的全球持术支持的指导下才应使用,然后以restricted模式打开数据库:www.xker.com()
  STARTUP RESTRICT
  7、删除掉那个文件所属的回滚段表空间。

DROP TABLESPACE <tablespace name> INCLUDING CONTENTS;


  8、重建回滚段表空间及回滚段,创建完后使它们online.
  9、使数据库所有用户都可用。

ALTER SYSTEM DISABLE RESTRICTED SESSION;


  10、在init<SID>.ora中把你重新创建的回滚段再一次包括进来,如果你使用了第6步则移除掉CORRUPTED_ROLLBACK_SEGMENTS这个参数。
  I.B.数据库不是正常shutdown的
  这种情况,数据库最近一次是用shutdown abort或crashed掉关闭,回滚段中几乎一定包含着活动的事务。因此,坏的那个数据文件不能脱机(offline)或是drop掉,你必需从备份恢复这个文件。如果数据为是处于非归档模式的,只有最近的一些事务日志还没有被重写掉的情况你才能成功恢复这个文件。如果这个文件的备份也是无效的,联系一下oracle的技术支持吧。
  步骤如下:
  1、从备份中恢复丢失的那个数据文件.
  2、mount 上数据库
  3、执行如下的查询:

SELECT FILE#,NAME,STATUS FROM V$DATAFILE;


  如果数据文件的状态是offline的,你必需先把它联机了:

ALTER DATABASE DATAFILE ’<full_path_file_name>’ ONLINE;


  4、执行如下的查询:

SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE# FROM V$LOG V1, V$LOGFILE V2 WHERE V1.GROUP# = V2.GROUP# ;

 

  这将列出所有的联机的重做日志和他们的序号及首次改变号(first change numbers).
  5、如果这个数据库是非归档模式的,执行如下的查询:

SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;


  如果其中的CHANG#比4中的最小的那个FIRST_CHANGE#大的话,用联机日志就可以完成恢复。

本新闻共2页,当前在第1页  1  2  

上一篇教程:windows优化系统后oracle9i本地连接失败
下一篇教程:Oracle SQL性能优化系列讲座
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·比较SQL Server2005和Oracle 10g R2·获取本机上配置好的Oracle服务名
·DB2数据库与Oracle数据库之间远程复制·Oracle数据库的ORA-00257故障解决过程
·Oracle数据的异地自动备份·Oracle SQL性能优化系列讲座
·windows优化系统后oracle9i本地连接失败·Oracle logminer使用方法总结
·oracle监控数据库性能的SQL汇总·Oracle如何精确计算row的大小
·ORACLE碎片整理(2)·ORACLE碎片整理(1)

学院文章搜索
  
推荐文章
·编程过把瘾:自己动手写操
·数据恢复指南 专题
·硬盘“逻辑锁”解决办法
·DOS使用中的常见问题解答
·DOS下常用的相关网络命令
·Win2000优化技巧篇之:硬件
·惊心8小时:破译Windows运行
·菜鸟必备:超实用低级格式
·硬件有价数据无价 硬盘开盘
·国内数据恢复市场内幕揭秘
阅读排行
·免费代理IP(每日更新)
·DB2 9数据库专题
·关于 Apache 的几种常见应
·QQ千人好友浮出水面 会员抢
·站长手册:WIN2003下Web服
·网站投资你和我的20个自身
·140天,从做站起步到日赚1
·Fdisk分区详解
·佳能活动 免费得QQ秀
·DOS下对系统重新进行分区
专题教程
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
·Linux与虚拟化技术
最新文章
·Firefox出现新高危0Day漏洞
·QQ千人好友浮出水面 会员抢
·DOS下对系统重新进行分区
·Fdisk分区详解
·DOS常用命令
·dos如何进行系统配置
·dos慎用命令
·Ver、Vol、Ctty命令使用说
·Tree、Unformat、Vsafe命令
·Setver、Share、Subst命令
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有