Sql-Server

如何減少鏡像期間的網路延遲?

  • March 5, 2022

我們使用 SQL Server 2008 R2 標準版進行鏡像。

但是我們發現網路延遲太高了。在鏡像處於活動狀態時,完成一個事務需要將近四倍的時間。是否可以用直接交叉線將這兩個伺服器連接起來,強制sql server使用這個連結進行鏡像?那會有幫助嗎?

我們已經在這兩個伺服器之間設置了交叉電纜。但是我們如何配置 sql server 使用這個連結進行鏡像呢?

任何幫助將不勝感激。

對於弱網路,我個人不會使用鏡像。但是,如果您真的想在連接速度較慢的特定情況下進行鏡像,則可以選擇使用非同步模式(或高性能模式)。這意味著可能會失去一些數據,但您將能夠更快地完成事務。

MSDN 上的詳細資訊:非同步鏡像。關於它的一些細節:

這種模式以犧牲高可用性為代價來提高性能。高性能模式僅使用主體伺服器和鏡像伺服器。鏡像伺服器上的問題永遠不會影響主體伺服器。在主伺服器失去時,鏡像數據庫被標記為 DISCONNECTED,但可用作熱備用。

現在需要注意的是,Principal 上的事務只是放在隊列中,它不會立即在 Mirror 上送出,因此如果 Principal 出現問題,您可能會失去數據。但至少您不會等待交易在兩台伺服器上完成。檢查它是否是一個選項。

關於為連接指定不同的 NIC,請參閱以下問題:

理論上它應該足夠簡單,將兩個 NIC 配置為不同的 IP 並使用 IP 連接到 SQL Server(而不是伺服器名稱)。另外我認為@Nathan 的回答可能會引導您解決問題。不知道是否可以使用現有的鏡像來完成,我的猜測是你需要重做它。

如果它是一個不可靠的網路,那麼第一句話更重要。在那種情況下,我完全建議對 HA 使用不同的技術(日誌傳送或複制)。

PS:在@Nathan 提到閱讀實際要求(ty,@NathanJolly)之後,您仍然可以選擇配置 NIC,以便您可以通過直接連結電纜進行連接。遵循其他答案和問題,看看它是否適合您的環境。如果它仍然太慢,那麼我建議你移到log shipping

您應該能夠使用CREATE ENDPOINT / ALTER ENDPOINTLISTENER_IP選項將鏡像綁定到特定的 IP 地址(交叉電纜的 IP 地址) 。

據推測,這將涉及通過使用ALTER DATABASE SET PARTNER…重新配置您的鏡像數據庫,以通過 IP 而不是主機名指向您的另一個端點。

我不確定這是否可以在不破壞鏡像的情況下安全地完成,所以希望其他人可以對此有所了解,或者您可以先在開發環境(或虛擬機)中對其進行測試。

引用自:https://dba.stackexchange.com/questions/42413