Sql-Server

同步不同伺服器上的兩個數據庫

  • February 6, 2017

我無法為我的以下要求選擇正確的解決方案。請各位大神指教?

我們有兩個 SQL Server 2012 數據庫伺服器:

  1. 第一個在德克薩斯(美國)。我們的客戶將把它用於 UAT。
  2. 第二個是在欽奈(印度)。這個我們將用於開發/本地測試。

在測試我們的應用程序時,客戶端會在 UAT 環境中發現問題/錯誤,因此我們需要復製到我們的開發環境進行進一步分析,並針對錯誤開發修復程序。

我們計劃同步存在於兩個不同位置的兩個數據庫。我正在尋找單向同步數據庫。它應該支持寫操作。

我找到了一些潛在的解決方案:

  1. 事務日誌傳送

在事務日誌傳送中,輔助數據庫始終處於只讀/恢復模式,因此我們無法執行任何寫入操作。我需要進行寫入操作以修復問題/錯誤。所以我認為日誌傳送不會有用。 2. 數據庫鏡像和 Always On 高可用性

作為一名初級DBA,我對這些了解不多。請告知這些是否適合我。 3. 安排日常工作

備份 UAT 伺服器並將其還原到我們的本地開發伺服器,通過 FTP 複製數據庫備份。

您能否建議哪種解決方案最適合此問題?

編輯:- 我想將數據庫 1(伺服器 1)中發生的數據更改移動到數據庫 2(伺服器 2)。將更改移動到數據庫 2(伺服器 2)後,它應該是可寫模式。而且我不想將數據庫 2(伺服器 2)中發生的更改移動到數據庫 1(伺服器 1)。所以這是一個單向同步。

下圖將提供更好的理解。 在此處輸入圖像描述

為簡單起見,如果這是在有限的時間範圍內,我會選擇備份和恢復。

除非您需要在幾分鐘內做出響應,否則您可能會通過每日備份來解決問題。在他們報告缺陷,您甚至可以設置一個作業來進行備份並按需通過 FTP 進行備份。

除非問題特定於新創建的數據,否則我什至不會每天都進行恢復。根據我的經驗,UAT 更多的是關於功能。因此,您使用現有數據進行測試並創建新數據。擁有比他們晚幾天的數據庫意味著您應該能夠重複測試並重現缺陷。

db 越大,這種方法會變得越慢、越困難、越不可行。

如果您將提供持續的支持,那麼數據庫很大,並且您有 SLA 說您必須在幾分鐘內做出響應,那麼某種類型的複制/同步可能值得努力設置。

最適合您的解決方案可能取決於客戶端安全或技術策略。與他們合作以確保您的提議是可以接受的。如果不記住,這個主題會有很多變化。但這一切都歸結為:1. 你需要一些東西來備份,2. 你需要一些東西來按計劃或按需 FTP 文件。

如果我親自這樣做,我會從Ola Hallengren 的備份腳本開始。安裝後,我將創建一個呼叫備份的 SQL 代理作業。

然後我將編輯代理作業以添加一個步驟來 FTP 文件。我剛剛快速搜尋並找到瞭如何使用 SSIS 對文件進行 FTP 傳輸的範例,並且我找到了 SQL Server 的 FTP 腳本範例。

我的建議是您將此作業設置為按計劃執行,並且僅在確實需要時才按需執行。如果您沒有執行任務的遠端訪問權限和權限,您可以請求客戶端站點上的某人為您執行任務。

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