今日接到同事的一个问题,
数据库在startup的时候报:
ora-16038:日志1序列号1588无法归档
ora-19809:超出了恢复文件数的限制
ora-00312联机日志1线程1:'Z:\ORADATA\JLMHKCZDB\REDO01.LOG'
环境是双机热备、oracle10g
查了一下资料,发现这个问题的主要原因是因为闪回区空间不够了。oracle10g在默认情况下,归档日志是保存在闪回恢复区的,如果你建库的时候用的默认设置,闪回恢复区应该是2G,空间被占满了以后就无法再归档了。
1.将归档设置到其他目录,修改alter system set log_archive_dest =
其他路径
2.转移或者删除闪回恢复区里的归档日志。
3.增大闪回恢复区。ALTER SYSTEM SET
db_recovery_file_dest_size=3g
4.另外,如果要撤销闪回恢复区,把初始化参数 DB_RECOVERY_FILE_DEST 的值清空即可
先做准备工作,首先
备份初始化文件:
create pfile='d:\initmhk.ora' from spfile;
然后将数据库文件通过拷贝至另外一个目录。
然后开始进行修改。
因为那边是生产环境,在确保环境不发生意外的情况下,选择暂时增加闪回区,那边闪回区目前是64g,改为65g
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> shutdown immediate;
ORA-01012: not logged on
SQL> create pfile='initmhk.ora' from spfile;
文件已创建。
SQL> create pfile='d:\initmhk.ora' from spfile;
文件已创建。
SQL> show parameter recov
ORA-01034: ORACLE not available
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter recov
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.1.0\flash
_recovery_area
db_recovery_file_dest_size big integer 3G
recovery_parallelism integer 0
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
SQL> ALTER SYSTEM SET db_recovery_file_dest_size=65g;
系统已更改。
SQL> alter database open;
数据库已更改。
SQL> select reason,object_type,suggested_action from dba_outstanding_alerts;
未选定行
SQL>