首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Data Guard 10g 實體備庫建立完整步驟:單機雙節點配置實戰

     編輯:Oracle 資料庫基礎

架構規劃

角色主庫備庫
IP192.168.1.4192.168.1.8
ORACLE_SIDprimarystandby
DB_UNIQUE_NAMEprimarystandby
ORACLE_HOME/u01/oracle/product/10.2.0/db_1/u01/oracle/product/10.2.0/db1

主庫配置步驟

  1. 啟用強制記錄
    ALTER DATABASE FORCE LOGGING;
  2. 建立密碼檔(若無)
    ORAPWD FILE=ORAPW$ORACLE_SID PASSWORD=ORACLE ENTRIES=5
  3. 新增 Standby Redo Log(建議比 Online Redo 多 1 組)
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/oradata/primary/redo041.log') SIZE 50M;
    ... GROUP 5,6,7 同理
  4. 產生 PFILE 並修改參數
    CREATE PFILE FROM SPFILE;
    編輯 initprimary.ora:
    LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive'
    LOG_ARCHIVE_DEST_STATE_1=ENABLE
    LOG_ARCHIVE_DEST_2='SERVICE=standby'
    LOG_ARCHIVE_DEST_STATE_2=ENABLE
    LOG_ARCHIVE_START=TRUE
    FAL_SERVER=standby
    FAL_CLIENT=primary
    DB_UNIQUE_NAME=primary
  5. CREATE SPFILE FROM PFILE;
  6. 建立備庫控制檔
    SHUTDOWN IMMEDIATE; STARTUP MOUNT;
    ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/u01/oradata/primary/standby.ctl';
    ALTER DATABASE OPEN; SHUTDOWN IMMEDIATE;
  7. 複製資料檔、控制檔、管理目錄至備庫
    SCP -R /U01/ORADATA 192.168.1.8:/U01/ORADATA
    SCP -R /U01/ADMIN 192.168.1.8:/U01/ADMIN
    SCP -R /U01/ORACLE/PRODUCT/10.2.0/DB_1/DBS/* 192.168.1.8:/U01/ORACLE/PRODUCT/10.2.0/DB1/DBS/

備庫配置步驟

  1. 刪除複製來的主庫控制檔,將 standby.ctl 複製為 3 個控制檔
  2. 修改 PFILE 參數(initstandby.ora):
    LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive'
    LOG_ARCHIVE_DEST_STATE_1=ENABLE
    LOG_ARCHIVE_DEST_2='SERVICE=primary'
    LOG_ARCHIVE_DEST_STATE_2=ENABLE
    LOG_ARCHIVE_START=TRUE
    FAL_SERVER=primary
    FAL_CLIENT=standby
    DB_UNIQUE_NAME=standby
  3. CREATE SPFILE FROM PFILE;
  4. 新增備庫 Standby Redo Log(組數 = 主庫 Online Redo 組數 + 1)

啟動與驗證

-- 主庫
STARTUP;

-- 備庫
LSNRCTL START
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
SELECT NAME, DATABASE_ROLE FROM V$DATABASE;
-- 應顯示 PHYSICAL STANDBY

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

-- 驗證同步
SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

關鍵網路配置檔

主備雙方 LISTENER.ORA 需註冊對方 SID;TNSNAMES.ORA 需雙向解析 PRIMARY 與 STANDBY 服務名。文中提供完整範本可直接參考調整 IP/主機名。

常見問題排查

  • ORA-12514:Listener 未註冊 Standby SID → 檢查 LISTENER.ORA SID_LIST
  • ORA-16058:Standby Redo Log 組數不足 → 依公式 (MaxLogGroups+1)*Threads 新增
  • 同步延遲:檢查 V$ARCHIVE_GAP、網路頻寬、LOG_ARCHIVE_MAX_PROCESSES
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved