{解析如何在没有备份的情况下执行撤消损害
1。手动修改撤消表空间管理;
2、设置隐藏的参数(_offline_rollback_segments或_corrupted_rollback_segments)确定受影响的回滚段,这样甲骨文忽略了未提交的事务上。
三.手动删除受影响的回滚段并撤消表空间,然后重建新的撤消表空间;
4。还原撤消表空间管理是自动的。
实验如下:
步骤1。
如果撤消数据文件已损坏,则数据库只能进入挂载状态,并且在打开时出现以下错误。
ora-01157:无法识别/锁定数据文件看到DBWR跟踪文件14
ora-01110:数据文件14:我: undo1 intel_data o06dms0 o06dms0。
它显示撤消文件已损坏或丢失,并且文件可以在文件脱机后打开:
警告:更改数据库datafile'i: undo1 intel_data o06dms0 o06dms0'offline滴;
打开数据库;
打开数据库的目的是查找受影响的回滚段:
SQL >选择segment_name,状态从dba_rollback_segs;
segment_name状态
----------------------------------------------
系统在线
_syssmu10_1201331463离线美元
_syssmu9_2926456744离线美元
_syssmu8_640224757离线美元
_syssmu7_3984293596离线美元
_syssmu6_3694658906离线美元
_syssmu5_3475919656离线美元
_syssmu4_168502732离线美元
_syssmu3_1987193959离线美元
_syssmu2_3908286755离线美元
_syssmu1_3281912951离线美元
显示参数撤消
名称类型值
------------------------------------------------------------
undo_management字符串自动
undo_retention整数900
undo_tablespace字符串undo1
关闭数据库:
立即关闭;
步骤2。
创建一个临时的pfile:
SQL >创建pfile = H: inito06dms0 ora'from数据库;
修改pfile如下:
*。undo_management =手动的撤销表空间管理方式改为手动
*。undo_tablespace = 'undo2指定一个新的撤销表空间
*。_offline_rollback_segments =('_syssmu10_1201331463 $,$ '_syssmu9_2926456744,'_syssmu8_640224757 $,$ '_syssmu7_3984293596,'_syssmu6_3694658906 $,$ '_syssmu5_3475919656,'_syssmu4_168502732 $,$ '_syssmu3_1987193959,'_syssmu2_3908286755 $,$ '_syssmu1_3281912951)-所有受影响的回滚段来了
并通过改变pfile启动数据库:
SQL >启动pfile = H: inito06dms0口。
步骤3。
手动删除受影响的回滚段:
SQL >回滚段_syssmu10_1201331463 $ ;
SQL >回滚段_syssmu9_2926456744 $ ;
SQL >回滚段_syssmu8_640224757 $ ;
SQL >回滚段_syssmu7_3984293596 $ ;
SQL >回滚段_syssmu6_3694658906 $ ;
SQL >回滚段_syssmu5_3475919656 $ ;
SQL >回滚段_syssmu4_168502732 $ ;
SQL >回滚段_syssmu3_1987193959 $ ;
SQL >回滚段_syssmu2_3908286755 $ ;
SQL >回滚段_syssmu1_3281912951 $ ;
手动删除旧的撤消表空间:
SQL >删除表空间undo1包括的内容;
重建新的撤销表空间:
SQL >创建撤销表空间undo2 datafile'i: undo2 intel_data o06dms0 o06dms0'size 100m;
创建覆盖旧为新数据库:
SQL >创建pfile = H为: inito06dms0口;
关闭数据库:
立即关闭;
步骤4。
启动数据库与原始数据库:
启动>;
还原撤消表空间管理是自动的:
SQL >修改系统设置为'auto'scope undo_management = =;
取消隐藏参数的设置:
警告:改变系统复位_offline_rollback_segments范围= SPFILE;
重新启动生效:
立即关闭;
已启动
显示参数撤消
名称类型值
------------------------------------------------------------------
undo_management字符串自动
undo_retention整数900
undo_tablespace字符串undo2
最后,退房。
SQL >选择segment_name,状态从dba_rollback_segs;
segment_name状态
----------------------------------------------
系统在线
_syssmu40_1968985325 $在线
_syssmu39_4040503138 $在线
_syssmu38_4059847715 $在线
_syssmu37_2692202156 $在线
_syssmu36_2617425201 $在线
_syssmu35_1133967719 $在线
_syssmu34_1916939664 $在线
_syssmu33_99444166 $在线
_syssmu32_162619813 $在线
_syssmu31_830375278 $在线