知识大全 Oracle] 解析在没有备份的情况下undo损坏怎么办
Posted 空间
篇首语:人生必须的知识就是引人向光明方面的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle] 解析在没有备份的情况下undo损坏怎么办相关的知识,希望对你有一定的参考价值。
Oracle] 解析在没有备份的情况下undo损坏怎么办 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Oracle在运行中很不幸遇到undo损坏 当然最好的方法是完全恢复 但如果是在没有备份的情况下undo损坏怎么办?以下就为大家介绍出现这种情况的解决办法 需要的朋友参考下如果Oracle在运行中很不幸遇到undo损坏 当然最好的方法是完全恢复 不过如果没有备份 可以采用一种非常规的手段(利用Oracle的隐藏参数) 如果此时undo包含未提交的事务 会造成一点点的数据丢失(一般都是可忍受的) 如果没有未提交的事务 则不会有数据丢失 其主要步骤有
修改undo表空间管理为手动 设置隐藏参数(_offline_rollback_segments或_corrupted_rollback_segments)标识受影响的回滚段 使Oracle忽略其上的未提交事务 手动删除受影响的回滚段和undo表空间 然后重建新的undo表空间 还原undo表空间管理为自动
实验如下 Step 如果undo数据文件损坏 数据库只能到mount状态 open时会出现以下错误 ORA : cannot identify/lock data file see DBWR trace file ORA : data file : I:INTEL_DATAO DMS UNDO O DMS 说明该undo文件已经损坏或丢失 把该文件offline之后就可以打开数据库了 SQL> alter database datafile I:INTEL_DATAO DMS UNDO O DMS offline drop; SQL> alter database open; 打开数据库的目的是为了找出受影响的回滚段 SQL> select segment_name status from dba_rollback_segs; SEGMENT_NAME STATUS SYSTEM ONLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE _SYSSMU _ $ OFFLINE
SQL> show parameter undo
NAME TYPE VALUE undo_management string AUTO undo_retention integer undo_tablespace string undo 关闭数据库 SQL> shutdown immediate;
Step 创建一个临时的pfile SQL> create pfile= H:initO DMS ora from spfile; 修改pfile如下 * undo_management= manual undo表空间管理方式修改为手动 * undo_tablespace= undo 指定一个新的undo表空间 * _offline_rollback_segments=( _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ _SYSSMU _ $ ) 把所有受影响的回滚段都列在这里 并以改pfile重新启动数据库 SQL> startup pfile= H:initO DMS ora
Step 手动删除受影响的回滚段 SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; SQL>drop rollback segment "_SYSSMU _ $"; 手动删除旧的undo表空间 SQL> drop tablespace undo including contents; 重建新的undo表空间 SQL> create undo tablespace undo datafile I:INTEL_DATAO DMS UNDO O DMS size m; 创建新的spfile 覆蓋旧的spfile SQL> create spfile from pfile= H:initO DMS ora ; 关闭数据库 SQL> shutdown immediate;
Step 以原来的spfile启动数据库 SQL> startup; 还原undo表空间管理为自动 SQL> alter system set undo_management= auto scope=spfile; 取消隐藏参数的设置 SQL> alter system reset "_offline_rollback_segments" scope=spfile; 重启使其生效 SQL> shutdown immediate; SQL> startup SQL> show parameter undo
NAME TYPE VALUE undo_management string AUTO undo_retention integer undo_tablespace string undo
最终检查一下 SQL> select segment_name status from dba_rollback_segs;
cha138/Article/program/Oracle/201311/19061相关参考
Oracle的redo和undo的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! redo&
Oracle释放过度使用的Undo表空间 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 故障现象
有关Oracle数据库的备份情况 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一意义当我们使用
解决Oracle下的undo空间过大的问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi
Oracle生产环境下的备份方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设置数据库自动备
WIN2000下ORACLE计划任务自动备份方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 oracle数据库备份与恢复apieceofcake(4)
oracle数据库日志备份(windows平台) 本片是接上次的数据库在线备份进行数据库全备份后需要备份归档的日志文件 建立数据库备份的脚本 在上面建立的目录下建立如下的两个脚本 建立执行
Oracle的差异增量备份和累积增量备份 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在rma
在计算机控制系统()前、后情况下,应及时进行计算机软件或数据的备份。
在计算机控制系统()前、后情况下,应及时进行计算机软件或数据的备份。A、检修B、长期停运C、软件或组态修改D、升级参考答案:ACD
在计算机控制系统()前、后情况下,应及时进行计算机软件或数据的备份。
在计算机控制系统()前、后情况下,应及时进行计算机软件或数据的备份。A、检修B、长期停运C、软件或组态修改D、升级参考答案:ACD