Database

如何在沒有網路連接的情況下處理兩個 Oracle 數據庫的單向同步?

  • August 3, 2017

情況如下:

我有兩個無法通過網路連接的 Oracle 10g 數據庫(具有相同的表等)。在某些固定時間間隔(例如,每天一次),我需要能夠更新數據庫 B 上的數據以匹配該數據庫 A。數據庫 B 是只讀的,因此不應對其上的數據進行任何更改。

由於它們之間沒有網路連接,因此我需要從一個文件創建某種文件,以便將其帶到另一個文件並輕鬆載入。我希望盡可能快地導出此文件並將其導入另一個數據庫……理想情況下,它只包含關於自上次同步以來發生的確切變化的最少必要資訊。

顯然,我可以完全導出一個數據庫並用它的數據替換另一個。然而,這將花費不可接受的時間量。我還發現了一些關於增量導出的東西,但它似乎已經過時,並且還會導出任何更改的表中的所有數據。這將是有問題的,因為一個特定的表(很可能會更改)包含大型 BLOB,並且到目前為止完全導出和導入將花費最多的時間。

我不是 DBA,所以我在這方面沒有太多專業知識。有什麼適合做這件事的嗎?

您可以將邏輯備用數據庫視為只讀副本,並拼湊一個手動存檔日誌​​傳輸過程,該過程在每個同步間隔從傳輸介質複製和註冊所有日誌文件。這樣做的好處是您只使用 Oracle 自然創建的文件,而且這是一個非常快速的過程。它也不會導致邏輯備用伺服器停機。

我在 Data Guard 文件中找到的一個有用的部分是解決歸檔日誌間隙部分。

編輯:我剛剛注意到你不是 DBA。您需要有能力的 DBA 幫助才能做到這一點,更不用說所需的特權了。但是,大多數稱職的 DBA 都會認為這很有趣 ;-)

引用自:https://serverfault.com/questions/185480