zoukankan      html  css  js  c++  java
  • 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

    不必太糾結于當下,也不必太憂慮未來
  • 相关阅读:
    asp.net core系列 47 Identity 自定义用户数据
    asp.net core系列 46 Identity介绍
    asp.net core系列 45 Web应用 模型绑定和验证
    asp.net core系列 44 Web应用 布局
    (入门SpringBoot)SpringBoot来临(一)
    (办公)ssm发送邮件
    (办公)vue下载excel,后台用post方法
    (办公)定时任务quartz入门
    (办公)工作中的编码不良习惯Java(不定时更新)
    (办公)springboot配置全局异常
  • 原文地址:https://www.cnblogs.com/guilingyang/p/5290832.html
Copyright © 2011-2022 走看看