Sql-Server

如何:熱備 SQL Server 在另一個數據中心?

  • March 8, 2012

對於我們的 SaaS 應用程序,我希望為數據中心範圍內的故障建立一個系統。

在主數據中心,我們有兩台伺服器設置了 MSSQL 數據庫鏡像(同步)。這為我們提供了針對伺服器故障的足夠好的高可用性解決方案。如果伺服器當機,它會在幾秒鐘內自動故障轉移(在第三台見證伺服器的幫助下)。

我正在考慮使用鏡像數據庫中的MSSQL 複製或日誌傳送來保持另一個數據中心的****熱備用伺服器- 請注意,這將是跨大西洋的,因此高 pings ~ 100 毫秒。我想我可以使用一些具有短(5 分鐘)TTL 的DNS 故障轉移服務,在第一個數據中心發生故障時將流量引導到第二個數據中心。

問題:

我可以使用來自鏡像數據庫的複製或日誌傳送(如果它故障轉移到另一個實例,則可以無縫工作)?

哪個是首選 - 複製或日誌傳送或其他?

是否可以讓故障轉移數據庫接受寫入?

或者故障轉移是否會導致潛在的數據失去,因此最好在我們故障恢復到主數據中心之前將其設為只讀?

謝謝!

**編輯:**有人對備用 MSSQL 伺服器配置有任何想法嗎?

日誌傳送或複制都可以與數據庫鏡像一起使用 - 您應該使用哪一個取決於您的要求,但複製可能比日誌傳送更難設置和管理,所以我個人會堅持使用日誌傳送,除非您有複製功能確實需要。下面的連結提供了有關如何設置每個連結的更多資訊。

是否可以讓故障轉移數據庫接受寫入?

注意:我假設您的意思是一旦發生故障轉移,而不是在日常正常操作期間。

當然,通過日誌傳送,可以讓輔助 DC 中的故障轉移數據庫接受寫入。如果您可以獲取並應用在主 DC 中執行的數據庫的尾日誌備份(以最大程度地減少數據失去,並保持日誌鏈完整),那麼您將擁有正在執行的數據庫的最新副本,但是不要忘記你在這種情況下暴露在外。定期日誌備份會有所幫助,但如果您的目標是不失去任何事務,那麼當您僅在另一個 DC 中的日誌傳送輔助伺服器上執行時,就無法保證這一點。最好只在只讀狀態下執行應用程序,直到再次設置 HA。在此狀態下,您可以將日誌備份複製到主數據中心,然後重新初始化鏡像。

有用的連結:

http://msdn.microsoft.com/en-us/library/ms187016.aspx - 日誌傳送和數據庫鏡像 http://msdn.microsoft.com/en-us/library/ms151799.aspx - 複製和數據庫鏡像

注意:要獲得對 logshipping 數據庫的寫訪問權限,您需要 RESTORE DATBASE dbname WITH RECOVERY 之後它可以像 master 一樣寫入,但是在執行此操作後您無法恢復任何其他日誌。您需要恢復新的完整備份才能使日誌傳送再次工作。但它至少可以讓你故障轉移到它。

引用自:https://serverfault.com/questions/264002