首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫複寫實作全紀錄:前置條件、初始化參數、同步複寫建立步驟

     編輯:Oracle 資料庫相關知識

跨地域資料庫同步需求常見於分散式應用。Oracle 高級複寫 (Advanced Replication) 提供多主 (Multi-Master) 同步複寫機制。

前置條件

  1. 資料庫版本支援高級複寫:以 SYSTEM 查詢 V$OPTION,Advanced replication = TRUE 才支援。
  2. 初始化參數:
    db_domain = test.com.cn              -- 全域網域名
    global_names = TRUE                  -- DB Link 名稱必須 = 全域資料庫名
    job_queue_processes = 1              -- SNP 背景進程數 (0~36)
    job_queue_interval = 60              -- 喚醒間隔秒數
    distributed_transactions = 10        -- 分散式交易上限
    open_links = 4                       -- 開啟 DB Link 上限
    
    修改後需重啟實例生效。

同步複寫建立步驟 (雙節點:shenzhen / beijing)

1. 確認網路互通

雙邊 tnsnames.ora 設定服務名,tnsping 測試通。

2. 設定全域名稱與公共 DB Link

-- shenzhen 節點
ALTER DATABASE RENAME GLOBAL_NAME TO shenzhen.test.com.cn;
CREATE PUBLIC DATABASE LINK beijing.test.com.cn USING 'beijing';
SELECT * FROM GLOBAL_NAME@beijing.test.com.cn;  -- 驗證回傳 beijing.test.com.cn

-- beijing 節點對稱操作
ALTER DATABASE RENAME GLOBAL_NAME TO beijing.test.com.cn;
CREATE PUBLIC DATABASE LINK shenzhen.test.com.cn USING 'shenzhen';
SELECT * FROM GLOBAL_NAME@shenzhen.test.com.cn;

3. 建立複寫管理用戶 repadmin 並授權

CREATE USER repadmin IDENTIFIED BY repadmin
  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
EXEC DBMS_DEFER_SYS.REGISTER_PROPAGATOR('repadmin');
GRANT EXECUTE ANY PROCEDURE TO repadmin;
EXEC DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_REPGROUP('repadmin');
GRANT COMMENT ANY TABLE TO repadmin;
GRANT LOCK ANY TABLE TO repadmin;

雙節點同樣執行。後續將建立複寫群組、新增複寫物件、啟動複寫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved