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

Oracle 9i 與 10g 跨版本構建高級復制環境測試實錄

     編輯:Oracle 資料庫基礎

環境信息

  • 節點 1 (HSBILL):Oracle 9.2.0.4.0 64bit on Solaris,Global Name: HSBILL.HURRAY.COM.CN
  • 節點 2 (MARS):Oracle 10.2.0.1.0 64bit on Solaris,Global Name: MARS.HURRAY.COM.CN
  • 均設置 GLOBAL_NAMES=TRUE

1. 連通性驗證

-- 9i 端
TNSPING MARS  -- OK (10 msec)

-- 10g 端
TNSPING HSBILL  -- OK

2. 雙向 Database Link 創建

-- 9i 上創建指向 10g
CREATE PUBLIC DATABASE LINK "MARS.HURRAY.COM.CN"
  CONNECT TO REPADMIN IDENTIFIED BY REPADMIN USING 'MARS';

-- 10g 上創建指向 9i
CREATE PUBLIC DATABASE LINK "HSBILL.HURRAY.COM.CN"
  CONNECT TO REPADMIN IDENTIFIED BY REPADMIN USING 'HSBILL';

-- 測試雙向查詢
SELECT * FROM DUAL@MARS;   -- 9i 端
SELECT * FROM DUAL@HSBILL; -- 10g 端

3. 測試對象準備

CONNECT EYGLE/EYGLE
CREATE TABLE EYGLE AS SELECT * FROM V$SESSION;
ALTER TABLE EYGLE ADD (CONSTRAINT PK_EYGLE PRIMARY KEY (SADDR));

4. 復制組構建 (在 9i 主定義站執行)

CONNECT REPADMIN/REPADMIN

-- 4.1 創建主復制組
EXEC DBMS_REPCAT.CREATE_MASTER_REPGROUP('REP_910');

-- 4.2 添加復制對象 (使用現有對象、不複製數據)
EXEC DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
    SNAME => 'EYGLE', ONAME => 'EYGLE', TYPE => 'TABLE',
    USE_EXISTING_OBJECT => TRUE, GNAME => 'REP_910', COPY_ROWS => FALSE);

-- 4.3 生成復制支撐 (包、觸發器等)
EXEC DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT('EYGLE','EYGLE','TABLE');

-- 4.4 添加 10g 為主站 (同步傳播、使用現有對象)
EXEC DBMS_REPCAT.ADD_MASTER_DATABASE(
    GNAME => 'REP_910', MASTER => 'MARS.HURRAY.COM.CN',
    USE_EXISTING_OBJECTS => TRUE, COPY_ROWS => FALSE,
    PROPAGATION_MODE => 'SYNCHRONOUS');

-- 4.5 啟動復制活動
EXEC DBMS_REPCAT.RESUME_MASTER_ACTIVITY('REP_910', TRUE);

5. 功能驗證

-- 初始雙端各 20 行
SELECT COUNT(*) FROM EYGLE.EYGLE;           -- 20
SELECT COUNT(*) FROM EYGLE.EYGLE@MARS;      -- 20

-- 9i 端刪除 10 行並提交
DELETE FROM EYGLE.EYGLE WHERE ROWNUM < 11;
COMMIT;

-- 同步驗證
SELECT COUNT(*) FROM EYGLE.EYGLE;           -- 10
SELECT COUNT(*) FROM EYGLE.EYGLE@MARS;      -- 10

-- 版本確認
SELECT * FROM V$VERSION@MARS;  -- 10.2.0.1.0
SELECT * FROM V$VERSION;       -- 9.2.0.4.0

關鍵點總結

  • GLOBAL_NAMES=TRUE 強制 DB Link 名稱 = 遠端 Global Name,雙向必須一致
  • 復制管理用戶 (REPADMIN) 兩端需同名同密
  • USE_EXISTING_OBJECTS=TRUE 避免跨版本對象創建差異導致失敗
  • PROPAGATION_MODE='SYNCHRONOUS' 保證強一致性,異步模式需配置 Deferred Queue
  • 9i 作為主定義站 (MDS) 向前兼容 10g 從站是官方支援路徑
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved