数据库不能打开,没有备份处理方法之一强行打开

 由于企业的数据库人员经验不足,或是根本没有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

此时只有把redoscn一直往前追赶

两种办法:

 如果差别少,那么添加上边两个隐含参数,然后重复去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';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值