数据库不能打开,没有备份处理方法之一强行打开
2017-06-10 09:50
204 查看
由于企业的数据库人员经验不足,或是根本没有dba,因此,可能会出现数据瘫痪,数据库不能打开但是又没有备份的现象,那么我们可能有两种方法:
a,数据库强行打开;
b,使用oracle dul工具来把数据抽取出来
这篇文章简述一下如果数据库不能打开强行打开的方法
1 .把init文件中的:
undo_management=manual
3、在init.ora中加入如下参数
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
可以先尝试使用_offline_rollback_segments=true,因为这个不会破坏回滚段。
如果不行再使用_corrupted_rollback_segments
4.然后启动数据库到mount状态
recover database until cancel
5.alter database open resetlogs;
由于数据库是不一致方式打开,因此,打开后把数据库的数据使用exp或是expdp导出来,然后重新创建数据库,然后导入数据
在打开的时候可能会报ora-600[2662]错误,那么需要如下办法处理
ORA-600 [2662]"Block SCN is ahead of Current SCN",说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的dependent
SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。这个错误一共有五个参数,分别代表不同的含义,
ORA-600 [2662] [a][b] [c] [d] [e]
Arg [a] Current SCNWRAP
Arg [b] Current SCNBASE
Arg [c] dependentSCN WRAP
Arg [d] dependentSCN BASE
Arg [e] Where present this is theDBA where the dependent SCN came from.
ORA-00600: internal error code, arguments: [2662], [0], [431267936], [0], [431273216],
[0], [], []
说明数据文件的scn高于redoscn
此时只有把redo的scn一直往前追赶
两种办法:
如果差别少,那么添加上边两个隐含参数,然后重复去open resetlogs,如下:
A.添加参数
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
B回复数据库
Sql>recoverdatabase until cancel using backup controlfile ;
Cancel
A. 打开数据库
Sql>alterdatabase open resetlogs;
尝试多次,直到打开为止
如果差别多,通过添加adjust_scn来打开,如下:
Oracle 10g以后,需要增加此参数
*._allow_error_simulation=true
如果数据库mount状态下做:
alter session set events '10015 trace nameadjust_scn level 1';
如果数据库打开:
alter session set events'IMMEDIATE trace name ADJUST_SCN level 1';
a,数据库强行打开;
b,使用oracle dul工具来把数据抽取出来
这篇文章简述一下如果数据库不能打开强行打开的方法
1 .把init文件中的:
undo_management=manual
3、在init.ora中加入如下参数
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
可以先尝试使用_offline_rollback_segments=true,因为这个不会破坏回滚段。
如果不行再使用_corrupted_rollback_segments
4.然后启动数据库到mount状态
recover database until cancel
5.alter database open resetlogs;
由于数据库是不一致方式打开,因此,打开后把数据库的数据使用exp或是expdp导出来,然后重新创建数据库,然后导入数据
在打开的时候可能会报ora-600[2662]错误,那么需要如下办法处理
ORA-600 [2662]"Block SCN is ahead of Current SCN",说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的dependent
SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。这个错误一共有五个参数,分别代表不同的含义,
ORA-600 [2662] [a][b] [c] [d] [e]
Arg [a] Current SCNWRAP
Arg [b] Current SCNBASE
Arg [c] dependentSCN WRAP
Arg [d] dependentSCN BASE
Arg [e] Where present this is theDBA where the dependent SCN came from.
ORA-00600: internal error code, arguments: [2662], [0], [431267936], [0], [431273216],
[0], [], []
说明数据文件的scn高于redoscn
此时只有把redo的scn一直往前追赶
两种办法:
如果差别少,那么添加上边两个隐含参数,然后重复去open resetlogs,如下:
A.添加参数
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
B回复数据库
Sql>recoverdatabase until cancel using backup controlfile ;
Cancel
A. 打开数据库
Sql>alterdatabase open resetlogs;
尝试多次,直到打开为止
如果差别多,通过添加adjust_scn来打开,如下:
Oracle 10g以后,需要增加此参数
*._allow_error_simulation=true
如果数据库mount状态下做:
alter session set events '10015 trace nameadjust_scn level 1';
如果数据库打开:
alter session set events'IMMEDIATE trace name ADJUST_SCN level 1';
相关文章推荐
- 数据库没有备份无法打开处理方法之二dul
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- sybase备份服务(backup server)不能启动的处理方法
- 关于硬盘盘符不能双击打开的处理方法
- sysaux在没有备份的情况下,数据块损坏,数据库启动不了处理
- IE不能打开新窗口的链接的处理方法
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
- matlab2016b-linux版本在ubutu16.04x64上面不能打开摄像头的处理方法
- access不能打开注册表关键字错误处理方法(80004005错误)
- mysqldump备份、还原数据库路径名含有空格的处理方法(如:Program Files)
- sql2005还原备份后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
- 不能打开数据库的一次处理 ORA-01092: ORACLE instance terminated. Disconnection forced
- asp 常见错误 不能打开注册表关键字 的处理方法
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
- 双击盘符不能打开的处理方法
- sql server 2000 MMC不能打开的处理方法
- asp 常见错误 不能打开注册表关键字 的处理方法
- 数据库查回来数据封装成Javabean再转json(有Date类型不能转json处理方法)
- Flash Recovery Area空间不足导致DB不能打开或hang住处理方法
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)