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

兩步驟搞定 Oracle 跨資料庫表同步:DB Link + 排程腳本

     編輯:Oracle 資料庫基礎

最輕量的跨庫表同步:Target 端建 DB Link → Shell/PLSQL 排程跑 TRUNCATE + INSERT /*+ APPEND */。適用於全量刷新、資料量中等、可容忍短暫不可用的場景。

步驟 1:Target 建立 DB Link

-- tnsnames.ora 加入 Source 連線資訊
SRC_DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL=TCP)(HOST=10.5.1.3)(PORT=1521))
    (CONNECT_DATA = (SERVICE_NAME=SRC_DB))
  )

-- 建立 Public DB Link
CREATE PUBLIC DATABASE LINK src_link
  CONNECT TO src_user IDENTIFIED BY src_pwd
  USING 'SRC_DB';

步驟 2:同步腳本

#!/bin/bash
# sync_table.sh
sqlplus tgt_user/tgt_pwd@TGT_DB <

進階優化

  • 並行 DML:ALTER SESSION ENABLE PARALLEL DML; + 表設 PARALLEL 4。
  • 分區交換:若 Target 表為分區表,可 INSERT INTO target PARTITION (p_2024) ... 再 ALTER TABLE ... EXCHANGE PARTITION,近零停機。
  • CDC 增量:若需增量,Source 建立 MATERIALIZED VIEW LOG,Target 用 MERGE 或 APPLY。

前置檢查

SELECT * FROM v$option WHERE parameter = 'Advanced replication';
-- 必須回傳 TRUE,否則 DB Link 某些功能受限

排程部署

  • Linux cron:0 2 * * * /home/oracle/scripts/sync_table.sh >> /home/oracle/logs/sync_table.log 2>&1
  • Oracle DBMS_SCHEDULER:建立 JOB 執行 PL/SQL 封裝版本,集中管理、可視化監控。
DB Link 同步簡單直接,但屬「推」模式,Source 無感知。雙向、高頻、低延遲需求請改用 GoldenGate / Streams / Materialized View 架構。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved