2013-06-18 77 views
3

我工作的公司希望在SQL Server支持的應用程序中始終使用可用性組架構。我們有3個數據庫直接安裝,其中一個通過配置進行分區,我們目前使用MSDTC來協調三者之間的事務處理,即如果提交給數據庫A和B,並且提交成功,則B上的故障意味着回滾A和B,而不是僅僅B.始終打開可用性組的MSDTC

我們,當我們看到從我的理解這article

遇到了一個問題,這基本上意味着在不支持始終在可用性組模式MSDTC。 我找不到這個在SQL服務器更換2012

所以我的問題是:

  1. 什麼選擇,我們有(擱置或開源產品/代碼的變化)?
  2. 在此設置中運行MSDTC的具體影響是什麼(完全崩潰/缺失事務)?

在此先感謝,非常感謝您的幫助。 多爾

回答

2

我最近要求在類似的問題:https://dba.stackexchange.com/questions/47108/alwayson-ag-dtc-with-failover

>哪些選項我們已經(或擱置開源產品/代碼的變化)?

我認爲你有兩個選擇:

  1. 更改您的應用程序,以便它不需要DTC。
  2. 更改數據庫設置,使其不使用可用性組。

在我的情況下,我們使用一個商業應用程序,所以選項1是不可行的。我們目前正在使用數據庫鏡像,並且基於最近的研究,我現在明白,這也不受支持。

我的帶走是有可能使它工作。但這並不簡單,它會讓你處於不受支持的狀態 - 這是我們不能接受的。因此,我打算考慮利用日誌傳送和從具有熱備份(使用鏡像)或熱備份(使用日誌傳送)進行更改。

在此設置中運行MSDTC的具體影響是什麼(完全崩潰/丟失事務)?

如果您決定對可用性組或鏡像使用DTC,則可能會導致在故障轉移方案中存在損壞/不一致數據的風險。你引用的文章給出了一個很好的例子,說明如何發生。

不可否認,使用日誌傳送可能會發生同樣的問題。我打算提出的論點是,通過日誌傳送,我們可以將時間推移到特定的時間點,並且我們可以確保我們只移動到一個我們知道每件事物都一致的時間點。

我們正在使用的商業應用程序不支持高可用性。這是我們努力使其高度可用。

+0

我將鏡像+ DTC視爲僅支持SQL Server 2016及更高版本。 – Dina