oracle归档日志超出了恢复闪回恢复区(flash_recovery_area)限制的解决方法
来源:互联网 发布:人民邮电 算法谜题 编辑:程序博客网 时间:2024/04/27 21:15
一、问题描述:
系统报告以下错误:
ORA-16038: 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志
二、问题分析:
系统启用归档日志时,oracle会按照一定的时间间隔在闪回恢复区产生大量的归档日志文件。利用这些文件可在数据库失败时将数据库恢复到任何时刻。
(原因一)归档日志是保存在闪回恢复区(/oracle/app/flash_recovery_area/ORCL/archivelog)的,闪回恢复区默认一般是4G,归档日志文件超过4G后归档便无法成功,同时数据库访问和各种操作都会失败。
(原因二)归档日志未超过闪回恢复区的设置,但是磁盘空间不足(通常情况下是闪回恢复区的设置比磁盘剩余空间大引起的),也会发生以上错误
三、解决方法:
通过一下三种方式可以解决上述问题,但尽可能在操作前完整备份数据库。
(方式一)关闭归档日志功能,同时删除归档日志文件。删除日志前必须备份数据库。
关闭归档日志功能:
sql> archive log list; //查看是否是归档方式
sql> alter system set log_archive_start=falsescope=spfile; //禁用自动归档
sql> shutdown immediate;
sql> startup mount; //打开控制文件,不打开数据文件
sql> alter database noarchivelog; //将数据库切换为非归档模式
sql> alter database open; //将数据文件打开
sql> archive log list; //查看此时便处于非归档模式
sql>select *from v$log;查看归档文件组的列表
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- -------------------- ---------- ---------- ---------- --- ---------------- ---------------------- ------------ ---------
1 1 13516 52428800 512 1 NO INACTIVE 36395288707-NOV-12 363981839 07-NOV-12
2 1 13515 52428800 512 1 NO INACTIVE 36388722707-NOV-12 363952887 07-NOV-12
3 1 13517 52428800 512 1 NO CURRENT 36398183907-NOV-12 2.8147E+14
sql>alter database clear unarchived logfile group 1;
sql>alterdatabase clear unarchived logfile group 2;
sql>alterdatabase clear unarchived logfile group 3;
sql>shutdownimmediate;
sql>startupopen;
(方式二)增大闪回恢复区的设置。
$ sqlplus/ as sysdba
sql>showparameter db_recovery_file_dest;
sql>shutdown immediate
sql>startup mount
sql>alter system set db_recovery_file_dest_size=20g scope=both;
sql>shutdown immediate
sql>startup
sql>quit
(方式三)增大磁盘空间
删除或移除不需要的文件,或增加该磁盘的空间。
四、参考资料:
(一)打开归档日志:
sql>archive log list; //查看是不是归档方式
sql> alter system set log_archive_start=true scope=spfile; //启用主动归档
sql> shutdown immediate;
sql> startup mount; //打开控制文件,不打开数据文件
sql> alter database archivelog; //将数据库切换为归档模式
sql> alter database open; //将数据文件打开
sql> archive log list; #查看此时是否处于归档模式
查询以确定数据库位于archivelog模式中且归档过程正在运行
sql> select log_mode from v$database;
sql> select archiver from v$instance;
(二)归档相关命令
archive log stop;
archive log start;
archive log list;
show parameters;
show parameters log_archive_start;
show parameters log_archive_max_process; #归档进程数
alter system set log_archive_max_process=3; #将归档进程数改为3
select * from v$bgprocess; #检查后台进程
- oracle归档日志超出了恢复闪回恢复区(flash_recovery_area)限制的解决方法
- 数据库日志无法归档,超出了恢复文件数的限制解决方案
- 超出了恢复文件数的限制
- oracle initialization or shutdown in progress与ORA-16038: 日志 5 序列号 126 无法归档 ORA-19809: 超出了恢复文件数的限
- ORA-19809:超出了恢复文件的限制
- ORA-19809 超出了恢复文件数的限制
- ORA-19809 超出了恢复文件数的限制
- ORA-19809: 超出了恢复文件数的限制
- ORA-19809: 超出了恢复文件数的限制
- ORA-19809: 超出了恢复文件数的限制
- ORA-19809: 超出了恢复文件数的限制
- ORA-19809: 超出了恢复文件数的限制解决
- oracle物理体系结构-----归档重做日志和闪回恢复区
- Oracle恢复(二)------非归档模式下的恢复
- Oracle丢失归档日志文件的数据库恢复方法
- oracle归档日志进行数据实例恢复
- oracle 闪回恢复区、archive归档 问题
- 备份基础相关-042】【查看当前是归档还是非归档模式】【非归档模式切换到归档模式】【是否使用闪回恢复区修改归档日志格式】【修改归档日志使用闪回恢复区】
- Excel导出 被呼叫方拒绝接收呼叫。异常来自HRESULT:0x80010001(RPC_E_CALL_REJECTED)
- 很好的讲解螺旋队列问题
- Python version 2.7 required, which was not found in the registry
- shell编程学习之道:shell按行读取文件的方法
- Android移动view动画问题
- oracle归档日志超出了恢复闪回恢复区(flash_recovery_area)限制的解决方法
- 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)
- python python-eggs 异常解决方法
- 成功人士永不会做的一件事
- 调用堆栈恢复实操
- atoi, _atoi_l, _wtoi, _wtoi_l
- 迪杰斯特拉算法秒杀单源最短路径!!!
- httpclient双向认证
- 关于工作中遇到的诡异之事