报错ORA-19809 ORA-19804

Posted -abm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报错ORA-19809 ORA-19804相关的知识,希望对你有一定的参考价值。

现象

技术分享图片

问题检查

查看群集状态,发现归档挂起

[[email protected] ~]$ srvctl status database -d orcl -v

技术分享图片

查看空间使用情况

#大小查看
SQL> show parameter db_recovery

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +FRA
db_recovery_file_dest_size           big integer 18471M

#占用比查看
SQL> select sum(percent_space_used) from v$flash_recovery_area_usage; SUM(PERCENT_SPACE_USED) ----------------------- 99.88 #asm磁盘查看 SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup; GROUP_NUMBER NAME TOTAL_MB FREE_MB ------------ ------------------------------ ---------- ---------- 1 DATA 20480 7236 2 FRA 20480 1732 3 MGMT 51200 14408 4 OCR 3072 2204

 

结论:

db_recovery_file_dest_size已使用完,flash recovery area闪回恢复区空间满,无法再归档。  

 

 处理

解决办法:
1.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径
2.转移或者删除闪回恢复区里的归档日志。
3.增大闪回恢复区。

 

适合我的方案:在RMAN下删除目标数据库中过期的或是删除指定时间之前的归档日志。

[[email protected] ~]$ rman target /

-- 运行这个命令可以把无效的expired的archivelog标出来。
RMAN> crosscheck archivelog all;

使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=101 实例 = racdb11 设备类型 = DISK
对归档日志的验证成功

...
...
...
对归档日志的验证成功
归档日志文件名 = +FRA/ORCL/ARCHIVELOG/2018_09_10/thread_2_seq_69.291.986488695 RECID=150 STAMP=986488701
对归档日志的验证成功
归档日志文件名 = +FRA/ORCL/ARCHIVELOG/2018_09_10/thread_2_seq_70.289.986488703 RECID=151 STAMP=986488703
已交叉检验的 80 对象

----删除过期的归档日志
RMAN> delete expired archivelog all;

释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=101 实例 = racdb11 设备类型 = DISK
说明与资料档案库中的任何归档日志都不匹配

RMAN> delete archivelog until time "sysdate-10"; --删除10天前的归档日志。或者:delete noprompt archivelog until time "sysdate - 10";
或者:
RMAN> delete archivelog until time "to_date(‘2018-08-01 23:59:59‘,‘yyyy-mm-dd hh24:mi:ss‘)"; --删除指定日期之前的所有归档日志。

 

验证

查看空间使用情况,看到已经恢复正常

SQL> select sum(percent_space_used) from v$flash_recovery_area_usage;

SUM(PERCENT_SPACE_USED)
-----------------------
                  29.31

 

查看数据库状态也恢复到了open

[[email protected] ~]$ srvctl status database -d orcl -v
实例 racdb11 正在节点 jydb1 上运行。实例状态: Open。
实例 racdb12 正在节点 jydb2 上运行。实例状态: Mounted (Closed),Open Initiated。

 

进一步优化策略

指定retention的策略,使得archivelog不至于这样增加

RMAN> configure retention policy to recovery window of 7 days;
旧的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
新的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
已成功存储新的 RMAN 配置参数

 

  

 


---------------------
作者:weixin_40283570
来源:CSDN
原文:https://blog.csdn.net/weixin_40283570/article/details/81533204
版权声明:本文为博主原创文章,转载请附上博文链接!

 

以上是关于报错ORA-19809 ORA-19804的主要内容,如果未能解决你的问题,请参考以下文章

ORA-16038 ORA-19809 ORA-00312

ORA-19809: 超出了恢复文件数的限制

ORA-19809: 超出了恢复文件数的限制故障处理实例

ORA-19809鍜孫RA-00312

Oracle - ORA-19809: 超出了恢复文件数的限制

ORA-01618 ORA-19809: limit exceeded for recovery files