Sql-Server

如何將 Oracle 數據與 SQL Server 同步

  • December 2, 2016

我在一台具有唯一 IP 的機器上有一個 Oracle 11g 數據庫,在另一台機器上有一個 SQL Server 2008 數據庫。

Oracle 中的表 (A) 有一些欄位(不是全部)與 SQL Server 中的表 (B) 相同。

現在我想將A中的欄位值與B中的欄位值同步。也就是說(可能是羅嗦!),當A中的值發生變化時,它會在B中自動更新,而無需在SQL Server中進行任何手動操作!

如何完成這項工作?

在 Oracle 和 SQL Server 之間建立一個數據庫連結,然後在 Oracle 數據庫中設置一個觸發器,以便在 oracle 表發生變化時更新 SQL Server 表。

簡單的解決方案分為“推”或“拉”策略,每種策略都有其優點和缺點。

  1. 通過預定的作業或表觸發器將數據從 Oracle 數據庫推送到 SQL 伺服器。這樣做,您必須記住,如果該數據庫移動了,則更新指向 SQL 的連結。使用表觸發器,您還會在對錶的寫入、更新或刪除方面產生一些性能成本。

  2. 通過預定的合併作業或 SSIS ETL 包,使用 SQL 伺服器從 Oracle 數據庫中提取數據。

使用任何一種計劃作業,您都會稍微落後於實時表更新,這通常不是問題。該作業可以根據需要盡可能頻繁地執行,以保持較小的差距。

DBA 應該沒有問題與您進行設置,但如果您不熟悉數據庫內部結構,則可能難以選擇和實施選項。如果 DBA 不可用,第三方工具可能會提供幫助。如果您要自己實施一個,您還應該能夠找到有關每個選項的指南。

引用自:https://dba.stackexchange.com/questions/156847