ITPub博客

首页 > 数据库 > Oracle > ORA-16038,日志 X 序列号 XXX 无法归档,数据库启动失败故障解决一例

ORA-16038,日志 X 序列号 XXX 无法归档,数据库启动失败故障解决一例

原创 Oracle 作者:djb1008 时间:2012-02-17 09:53:00 0 删除 编辑
今天上班后,启动本人笔记本上的数据库,居然报错起不来;忙活了5分钟,搞定了,下面给出问题解决的步骤,供大家批评指正.
C:UsersAdministrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 2月 17 09:06:41 2012
Copyright (c) 1982, 2006, Oracle.?All Rights Reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area?612368384 bytes
Fixed Size 1292036 bytes
Variable Size 331352316 bytes
Database Buffers 272629760 bytes
Redo Buffers 7094272 bytes
数据库装载完毕。
ORA-16038: 日志 2 序列号 584 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 2 线程 1: 'Y:ORACLEORADATAAIDUREDO02.LOG'
[@more@]

检查是否是归档模式

SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 584
下一个存档日志序列 584
当前日志序列 586

检查归档日志的归档情况

SQL> select name ,recid from v$archived_log;
NAME RECID
---------- ......
C:ORACLEO1_MF_1_581_7JJ3P401_.ARC 44
C:ORACLEO1_MF_1_582_7MJRMVWX_.ARC 45
C:ORACLEO1_MF_1_583_7MK5MJCK_.ARC 46
已选择46行。

检查redo文件的状态,发现redo2的状态为inactive,放心了不少.

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME

---------- ---------- ---------- ---------- ---------- --- ----------------------------- -------------------
1 1 586 52428800 1 NO CURRENT 29058619 2012-02-15 14:17:02
3 1 585 52428800 1 NO INACTIVE 29013803 2012-02-14 13:07:46
2 1 584 52428800 1 NO INACTIVE 28967584 2012-02-13 12:49:52

开始检查相关的SCN,看是否一致,最后发现db的scn等于file的scn

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
29121580
SQL> select name,file#,checkpoint_change# from v$datafile
NAME FILE# CHECKPOINT_CHANGE#
--------------------------------------------- ---------- ------------------
1 29121580
2 29121580
3 29121580
4 29121580
5 29121580
......
18 29121580

已选择17行。

检查redo的scn,发现数据库不需要介质恢复

SQL> select sequence#,status,first_change# from v$log;

SEQUENCE# STATUS FIRST_CHANGE#
---------- ---------------- -------------
586 CURRENT 29058619
585 INACTIVE 29013803
584 INACTIVE 28967584

得出结论:数据库的归档出现了问题,着手检查archive的设置

SQL> show parameter archi
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_state_1 string enable
…...
log_archive_duplex_dest string
log_archive_format string ARC%S_%R.%T

设置归档日志的路径,重新启动数据库,启动成功.

SQL> alter system set log_archive_dest_1='LOCATION=c:oracle' scope=spfile;
系统已更改。

SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。


SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1292036 bytes
Variable Size 339740924 bytes
Database Buffers 264241152 bytes
Redo Buffers 7094272 bytes
数据库装载完毕。
数据库已经打开。

数据库可以正常打开后,检查归档日志的归档情况

SQL>select * from v$log;

RECID NAME SEQUENCE# FIRST_CHANGE#
---- ----------------------------- -------------------- ----------------
......
46 583 28929595
47 584 28967584
48 585 29013803
49 586 29058619

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1057382/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: undo表空间释放
请登录后发表评论 登录
全部评论

注册时间:2010-07-27

  • 博文量
    175
  • 访问量
    778868