2009-10-19 134 views
0

我有兩個數據庫:源是由客戶端從SQL Server Express數據庫,目標是最初作爲備份從SQL Server 2005數據庫的數據庫。我需要的是將源同步到目標數據庫,如果它們之間存在任何差異並且同步是從源到目標的單向。同步兩個SQL Server數據庫

我不確定哪些工具可用。我試圖谷歌這個問題,並發現MS VS團隊版(2005年)有一個工具來同步數據庫,它也可以生成T-SQL腳本。不知道這一個是否好。我可以使用腳本作爲SQL Server(目標服務器)上的計劃作業嗎?順便說一下,我現在沒有Team Edition,但我確實有VS 2005 Prof. Any的建議?

+1

同步數據或同步方案?目標是否可更新? – 2009-10-19 16:47:10

+0

這是個好問題。我嘗試了一種工具,那個工具只能同步模式,而不能數據。我的意思是同步這兩個。我需要兩個工具來同步dbs嗎?如果我必須使用或開發兩種工具,我可能會使同步更容易。 – 2009-10-19 20:15:36

+0

您是否想要在接近實時和連續的情況下執行此操作,還是一次性執行此操作? – 2009-10-20 14:06:53

回答

0

你應該到由Red-Gate產生的SQL Server工具。我發現他們是最好的。

0

如果您有SQL Server 05,則可以使用複製服務(隨SQL Server一起提供)。如果你打開你的管理工作室,在你的服務器文件夾下你應該看到一個標題爲「複製」的標題。從這裏你可以設置訂閱或出版與推或拉同步。

這裏是MSDN的看法:http://msdn.microsoft.com/en-us/library/ms151198.aspx

+0

該鏈接適用於MS SQL 2008,我無法在我的SQL Mgmt Studio 2005中找到該選項。 – 2009-10-19 16:56:36

1

恕我直言,目前兩個數據庫同步單向的最簡單和最快的方式(A至B)是在備份數據庫,並將其上B.恢復可以這樣做通過T-SQL,讓我知道您是否希望我發佈SQL語句

+0

我想過這個選項。一個問題是,目標是在生產中,並且可能有實時客戶端訪問數據庫。另一個考慮是在大多數情況下可能會有很小的差異。不確定同步是否會比整個數據庫複製更快? – 2009-10-19 16:59:10

+0

@David,我是否理解目標數據庫是生產應用程序實際使用的目標數據庫,並且它是隻讀的?我不確定在這種情況下備份/恢復方法是否好,但我想可以通過將目標數據庫恢復爲新名稱,然後在恢復完成後交換連接字符串來使用它。但是再一次,也許你會發現複製是一個更簡單的方法,因爲它只會同步更改,因此可能會更快。 – galets 2009-10-19 17:20:18

1

理想情況下,你會從源到目標(一個或多個)成立了事務複製。但是,由於您的源代碼是Express版本,複製不適用於Express作爲發佈者(源代碼),但僅作爲訂閱者(目標),因此無法使用它。

最好的解決方案是將您的Express版升級到支持複製發佈(即標準版)的SKU。

日誌傳送或手動備份/恢復將不起作用,因爲它會在目標處創建源數據庫的完全相同的副本,覆蓋目標所做的任何更改(您提到'可能存在某些差異')。文件/複製也一樣。

SQL比較工具對於一次性手動操作是可以的,但是它們在自動化操作中失敗,因爲它們總是比較從頭開始的兩個數據庫ei。不能同步只是變更了。只要數據增長到足夠的大小,比較方法就註定要失敗,因爲它必須在整個數據庫上發貨,以便單獨進行比較。

其他解決方案是設置主動式實時ETL,但與SE許可證的成本和部署複製相比,這樣做的時間/成本投入是過高的。

0

除了紅門工具,您還可以嘗試DB Ghost以及http://www.innovartis.co.uk/。它作爲一個自動構建工具非常有用,但也有一個用戶界面來區分和同步數據庫。它的成本〜$ 350.00

相關問題