真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決SQLSERVERAlwayson生產(chǎn)故障問題

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

創(chuàng)新互聯(lián)是一家專業(yè)提供迭部企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為迭部眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

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

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

SQL SERVER ALWAYS ON 作為成熟的SQL SERVER 集群解決方案已經(jīng)在很多企業(yè)中應(yīng)用,但任何系統(tǒng)都不是完美的,故障也是有的,這兩天運(yùn)維的同事和我說,SQL SERVER  ALWAYS ON  的日志不在截取,瘋狂的增長(zhǎng)。 其實(shí)我聽到這個(gè)消息后,并不緊張,因?yàn)橐郧拔夜┞毜哪臣夜?,使用的SQL SERVER 2012 也有這樣的問題,最后雖然沒有找到根本原因,但問題是解決了。 

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

下面就是 一個(gè)LDF 的文件結(jié)構(gòu),每個(gè)文件里面有 多個(gè) VLF 塊,而這些塊時(shí)可以復(fù)用的,也就是當(dāng) CHECK POINT 將 dirty data  FLUSH 到數(shù)據(jù)文件后,其實(shí)這些LOG 在某些層面上已經(jīng)對(duì)數(shù)據(jù)庫沒有太大意義,是可以被DUMP掉的。

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

但為什么有時(shí)候,日志不能被截?cái)?,并且日志不能被reuse 

1  VLF 塊中有沒有被 CHECK POINT 的日志 ,也就是活動(dòng)日志,例如一個(gè)大事務(wù),一直沒有做完,那么這個(gè)VLF的文件塊時(shí)不會(huì)被覆蓋的,直到數(shù)據(jù)刷到數(shù)據(jù)文件后,才可以被CHECK POINT ,這個(gè)VLF 才可以被重用

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

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

另外我們還要明白,收縮日志有沒有必要,在我看來,還好,因?yàn)槿罩救绻麧q到800G (不是因?yàn)殄e(cuò)誤,或者各種爛 DML)造成的,那就可以不釋放,因?yàn)樗麜?huì)REUSE 空間的,你SHRINK他后,早晚還是要占用空間,而且和系統(tǒng)交換空間也有損耗,干嘛呢。

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

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

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

查詢數(shù)據(jù)庫一直是在 AVALIABILITY_REPLCA 的狀態(tài),一般這樣狀態(tài)都是因?yàn)閺膸煊袉栴}造成,例如從庫宕機(jī),從庫由于查詢(一般從庫查詢,都是大查詢,OLAP的需求),造成日志無法應(yīng)用,或者一些稀奇古怪的問題。

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

這里的經(jīng)驗(yàn)我們要重新啟動(dòng)從庫即可,另外在從庫的錯(cuò)誤日志中我發(fā)現(xiàn)了

下面的錯(cuò)誤日志:

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 (微軟官方對(duì)錯(cuò)誤的解釋和解決)

如何解決SQL SERVER  Always on 生產(chǎn)故障問題

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

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


分享題目:如何解決SQLSERVERAlwayson生產(chǎn)故障問題
分享地址:http://weahome.cn/article/gcjegs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部