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

Oracle 目標資料庫建立 Database Link 完整操作指南

     編輯:Oracle 資料庫基礎

前言

在異構資料庫環境中,實現兩台 Oracle 伺服器之間的資料同步是常見需求。本文詳細說明如何在目標資料庫上建立 Database Link(dblink),並搭配 Snapshot(物化視圖)實現自動資料同步,包含建立連結、建立快照、設定刷新策略及手動刷新等完整步驟。

名詞定義

  • 來源資料庫:被同步的資料庫(Source)
  • 目標資料庫:接收同步資料的資料庫(Target)

一、建立 Database Link

在目標資料庫執行以下指令,建立指向來源資料庫的公共資料庫連結:

DROP DATABASE LINK dblink_anson;
CREATE PUBLIC DATABASE LINK dblink_anson
CONNECT TO lg IDENTIFIED BY lg USING 'SDLGDB';

參數說明:
- lg:來源資料庫的用戶名與密碼
- SDLGDB:來源資料庫的服務名稱(需在 tnsnames.ora 中配置)

二、建立同步表結構

在來源與目標資料庫同時執行,確保表結構一致:

DROP TABLE tb_anson;
CREATE TABLE tb_anson (c1 VARCHAR2(12));
ALTER TABLE tb_anson ADD CONSTRAINT pk_anson PRIMARY KEY (c1);

注意:快照需要主鍵約束以支援快速刷新。

三、測試 Database Link 連線

在目標資料庫驗證連結是否正常:

SELECT * FROM tb_anson@dblink_anson;
SELECT * FROM tb_anson;

第一條查詢遠端表,第二條查詢本地表,確認結構與資料一致。

四、建立快照日誌

在目標資料庫上為同步表建立快照日誌,記錄資料變更以支援快速刷新:

CREATE SNAPSHOT LOG ON tb_anson;

五、建立快照(物化視圖)

在目標資料庫建立快照,從來源資料庫透過 dblink 查詢資料:

CREATE SNAPSHOT sn_anson AS SELECT * FROM tb_anson@dblink_anson;

前提條件:來源資料庫服務必須已啟動。

六、設定快照自動刷新排程

1. 快速刷新模式

ALTER SNAPSHOT sn_anson REFRESH FAST
START WITH SYSDATE + 1/24/60
NEXT SYSDATE + 10/24/60;

含義:1 分鐘後首次快速刷新,之後每 10 分鐘快速刷新一次。快速刷新僅套用變更資料,效能較佳。

2. 完整刷新模式

ALTER SNAPSHOT sn_anson REFRESH COMPLETE
START WITH SYSDATE + 30/24/60/60
NEXT SYSDATE + 1;

含義:30 秒後首次完整刷新,之後每天完整刷新一次。完整刷新會重新查詢所有資料,適合定期校正資料一致性。

七、手動刷新快照

當需要立即同步資料時,可手動觸發刷新:

BEGIN
  DBMS_REFRESH.REFRESH('"CS"."SN_ANSON"');
END;

其中 CS 為快照擁有者 Schema,SN_ANSON 為快照名稱。

總結

透過 Database Link 搭配 Snapshot 機制,可實現 Oracle 資料庫間的非同步資料同步。關鍵在於:正確配置網路連線、建立主鍵與快照日誌以支援快速刷新、依業務需求設定適當的刷新策略。生產環境建議監控刷新狀態與錯誤日誌,確保資料同步的可靠性。

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