事件起因:近期有研發反應,某資料庫從08切換到12環境後,不定期出現寫操作提交延遲的問題;
事件分析:在排除了系統資源爭用等問題後,初步分析可能由於網路抖動導致同步模式alwayson節點經常出現會話逾時等待提交的問題導致。
經過排查,擴充事件裡發現不定期出現35202錯誤,這是一條副本串連恢複的訊息。
由於機房網路環境複雜,資料庫伺服器和應用伺服器混用一個交換器,在業務高峰期時,因上聯連接埠流量打滿而導致串連失敗的情況屢有發生。
既然短期內無法改造網路環境,那就從SQLSERVER伺服器自身出發,只對資料同步的部分進行改造;
現有環境:
SQL AG:為兩節點的同步模式,兩個節點各有一塊網卡串連到交換器,沒有直連心跳線(WSFC也不再要求有獨立的心跳網路)
改造方案:
1、兩個節點各啟用一塊網卡,採用直連方式進行通訊,同時配置私人地址
複製代碼 代碼如下:
Server_A:10.0.0.11
Server_B:10.0.0.12
2、刪除兩個節點的endpoint,手動重新建立Listener_IP為直連IP的endpoint
3、更改AG中,每個副本的endpoint_url
4、等待資料重新同步;
其中第三步的指令碼如下,要在兩個節點上分別操作,注意Listener_IP為直連網卡的IP
複製代碼 代碼如下:
/****** Object: Endpoint [Hadr_endpoint] Script Date: 2015/1/6 16:06:17 ******/
DROP ENDPOINT [Hadr_endpoint]
GO
/****** Object: Endpoint [Hadr_endpoint] Script Date: 2015/1/6 16:06:17 ******/
CREATE ENDPOINT [Hadr_endpoint]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = (10.0.0.11))
FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
第四步的指令碼如下,在主副本執行即可
複製代碼 代碼如下:
ALTER AVAILABILITY GROUP [Alwayson01]
MODIFY REPLICA ON N'Node_01' WITH (ENDPOINT_URL = N'TCP://10.0.0.11:5022')
ALTER AVAILABILITY GROUP [Alwayson01]
MODIFY REPLICA ON N'Node_02' WITH (ENDPOINT_URL = N'TCP://10.0.0.12:5022')
注意:刪除endpoint後兩副本即為未同步狀態,但接聽程式和AG組中的資料庫不受影響,對應用而言,主副本的服務仍然正常;