• Datagard產生gap


    本文轉載自無雙的小寶的博客:http://www.cnblogs.com/sopost/archive/2010/09/11/2190085.html

    有時候因為網路或備份故障等原因,主機所產生的歸檔日誌無法傳到備機上,這個時候備機就產生了gap。對於這種情況,應該如何解決?

    需要注意的是,一旦產生gap,即使gap之後的archive log能正常傳到standby庫中,standby庫並不會對後繼傳來的日誌檔做apply。只有通過對standby做recover把從產生gap的第一個檔到最新的archive log檔都apply了才能做到2個庫一致。

    1.在primary庫中重新創建standby controlfile。並將它拷貝到standby庫中。位置與以前同。ALTER DATABASE CREATE STANDBY CONTROLFILE AS '[path][ctl_file_name].CTL';

    2.進入備庫,select * from v$archive_gap;看產生gap的檔都有哪些?

    2.shutdown standby庫(shutdown immediate)

    3.將產生gap的那些歸檔檔拷貝到standby庫中。(如果主庫重新做過,如恢復,則將對主庫在resetlog之後的熱備檔及所有新產生的archive log倒回原來的位置.)

    4.啟動standby庫到mount狀態,並進行手工同步:
    $startup nomount
    $alter database mount standby database;
    $recover standby database; --(如果archive log產生 gap也是這麼做:把缺的archive log倒到standby庫種,然後執行。)

    這裡注意如果歸檔日誌不存在的一定要去找回歸檔日誌,執行上面的命令后,我們選擇AUTO選項,讓standby自動去apply所有未apply的日誌

    5.主輔庫一致後,將standby庫置回管理狀態:
    alter database recover managed standby database disconnect from session;

    檢查:

    select * from v$archive_gap --看standby有沒有gap 如果有gap,看standby機器上是不是少了這些sequence#的log。如果需要做monitoring,可以採用以下sql語句:

    select decode((select count(*) from (select low_sequence# from v$archive_gap union select 9999 from dual)) ,2,'Found Gaps,contact DBA as soon as possible!','No Gaps,Take it Easy') "Gap Status" from dual;


    select * from v$archived_log where applied='NO' 表示沒有applied

    不必太糾結于當下,也不必太憂慮未來
  • 相关阅读:
    PostgreSQL主从流复制部署
    MySQL集群主从复制搭建
    zabbix修改支持中文主机名
    BGP总结(三)
    BGP总结(二)
    BGP总结(一)
    VXLAN配置实例(华为)
    VXLAN理论解析
    飞塔创建IPSec
    关于SANGFOR AC记录上网记录
  • 原文地址:https://www.cnblogs.com/guilingyang/p/5290832.html
Copyright © 2020-2023  润新知