1. 程式人生 > >案例:DG主庫未設定force logging導致備庫壞塊

案例:DG主庫未設定force logging導致備庫壞塊

DG搭建時,官方文件手冊有明確提到要設定資料庫為force_logging,防止有nologging操作日誌記錄不全導致備庫應用時出現問題。 雖然是老生常談的安裝規範,但現實中總會遇到不遵守規範的場景,最近就在某客戶現場遇到一則這樣的案例,因為DG主庫設定force_logging晚於DG搭建,導致備庫出現壞塊,使用dbv檢查就表現為DBV-201錯誤。 下面我們來模擬下這個場景,同時演示下具體修復過程: - [1.準備實驗環境](#1) - [2.構造故障場景](#2) - [3.解決故障](#3)

1.準備實驗環境

主庫確認沒有開啟force logging 模式,如果是,修改為不是,這是模擬故障場景的前提條件: ```shell select force_logging from v$database; ALTER DATABASE NO FORCE LOGGING; ``` 搭建一套測試DG:主庫修改系列DG配置引數後,建立pfile給備庫修改使用,同時將密碼檔案、tnsnames.ora檔案傳輸到備庫端,啟動例項到nomount狀態: ```shell create pfile='/tmp/pfile_for_standby.txt' from spfile; scp /tmp/pfile_for_standby.txt [email protected]:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ scp $ORACLE_HOME/dbs/orapwcrmdb1 [email protected]:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwsingle scp $ORACLE_HOME/network/admin/tnsnames.ora [email protected]:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora change pfile depend on standby env; sqlplus / as sysdba startup nomount pfile=$ORACLE_HOME/dbs/pfile_for_standby.txt ``` 使用duplicate搭建DG備庫,注意備庫需要靜態監聽: ```shell vi dup_dg.sh rman target sys/oracle@crmdb1 auxiliary sys/oracle@sin