知识大全 Oracle回滚表空间丢失或损坏处理方法(1)

Posted 数据库

篇首语:黄沙百战穿金甲,不破楼兰终不还。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle回滚表空间丢失或损坏处理方法(1)相关的知识,希望对你有一定的参考价值。

Oracle回滚表空间丢失或损坏处理方法(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   问题描述 这是一个回滚段表空间数据文件丢失或损坏的情景 这时 oracle 不能识别相应的数据文件 当你试图 startup 数据文件时会报 ORA ORA 并且可能会伴随着标识操作系统级别的错误 比如 ORA 当你试图以 shutdown normal 或 shutdown immediate 模式关闭数据库时会导至 ORA ORA 并可能伴随标识操作系统级别的错误 比如 ORA 有时以正常方式 shutdown 数据库根本 shutdown 不下来 警告 文章中所提及的步骤是供 oracle的全球技术支持使用的 特别是步骤 中的_corrupted_rollback_segments参数 使用后需要重建数据库 在使用这个参前请观察一下所有其它的选项 解决方法解释 如下的解决方法取于检测问题出现时数据库所处于状态 : I 数据库是处于关闭状态的 试图打开数据库时报 ORA 和 ORA 错误 这时的解决方法取于数据库是否是正常 shutdown 的 ( 使用 normal 或 immediate 选项 I A 数据库是正常 shutdown 的 如果数据数据库是正常 shutdown 的 最简单的解决方法是以 offline drop 选项删除丢失或损坏的数据文件 以 restriceted 模式打个数据库 删除并重建这个数据文件所属的那个回滚表空间 如果数据库是以 shutdown abort 或自己崩溃掉的则不要遵循这个过程 步骤如下 确认数据库是正常 shutdown 的 可以检查 alter log 这个文件 定位到最后几行看是否可以看到如下的信息 alter database dismount Completed: alter database dismount 这当然也包括以正常方式 shutdown 接然试图启动数据库确失败的状况 如果最近一次你是以 shutdown abort 方式关闭数据库的或数据库是自己 crashed 掉的 你应用使用下面的 I B 的方法 在 init ora 中把属于丢失数据文件的回滚段从 ROLLBACK_SEGMENTS 参数中去掉 如果你不能确信是哪个回滚段 可以简单的把 ROLLBACK_SEGMENTS 这个参数注释掉 以 restricted 模式 mount 数据库 STARTUP RESTRICT MOUNT; Offline drop 丢失或损坏的那个数据文件 ALTER DATABASE DATAFILE OFFLINE DROP; 打开数据库 ALTER DATABASE OPEN 如果返回 Statement processed 这条信息 转到第 步 如果得到 ORA ORA 和 ORA 错误 转到第 步 因为打开数据库失败 shutdown 掉数据库并且编辑 int ora 这个文件 注释掉 ROLLBACK_SEGMENTS 这个参数 并且在 init ora 文件中加入如下一行 _corrupted_rollback_segments = ( ) 这个参数应当包含 ROLLBACK_SEGMENTS 中所有的回滚段 需要注意的是这个参数只能在指定的情况下或在 oracle 的全球持术支持的指导下才应使用 然后以 restricted 模式打开数据库 STARTUP RESTRICT 删除掉那个文件所属的回滚段表空间 DROP TABLESPACE INCLUDING CONTENTS; 重建回滚段表空间及回滚段 创建完后使它们 online 使数据库所有用户都可用 ALTER SYSTEM DISABLE RESTRICTED SESSION; 在 init ora 中把你重新创建的回滚段再一次包括进来 如果你使用了第 步则移除掉 CORRUPTED_ROLLBACK_SEGMENTS 这个参数 I B 数据库不是正常 shutdown 的 这种情况 数据库最近一次是用 shutdown abort 或 crashed 掉关闭 回滚段中几乎一定包含着活动的事务 因此 坏的那个数据文件不能脱机 (offline) 或是 drop 掉 你必需从备份恢复这个文件 如果数据为是处于非归档模式的 只有最近的一些事务日志还没有被重写掉的情况你才能成功恢复这个文件 如果这个文件的备份也是无效的 联系一下 oracle 的技术支持吧 步骤如下 从备份中恢复丢失的那个数据文件 mount 上数据库 执行如下的查询 SELECT FILE# NAME STATUS FROM V$DATAFILE; 如果数据文件的状态是 offline 的 你必需先把它联机了 ALTER DATABASE DATAFILE ONLINE; 执行如下的查询 SELECT V GROUP# MEMBER SEQUENCE# FIRST_CHANGE# FROM V$LOG V V$LOGFILE V WHERE V GROUP# = V GROUP# ; 这将列出所有的联机的重做日志和他们的序号及首次改变号 (first change numbers) 如果这个数据库是非归档模式的 执行如下的查询 SELECT FILE# CHANGE# FROM V$RECOVER_FILE; 如果其中的 CHANG# 比 中的最小的那个 FIRST_CHANGE# 大的话 用联机日志就可以完成恢复 如果 CHANG# 比 中的最小的那个 FIRST_CHANGE# 小 则数据库是不能恢复的 可以联系一下 oracle 的技术支持 译者插入 如果你真是非归档方式且这个文件的备份也是无效的 如果你认为可以丢失回滚段中的那事务 你可以用 I A中从第 步的方法 这时可以打开数据库 应立即做一个备份 因为库中的数据有些不一致 RECOVER DATAFILE 确认所有的日志都被恢复 只到你收到 Media recovery plete 信息 打开数据库 cha138/Article/program/Oracle/201311/18704

相关参考

知识大全 Oracle回滚段空间回收步骤

Oracle回滚段空间回收步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  是谁偷偷的用了那么

知识大全 Oracle重做日志文件损坏或丢失后的恢复

Oracle重做日志文件损坏或丢失后的恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很多网

知识大全 Oracle回滚段管理

Oracle回滚段管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  回滚段管理一直是ORACL

知识大全 Oracle回滚段学习

Oracle回滚段学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文详细介绍了Oracle

知识大全 Oracle重做日志丢失的故障处理

Oracle重做日志丢失的故障处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle重

知识大全 Oracle中为什么会产生回滚与前退

Oracle中为什么会产生回滚与前退  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

事故股票的处理方法

事故股票的处理方法股票在被盗,丢失,损坏时,一经发现,应立即报告发行公司,或通过公证部门声明。一般情况下,对于记名股票,发行公司经确认,会及时补发给股东所丢失或损坏的股票,但对于不记名股票,则不予补偿

知识大全 Oracle回滚段的概念,用法和规划及问题的解决

Oracle回滚段的概念,用法和规划及问题的解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 回滚段问题

  回滚段管理一直是ORACLE数据库管理的一个难题本文通过实例介绍ORACLE回滚段的概念用法和规划及问题的解决      回滚段概述      回滚段用于存放数据修改之前的值(包括数据修改之前的位

知识大全 Oracle数据库中事物与回滚的一点研究

Oracle数据库中事物与回滚的一点研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Ora