| 項目 | Primary | Standby |
|---|---|---|
| OS | CentOS 6.4 | CentOS 6.4 |
| Oracle | 11.2.0.1.0 | 11.2.0.1.0 |
| IP | 192.168.121.217 | 192.168.121.218 |
| DB_UNIQUE_NAME | pdunq | pdunq_dg |
| SID | powerdes | powerdes |
LOG_ARCHIVE_DEST_2 指向 Standby (LGWR SYNC AFFIRM)FAL_SERVER/FAL_CLIENT、STANDBY_FILE_MANAGEMENT=AUTOALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stdby.ctl';listener.ora (SID_LIST 包含 GLOBAL_DBNAME=powerdes_DGMGRL)、tnsnames.ora (Primary/Standby 互訪)orapwd file=$ORACLE_HOME/dbs/orapwpowerdes password=syspass entries=10DB_UNIQUE_NAME=pdunq_dg, FAL_SERVER=pdunq, LOG_ARCHIVE_DEST_1 本地、LOG_ARCHIVE_DEST_2 指向 Primary)RMAN TARGET sys/pass@pdunq AUXILIARY /
RUN {
ALLOCATE AUXILIARY CHANNEL C1 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL C2 DEVICE TYPE DISK;
DUPLICATE TARGET DATABASE FOR STANDBY
NOFILENAMECHECK
DORECOVER;
RELEASE CHANNEL C1;
RELEASE CHANNEL C2;
}
關鍵點:
FOR STANDBY — 創建備庫控制文件,自動設置 Standby 模式NOFILENAMECHECK — 目標/輔助實例文件路徑相同或已在 PFILE 中 SET NEWNAME 映射DORECOVER — 復制後自動應用歸檔至一致點DB_UNIQUE_NAME=pdunq_dg, FAL_CLIENT=pdunq_dg, FAL_SERVER=pdunq, LOG_ARCHIVE_CONFIG='DG_CONFIG=(pdunq,pdunq_dg)', LOG_ARCHIVE_DEST_1 本地, LOG_ARCHIVE_DEST_2 指向 PrimaryALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;-- Primary 切換日志 ALTER SYSTEM SWITCH LOGFILE; -- 雙端查詢最大序號 SELECT MAX(sequence#) FROM v$archived_log; -- Standby 查看 Alert 日志關鍵字 MRP0 started Managed standby recovery Waiting for all non-current ORLs to be archived... Media Recovery Waiting for thread 1 sequence 303
常見問題:歸檔不傳遞 → 檢查 LOG_ARCHIVE_DEST_2 的 SERVICE= TNS 名稱與 DB_UNIQUE_NAME 是否與 Standby 一致 → 修正後 ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
| 參數 | Primary | Standby |
|---|---|---|
| DB_UNIQUE_NAME | pdunq | pdunq_dg |
| LOG_ARCHIVE_DEST_1 | LOCATION=... VALID_FOR=(ALL_LOGFILES,ALL_ROLES) | LOCATION=... VALID_FOR=(ALL_LOGFILES,ALL_ROLES) |
| LOG_ARCHIVE_DEST_2 | SERVICE=pdunq_dg LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdunq_dg | SERVICE=pdunq LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdunq |
| FAL_SERVER | pdunq_dg | pdunq |
| FAL_CLIENT | pdunq | pdunq_dg |
| STANDBY_FILE_MANAGEMENT | AUTO | AUTO |
基於 RMAN DUPLICATE FOR STANDBY 是 11g 部署 Physical Data Guard **最標準、最自動化、最不易出錯** 的方式。關鍵成功因素:
1. Primary 端歸檔/Force Logging/網絡互通準備就緒
2. Standby 端目錄/Listener/Password/Pfile 完全就緒
3. RMAN 腳本參數精準 (NOFILENAMECHECK + DORECOVER)
4. 部署後**必做** ALTER SYSTEM SWITCH LOGFILE 雙端序號對賬
5. 納入監控:V$ARCHIVE_GAP, V$DATAGUARD_STATS, V$MANAGED_STANDBY