概述
使用_allow_resetlogs_corruption打开无归档日志rman备份库,
运维DBA反映服务器宕机后,开启数据库报错ORA-01194 ORA-01110,分析原因为Oracle SCN不一致导致数据库无法启动,使用_allow_resetlogs_corruption打开数据库
1.rman还原恢复操作
--还原数据库
RMAN> restore database;
--恢复数据库
RMAN> recover database;
Starting recover at 2012-03-08 21:20:45
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=65 device type=DISK
starting media recovery
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 03/08/2012 21:20:47
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 with sequence 2936 and starting SCN of 25991695 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 2935 and starting SCN of 25991652 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 2934 and starting SCN of 25991649 found to restore
……………………
RMAN-06025: no backup of archived log for thread 1 with sequence 2902 and starting SCN of 25991156 found to restore
这里报日志缺少,实际上是备份的数据库文件后,没有备份归档日志,归档日志全部丢失
进行不完全恢复
SQL> recover database until cancel; ORA-00279: change 25991194 generated at 03/08/2012 20:33:58 needed for thread 1 ORA-00289: suggestion : /opt/oracle/oradata/archivelog/chf/1_2902_752334071.dbf ORA-00280: change 25991194 for thread 1 is in sequence #2902 Specify log: {
=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf'
2.查看相关SCN
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile;
FILE# TO_CHAR(CHECK
---------- -------------
1 25992214
2 25992214
3 25992214
4 25992214
5 25992214
6 25992214
7 25992214
8 25992214
9 25992214
10 25992214
11 25992214
FILE# TO_CHAR(CHECK
---------- -------------
13 25992214
14 25992214
13 rows selected.
SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file;
FILE# ONLINE_ TO_CHAR(CHANG
---------- ------- -------------
1 ONLINE 25991194
2 ONLINE 25991194
3 ONLINE 25991194
4 ONLINE 25991194
5 ONLINE 25991194
6 ONLINE 25991194
7 ONLINE 25991194
8 ONLINE 25991194
9 ONLINE 25991194
10 ONLINE 25991194
11 ONLINE 25991194
FILE# ONLINE_ TO_CHAR(CHANG
---------- ------- -------------
13 ONLINE 25991194
14 ONLINE 25991194
13 rows selected.
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header;
FILE# TO_CHAR(CHECK
---------- -------------
1 25991194
2 25991194
3 25991194
4 25991194
5 25991194
6 25991194
7 25991194
8 25991194
9 25991194
10 25991194
11 25991194
FILE# TO_CHAR(CHECK
---------- -------------
13 25991194
14 25991194
13 rows selected.--发现数据文件scn和控制文件不一致,重建控制文件,然后查询相关scnSQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile;
FILE# TO_CHAR(CHECK
---------- -------------
1 25991194
2 25991194
3 25991194
4 25991194
5 25991194
6 25991194
7 25991194
8 25991194
9 25991194
10 25991194
11 25991194
FILE# TO_CHAR(CHECK
---------- -------------
13 25991194
14 25991194
13 rows selected.
SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file;
FILE# ONLINE_ TO_CHAR(CHANG
---------- ------- -------------
1 ONLINE 25991194
2 ONLINE 25991194
3 ONLINE 25991194
4 ONLINE 25991194
5 ONLINE 25991194
6 ONLINE 25991194
7 ONLINE 25991194
8 ONLINE 25991194
9 ONLINE 25991194
10 ONLINE 25991194
11 ONLINE 25991194
FILE# ONLINE_ TO_CHAR(CHANG
---------- ------- -------------
13 ONLINE 25991194
14 ONLINE 25991194
13 rows selected.
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header;
FILE# TO_CHAR(CHECK
---------- -------------
1 25991194
2 25991194
3 25991194
4 25991194
5 25991194
6 25991194
7 25991194
8 25991194
9 25991194
10 25991194
11 25991194
FILE# TO_CHAR(CHECK
---------- -------------
13 25991194
14 25991194
13 rows selected.
--此时所有scn均一致
3.尝试打开数据库
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' SQL> recover database using backup controlfile until cancel; ORA-00279: change 25991194 generated at 03/08/2012 20:33:58 needed for thread 1 ORA-00289: suggestion : /opt/oracle/oradata/archivelog/chf/1_2902_752334071.dbf ORA-00280: change 25991194 for thread 1 is in sequence #2902 Specify log: {
=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf'
5.使用隐含参数打开数据库
SQL> create pfile='/tmp/pfile' from spfile;
File created.
-------/tmp/pfile中加上----------
_allow_resetlogs_corruption= TRUE
---------------------------------
SQL> startup mount pfile='/tmp/pfile' force
ORACLE instance started.
Total System Global Area 622149632 bytes
Fixed Size 2230912 bytes
Variable Size 419431808 bytes
Database Buffers 192937984 bytes
Redo Buffers 7548928 bytes
Database mounted.
SQL> alter database open resetlogs;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
总结
这次的试验没有多少实际意义,但是可以说明几个问题:
1.所有的数据文件的scn都一致,甚至和控制文件的也一致,数据库不一定可以open成功
(怀疑是数据文件中的scn大于data header scn)
2.对于这样的问题,如果使用bbed修改所有数据文件header的scn不知道是否可以解决
3.如果rman只备份了数据文件而没有任何一个归档日志,数据库通过隐含参数还是可以open,抢救数据
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【案例】Oracle报错ORA-01194 ORA-01110 由于数据库SCN不一致导致无法启动
本文由大师惜分飞原创分享,网址:
最后
以上就是含蓄音响为你收集整理的oracle报错30001,【案例】Oracle报错ORA-01194 ORA-01110 由于数据库SCN不一致导致无法启动...的全部内容,希望文章能够帮你解决oracle报错30001,【案例】Oracle报错ORA-01194 ORA-01110 由于数据库SCN不一致导致无法启动...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复