中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決SQL SERVER Always on 生產故障問題

發布時間:2021-12-06 11:25:02 來源:億速云 閱讀:387 作者:柒染 欄目:大數據

如何解決SQL SERVER  Always on 生產故障問題,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

最近忙的要死,手底下各種優化,數據庫系統,各種問題,恨不得長上8只手干這些活,而偏偏屋漏偏逢連夜雨,SQL SERVER  ALWAYS ON  又出了問題,SQL SERVER 目前公司使用的是 WINDOWS 2016 ENTERPRISE +  SQL SERVER 2016 ENTERPRISE ALWAYS ON 的集群,來支撐公司部分業務。

如何解決SQL SERVER  Always on 生產故障問題

SQL SERVER ALWAYS ON 作為成熟的SQL SERVER 集群解決方案已經在很多企業中應用,但任何系統都不是完美的,故障也是有的,這兩天運維的同事和我說,SQL SERVER  ALWAYS ON  的日志不在截取,瘋狂的增長。 其實我聽到這個消息后,并不緊張,因為以前我供職的某家公司,使用的SQL SERVER 2012 也有這樣的問題,最后雖然沒有找到根本原因,但問題是解決了。 

OK ,我們先看看SQL SERVER 的日志,SQL SERVER 的日志文件是LDF,對于外行來說,它就是一個文件,但實際上,對DBA來說他是一個可循環的 capped collection (此概念為MONGODB的一個概念,這里引用一下雖然不完全相同,但意思是這個意思)。

下面就是 一個LDF 的文件結構,每個文件里面有 多個 VLF 塊,而這些塊時可以復用的,也就是當 CHECK POINT 將 dirty data  FLUSH 到數據文件后,其實這些LOG 在某些層面上已經對數據庫沒有太大意義,是可以被DUMP掉的。

如何解決SQL SERVER  Always on 生產故障問題

但為什么有時候,日志不能被截斷,并且日志不能被reuse 

1  VLF 塊中有沒有被 CHECK POINT 的日志 ,也就是活動日志,例如一個大事務,一直沒有做完,那么這個VLF的文件塊時不會被覆蓋的,直到數據刷到數據文件后,才可以被CHECK POINT ,這個VLF 才可以被重用

2 VLF 的尾部必須是 FREE  VLF ,如果碰巧你的 有 4個 VLF 而恰巧  TAIL 和 HEAD  在一個 VLF 中,那這樣的日志也是不能被收縮的,除非數據寫到VLF1 ,舉個例子,如果有一個壁虎,如果讓他釋放自己的空間,你說他是愿意從頭砍下去,還是從尾部砍下去。所以下面的情況也是不能收縮日志。

如何解決SQL SERVER  Always on 生產故障問題

另外我們還要明白,收縮日志有沒有必要,在我看來,還好,因為日志如果漲到800G (不是因為錯誤,或者各種爛 DML)造成的,那就可以不釋放,因為他會REUSE 空間的,你SHRINK他后,早晚還是要占用空間,而且和系統交換空間也有損耗,干嘛呢。

如果你想看你的日志文件到底什么狀態,鍵入 dbcc loginfo 就可以知道了,狀態為 2的 是激活的,不可以SHRINK的文件

如何解決SQL SERVER  Always on 生產故障問題

我們回到為什么日志不能被截取,其實這個說法不準確,應該是問日志為什么一直在激活的狀態,而不能背釋放,在我們這次故障中,明顯就是 ALWAYS ON 的日志沒有在從庫上被應用完畢。造成的問題

查詢數據庫一直是在 AVALIABILITY_REPLCA 的狀態,一般這樣狀態都是因為從庫有問題造成,例如從庫宕機,從庫由于查詢(一般從庫查詢,都是大查詢,OLAP的需求),造成日志無法應用,或者一些稀奇古怪的問題。

如何解決SQL SERVER  Always on 生產故障問題

這里的經驗我們要重新啟動從庫即可,另外在從庫的錯誤日志中我發現了

下面的錯誤日志:

Error: 19432, Severity: 16, State: 0. Always On Availability Groups transport has detected a missing log block for availability database "database_name". LSN of last applied log block is (xxxx:xxxxxxx:x). Log scan will be restarted to fix the issue. This is an informational message only. No user action is required.

按照微軟官方的 FIX (微軟官方對錯誤的解釋和解決)

如何解決SQL SERVER  Always on 生產故障問題

我們需要打上 SQL SERVER 2016 SP1  SP2的補丁來解決問題。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

刚察县| 瑞昌市| 宁波市| 昭苏县| 永顺县| 大连市| 江北区| 龙州县| 潞西市| 武宣县| 蓝山县| 平阳县| 崇义县| 巴彦县| 吴堡县| 周口市| 三河市| 蓬溪县| 东丽区| 衡阳市| 广宗县| 南江县| 贵德县| 神池县| 齐齐哈尔市| 固镇县| 韶山市| 勐海县| 普兰县| 兴海县| 石嘴山市| 房山区| 郸城县| 钦州市| 武穴市| 天祝| 贵溪市| 永春县| 建湖县| 灵丘县| 阿坝|