2013-10-16 39 views
0

我是新來的SQL服務器。我有一個SQL服務器,我有第二個SQL服務器(備份服務器)。我想複製數據從SQL服務器到第二個和我所有的交易創建更新刪除必須是立即反映在第二臺服務器上。我的表中有非常大的數據,假設有數百萬行。我該如何實現這一點。我沒有使用第三方工具的先決條件。在Microsoft SQL Server中複製數據

+2

你使用的是什麼版本的Sql Server? 2005,2008,2012/Express,Standard,Enterprise ... –

+0

sql server 2008 enterprise – constantlearner

回答

3

您可以嘗試讓這兩個參考一些幫助:

在一個側面說明一個重要的事情,你應該需要計劃做之前複製的您將用於複製的複製模型。

有複製模型的列表,你可以使用: -

  • 對等網絡模型
  • 中央出版商模型
  • 中央出版商與遠程分發模型
  • 中央訂購模式
  • 出版用戶模型

以上各項都有自己的優勢。根據您的需要檢查它們。

而且要添加到它有三種類型的複製: -

  1. Transactional replication
  2. Merge replication
  3. Snapshot replication
+3

@constantlearner: - 這個問題太寬泛了,無法得到答案。最好的辦法是嘗試並嘗試上述任何鏈接,並告訴我們您是否遇到任何問題! :) –

+1

感謝您的幫助,我會嘗試與他們。我是新的SQL服務器 – constantlearner

+1

@constantlearner: - 不客氣! –

3

指定您需要的數據要在第二反射服務器立即,實時。

此需求會爲主服務器上發生的每個事務添加延遲,因爲每個操作都需要在輔助服務器上提交,然後才能在主服務器上提交。

除了延遲,這個要求也可能會降低您的可用性。如果輔助服務器不再能夠成功提交來自主服務器的事務,則主服務器不能再提交事務,並且系統已關閉。

有關這些約束條件的更多信息,refer to the extensive discussion around this topic(CAP theorem)

如果你有這些限制,OK,你可能會如果你沒有確定這些限制,請調整/澄清你的要求,可以考慮使用Synchronous Database Mirroring (High-Safety Mode).

0

退房在SQL Server 2008中的複製本教程:

Tutorial: Replicating Data Between Continuously Connected Servers

既然你說「......反映在第二個服務器立即實時」的,這意味着你要使用事務複製。您仍可能只能選擇複製某些表。

「百萬行」代表某種歷史嗎?如果是這樣,請考慮邁克爾提到的風險......以及您是否需要第二臺服務器中的所有歷史記錄,或僅需要當前/最近的活動。如果它只是當前/最近的,那麼爲了執行循環,讀取和複製數據的工作,可以更安全並且更少的系統消耗,用T-SQL或SSIS編寫某些東西。

這可以通過鏈接服務器和觸發器來完成......但Michael提到的有關阻止服務器提交事務的風險與觸發器一樣重要或者更多,您可以避免您自己的T-SQL/SSIS +作業。

希望可以幫到...

+0

爲什麼降價? –

+1

-1鏈接只有答案是不鼓勵的。您應該將相關信息添加到您的答案中,但這個問題實際上太寬泛了,不應該保持開放。 – Mansfield

+0

@Mansfield好的,很高興知道......我將來會做出相應的調整。爲了記錄,我認爲這樣一個廣泛的培訓要求是適當的,而且比其他人所做的僅僅告訴他他的問題太廣泛,更有幫助。 (至少我找到了一個教程。)如果我貢獻更多(*高興做*),你反向downvote? –