Sql-Server

同步兩個 SQL Server 數據庫

  • July 26, 2017

因此,我從 hostgator 獲得了一個託管包,其中包含一個 MS SQL 數據庫和一個正在執行的本地 SQL Express 2012 數據庫。我正在嘗試研究將兩者同步在一起,雙向同步,並且我無法使用 SQL 管理工作室中的 SQL 複製工具,我可以使用複制工具嗎?- 還是我需要使用其他工具?

謝謝!

抱歉,如果這含糊不清,請告訴我,我可以澄清一下。

SQL Server 複製,創建通過 SQL Server Agent 執行的作業,但由於 SQL Server Agent 不執行 SQL Server Express Edition,因此複製也無法執行,並且該版本中沒有添加該功能,您無法實現複製。因此,如果您需要同步兩個數據庫,則需要將數據庫升級到標準版或開發者版,使用 PowerShell 編寫冗長的查詢和計劃,或使用一些第三方軟體。

謝謝

使用推送分發可以輕鬆實現從SQL Server Standard(作為發布者)及更高版本到 SQL Server Express(作為訂閱者)的一種同步方式。

在這種情況下,不需要 Express 訂閱者上的 SQL 代理,就像標準版上的 SQL 代理一樣。發布者在配置推送時將更改應用於 Express 實例。

如果沒有第三方工具,雙向同步複製會更加困難,但有一些可用選項:

(1) 升級到 SQL Server Standard 或更高版本,然後在一台伺服器上配置事務發布,在另一台伺服器上配置可更新訂閱

通過將事務日誌應用於訂閱者,將針對發布者的事務複製到訂閱者。針對訂閱者進行的交易將應用於發布者,而不是直接應用於訂閱者。然後通過發布者的一種事務複製方式將這些更改複製回訂閱者。您還需要配置衝突解決策略,以及一些與操作模式相關的選項。不是雙向同步的最有效實現,但它可以工作並且內置於 mssql。

(2) 將 express 版本升級到 SQL Server 標准或更高版本,然後使用合併複製。這種方法對於大表和低延遲要求是有問題的,b/c 同步過程要求分發者在執行合併和衝突解決後向對等方發送完整快照。對於可以按設定的時間表同步的較小的表,即使不是稍微好一點,也可以正常工作。也是超級容易維護,。根據您配置的策略解決衝突。

(3) 使用對等複制(兩台伺服器都必須執行 Enterprise)或將兩台伺服器設置為發布者和訂閱者,以將更改從一台伺服器移動到另一台伺服器。在這兩種情況下,您都需要編寫自己的衝突解決邏輯。對於點對點複製,必須在對任一伺服器送出更改之前解決衝突,否則當檢測到等待管理操作的衝突時,其中一個伺服器將關閉。P2P 是真正的多路同步,b/c 每個對等節點都充當訂閱者、發布者和分發者。快速,但缺少關鍵的衝突解決和收斂程式碼。

MSSQL 沒有像 Oracle 對稱複製那樣完整的多路複製解決方案。內置工具可用於處理一些常見場景,因此其中一些可能滿足您的需求。

至於你的SSMS問題,你能更具體一點嗎?這可能是一個配置問題,使您無法使用 ssms。即使在 Express 版本上,您仍然應該能夠將其配置為訂閱者。

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