SQLServer 2012中設(shè)置AlwaysOn解決網(wǎng)絡(luò)抖動(dòng)導(dǎo)致的提交延遲問(wèn)題
事件起因:近期有研發(fā)反應(yīng),某數(shù)據(jù)庫(kù)從08切換到12環(huán)境后,不定期出現(xiàn)寫(xiě)操作提交延遲的問(wèn)題;
事件分析:在排除了系統(tǒng)資源爭(zhēng)用等問(wèn)題后,初步分析可能由于網(wǎng)絡(luò)抖動(dòng)導(dǎo)致同步模式alwayson節(jié)點(diǎn)經(jīng)常出現(xiàn)會(huì)話超時(shí)等待提交的問(wèn)題導(dǎo)致。
經(jīng)過(guò)排查,擴(kuò)展事件里發(fā)現(xiàn)不定期出現(xiàn)35202錯(cuò)誤,這是一條副本連接恢復(fù)的消息。
由于機(jī)房網(wǎng)絡(luò)環(huán)境復(fù)雜,數(shù)據(jù)庫(kù)服務(wù)器和應(yīng)用服務(wù)器混用一個(gè)交換機(jī),在業(yè)務(wù)高峰期時(shí),因上聯(lián)端口流量打滿而導(dǎo)致連接失敗的情況屢有發(fā)生。
既然短期內(nèi)無(wú)法改造網(wǎng)絡(luò)環(huán)境,那就從SQLSERVER服務(wù)器自身出發(fā),只對(duì)數(shù)據(jù)同步的部分進(jìn)行改造;
現(xiàn)有環(huán)境:
SQL AG:為兩節(jié)點(diǎn)的同步模式,兩個(gè)節(jié)點(diǎn)各有一塊網(wǎng)卡連接到交換機(jī),沒(méi)有直連心跳線(WSFC也不再要求有獨(dú)立的心跳網(wǎng)絡(luò))
改造方案:
1、兩個(gè)節(jié)點(diǎn)各啟用一塊網(wǎng)卡,采用直連方式進(jìn)行通信,同時(shí)配置私有地址
Server_A:10.0.0.11
Server_B:10.0.0.12
2、刪除兩個(gè)節(jié)點(diǎn)的endpoint,手動(dòng)重新創(chuàng)建Listener_IP為直連IP的endpoint
3、更改AG中,每個(gè)副本的endpoint_url
4、等待數(shù)據(jù)重新同步;
其中第三步的腳本如下,要在兩個(gè)節(jié)點(diǎn)上分別操作,注意Listener_IP為直連網(wǎng)卡的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
第四步的腳本如下,在主副本執(zhí)行即可
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后兩副本即為未同步狀態(tài),但偵聽(tīng)器和AG組中的數(shù)據(jù)庫(kù)不受影響,對(duì)應(yīng)用而言,主副本的服務(wù)仍然正常;
相關(guān)文章
SQL建立數(shù)據(jù)庫(kù)及刪除數(shù)據(jù)庫(kù)命令
SQL建立數(shù)據(jù)庫(kù)及刪除數(shù)據(jù)庫(kù)命令,需要使用sqlserver的朋友可以參考下。2011-11-11SQL中字段自增(IDENTITY,序列Sequence)的兩種方法
本文主要介紹了SQL中字段自增,主要包括IDENTITY,序列Sequence的兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Cont()與Where().Count()有時(shí)性能差別如此之大!
今天在修改后臺(tái)用戶公司管理列表時(shí),發(fā)現(xiàn)列表加載超慢的bug!好幾十秒??!數(shù)據(jù)是相對(duì)其他的列表是稍微多點(diǎn),不過(guò)也就4000多條,之前是好的,為啥這么慢呢?2010-03-03MSSQL 計(jì)算兩個(gè)日期相差的工作天數(shù)的語(yǔ)句
MSSQL計(jì)算兩個(gè)日期相差的工作天數(shù)的代碼,需要的朋友可以參考下。2009-09-09SQL Server內(nèi)存遭遇操作系統(tǒng)進(jìn)程壓榨案例分析
最近一臺(tái)DB服務(wù)器偶爾出現(xiàn)CPU報(bào)警,我的郵件報(bào)警閾值設(shè)置的是15%,開(kāi)始時(shí)沒(méi)當(dāng)回事,以為是有什么統(tǒng)計(jì)類的查詢,后來(lái)越來(lái)越頻繁2014-03-03執(zhí)行一條sql語(yǔ)句update多條記錄實(shí)現(xiàn)思路
如果你想更新多行數(shù)據(jù),并且每行記錄的各字段值都是各不一樣,你會(huì)怎么辦呢?本文以一個(gè)示例向大家講解下如何實(shí)現(xiàn)如標(biāo)題所示的情況,有此需求的朋友可以了解下2013-08-08SQL update 多表關(guān)聯(lián)更新的實(shí)現(xiàn)代碼
這篇文章主要介紹了SQL update 多表關(guān)聯(lián)更新的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-09-09SQL Server簡(jiǎn)單模式下誤刪除堆表記錄恢復(fù)方法(繞過(guò)頁(yè)眉校驗(yàn))
這篇主旨是揭示堆表的刪除記錄找回的原理,我所考慮的方面并不適用于每個(gè)人的每種情況,望大家見(jiàn)諒2013-01-01