zoukankan      html  css  js  c++  java
  • 报错ORA-19809 ORA-19804

    现象

    问题检查

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

    [oracle@jydb1 ~]$ 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下删除目标数据库中过期的或是删除指定时间之前的归档日志。

    [oracle@jydb1 ~]$ 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

    [oracle@jydb1 ~]$ 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    取得窗口大小和窗口位置兼容所有浏览器的js代码
    一个简单易用的导出Excel类
    如何快速启动chrome插件
    网页表单设计案例
    Ubuntu下的打包解包
    The source file is different from when the module was built. Would you like the debugger to use it anyway?
    FFisher分布
    kalman filter
    Group delay Matlab simulate
    24位位图格式解析
  • 原文地址:https://www.cnblogs.com/-abm/p/9935022.html
Copyright © 2011-2022 走看看