SQL 鏡像或日誌傳送 - 對複制數據庫的影響最小?
我們正在計劃一個伺服器,它是一個集群的 SQL2005 Enterprise 64 位,其數據庫的一部分錶通過事務複製以一種方式複製到位於不同數據中心的單個訂閱者,以用於報告目的。分發者與集群上的發布者位於同一位置。SAN 用於儲存。
除了集群之外,客戶端還希望發布者數據庫在 SAN 發生故障時具有彈性。他們在同一個數據中心(不幸的是從災難恢復的角度)有第二個較小的 SAN(從性能角度來看)。這將有一個連接了 SQL2005 32bit Enterprise 的 32 位伺服器。客戶知道,如果發生 SAN 事件,他們將不再具有集群或複制功能,並且性能水平較低。
我正在爭論是否使用日誌傳送或數據庫鏡像來提供數據庫 DR。我們正在使用 Quest LiteSpeed 進行備份,並且可以使用它來傳送壓縮的事務日誌備份。
從性能和複製延遲的角度來看,這兩種技術(鏡像或日誌傳送)對發布者數據庫的影響是否較小?
這取決於。哈哈。
您還需要考慮客戶對發布者的數據失去要求,以及您是否已經在進行日誌備份(我猜你是)。
數據庫鏡像可以設置為零數據失去(只要鏡像保持同步),但取決於事務日誌生成率和可用的網路頻寬,等待日誌記錄在鏡像上硬化後,事務才能執行對主體的承諾可能會減慢工作量。取決於您正在進行的交易類型(長期或短期),這是否會對整體響應時間產生顯著影響。
使用日誌傳送,它只是備份-複製-恢復,重複。因此,如果您已經在進行日誌備份,則根本不會影響性能。如果您不習慣進行日誌備份,您可能會遇到事務日誌大小管理的問題。
請注意,鏡像需要 FULL 恢復模型,因此它可能會影響您的數據庫維護,尤其是在您習慣使用 BULK_LOGGED 恢復模型的情況下。根據可用的網路頻寬,這也可能導致日誌大小管理問題。
兩者都需要網路頻寬,但方式不同。每次複製日誌備份時,日誌傳送都會爆發,數據庫鏡像更持久,顯然再次取決於日誌生成率。我需要知道更多才能知道兩者所需的額外頻寬量是否會影響複製流中數據的移動,從而影響那裡的延遲。
使用日誌傳送,您必須在發生故障時手動故障轉移到日誌傳送輔助節點,並且可能會失去數據(自上次日誌備份以來從主節點複製的所有數據)。然後你需要再次啟動 repl。
使用數據庫鏡像,您可以將其設置為自動故障轉移,並且您可以專門將 repl 代理作業中的故障轉移夥伴設置為在新主體(也是新發布者)上自動啟動。技巧是確保在本地集群故障轉移有機會發生之前不會發生數據庫鏡像故障轉移。您可以通過更改鏡像夥伴超時值來做到這一點。我在http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-3-Database-mirroring-failover-types-and-partner-timeouts.aspx上寫了一篇部落格。
我為 Microsoft 編寫了一份白皮書,描述瞭如何同時使用鏡像和事務複製:請參閱http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server2008-New-whitepaper-on-combining-transactional-replication-和-數據庫-mirroring.aspx。
在所有其他條件相同的情況下,我建議使用數據庫鏡像,因為它易於管理並可能減少數據失去。您可能還有其他一些我不知道的要求會阻止這種情況。
希望這可以幫助。