999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MySQL從庫延遲故障

2020-08-11 09:37:24
網(wǎng)絡(luò)安全和信息化 2020年8期
關(guān)鍵詞:數(shù)據(jù)庫故障信息

編者按:筆者此次遇到某客戶的MySQL數(shù)據(jù)庫出現(xiàn)了Slave庫操作延遲的故障,給數(shù)據(jù)的查詢操作帶來了很大的影響,最終判斷是向其中添加大量的數(shù)據(jù)導(dǎo)致從節(jié)點(diǎn)難以應(yīng)對(duì)。

某單位的管理系統(tǒng)后端采用的是MySQL數(shù)據(jù)庫,安裝的都是CentOS 7.X,硬件配置為八核心的CPU,32 GB內(nèi)存。

為了提高性能,系統(tǒng)配置了MySQL主從復(fù)制架構(gòu)。Master庫主要執(zhí)行數(shù)據(jù)的寫入操作,Slave庫主要提供屬于的查詢操作。

該系統(tǒng)最近以來,出現(xiàn)了Slave庫操作延遲的故障,表現(xiàn)為延遲將近一個(gè)小時(shí)后才恢復(fù)正常,這給數(shù)據(jù)的查詢操作帶來了不利的影響。

故障排查

對(duì)于MySQl主從復(fù)制延遲故障來說,在很多情況下都是因?yàn)橹鲙斓腄ML操作引發(fā)的。例如,當(dāng)主庫存在慢查詢操作,自然會(huì)引起從庫的延遲。

但是筆者觀察主庫的慢查詢?nèi)罩荆]有在發(fā)生從庫延遲的時(shí)間段內(nèi)發(fā)現(xiàn)慢查詢操作,這說明該問題和主庫的慢查詢無關(guān)。對(duì)從庫的日志信息進(jìn)行查看,也沒有發(fā)現(xiàn)執(zhí)行過慢查詢語句的情況。

慢查詢?nèi)罩静⒎侵粫?huì)記錄執(zhí)行比較慢的DML語句,只要DML語句的執(zhí)行超過了指定的時(shí)間,都可以稱之為慢查詢。默認(rèn)設(shè)置下,執(zhí)行超過10 s的語句才會(huì)被記錄到慢查詢?nèi)罩局小T贛ySQL控制臺(tái)中執(zhí)行“show global status like'%slow_queries%'”命令,查看從MySQL服務(wù)啟動(dòng)以后慢查詢語句的總量。

打開“/data/mysql/auditlogs/server_audit.log”文件,查看MySQL的審計(jì)日志,發(fā)現(xiàn)在延遲的時(shí)間段內(nèi)出現(xiàn)了大量的并發(fā)插入操作,這些數(shù)量很大的插入操作很有可能引發(fā)從庫的延遲故障。

要想深入查看MySQL歷史操作信息,還必須依靠其二進(jìn)制日志來實(shí)現(xiàn)。在二進(jìn)制日志中記錄了MySQL的所有DDL和DML語句信息,當(dāng)然,對(duì)于Select語句來說是不記錄的。對(duì)于所記錄的每條語句,還會(huì)顯示其消耗的時(shí)間。根據(jù)這些內(nèi)容,就可以清晰的了解上述插入語句的相關(guān)執(zhí)行情況。

使用VI等工具是無法查看MySQL的二進(jìn)制日志的,必須使用自帶的mysqlbinlog工具來查看。

例如,執(zhí)行“mysqlbinlog mysql-bin.00000x”命令,可以查看指定的二進(jìn)制日志內(nèi)容,其中的“x”表示具體的編號(hào)。因?yàn)槲覀冎皇菍?duì)發(fā)生從庫延遲的時(shí)間段看,所以需要過濾該時(shí)間段內(nèi)的日志信息。

執(zhí)行“mysqlbinlog--no-defaults --startdatetime='2020-01-10 10:20:00' --stop-datetime='2020-01-10 11:10:00' --base64-output=decoderows -vv mysql-bin.00xxxx> sql.txt”命令,將指定時(shí)間段的日志信息導(dǎo)出到目標(biāo)文件中。

因?yàn)樾枰樵冊(cè)摃r(shí)間段的插入語句執(zhí)行情況,所以執(zhí)行“cat mysql.txt|grep-v SET |grep INSERT|wc-l”命令,來過濾其中的插入語句的數(shù)量信息。根據(jù)查詢到的結(jié)構(gòu),發(fā)現(xiàn)在該時(shí)間段內(nèi)執(zhí)行了500多萬次的數(shù)據(jù)Insert操作。毫無疑問,大量的Insert操作自然會(huì)導(dǎo)致從庫應(yīng)接不暇,出現(xiàn)延遲故障就不足為奇了。

接下來需要探查究竟是哪些數(shù)據(jù)表進(jìn)行了大量的插入操作,就可以準(zhǔn)確的判斷問題的根源。

使 用“iostat” “iotop”命令,可以幫助用戶了解磁盤I/O信息。對(duì)于數(shù)據(jù)表的I/O情況進(jìn)行分析,就需要使用到“pt-ioprofile”這款實(shí)用工具,該工具包含在Percona-Toolkit軟件包 中,執(zhí) 行“yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IOSocket-SSL” “yum install https://www.percona.com/redir/downloads/perconarelease/redhat/0.1-6/percona-release-0.1-6.noarch.rpm” “yum install percona-toolkit”命令,來安裝該工具包。

當(dāng)從庫再次出現(xiàn)延遲故障時(shí),執(zhí)行“pt-ioprofile--profile-process=my sqld --run-time=120--save-samples=mysql_ioprofile.txt --groupby=filename --cell=sizes--aggregate=avg”命令,來收集其120 s內(nèi),MySQL數(shù)據(jù)庫中存在I/O操作的文件信息,以及各種調(diào)用平均每秒產(chǎn)生的數(shù)據(jù)量。

其中“profile-process”參數(shù)為指定MySQL的進(jìn)程名,“run-time”參數(shù)指定采集時(shí)間,“save-samples”參數(shù)指定輸出文件名稱,“-groupby”參數(shù)執(zhí)行聚合的方式,這里采用的文件聚合方式?!癱ell”參數(shù)指定系統(tǒng)調(diào)用傳輸數(shù)據(jù)量,“aggregate”參數(shù)指定計(jì)算平均值。

并且在返回信息中的“filename”列中顯示MySQL各數(shù)據(jù)表和日志名稱,在“total”列中顯示了對(duì)應(yīng)的在指定時(shí)間中產(chǎn)生的數(shù)據(jù)量,在“pread” “pwrite”以及“fsync”列中顯示了對(duì)應(yīng)的讀取、寫入和同步的數(shù)據(jù)量。

根據(jù)這些信息,可以看出究竟哪些數(shù)據(jù)表產(chǎn)生的I/O數(shù)據(jù)量最大。

故障解決

根據(jù)以上分析,可以看到在MySQL中名為“cdrdat”和“docutk1”的數(shù)據(jù)表產(chǎn)生的I/O量很大。在這兩個(gè)表中存儲(chǔ)了大量的基礎(chǔ)數(shù)據(jù)。執(zhí)行“crontab -l”命令,查看當(dāng)前用戶的定時(shí)任務(wù)信息,發(fā)現(xiàn)其中存在幾個(gè)腳本文件,其作用就是按照指定的時(shí)間,向上述MySQL中添加大量的數(shù)據(jù)。

筆者了解到,由于該管理系統(tǒng)正在進(jìn)行優(yōu)化和調(diào)整,需要向其中添加大量的數(shù)據(jù)。因此,開發(fā)部門人員為了提高效率,就編寫了相應(yīng)的腳本程序,利用計(jì)劃任務(wù)定時(shí)向MySQL中插入大量的數(shù)據(jù)。

但是數(shù)據(jù)庫管理員人員對(duì)其并不了解,大量的數(shù)據(jù)插入操作必然導(dǎo)致主節(jié)點(diǎn)的磁盤I/O處于忙碌狀態(tài),在指定的時(shí)間段向從節(jié)點(diǎn)寫入大量數(shù)據(jù),導(dǎo)致從節(jié)點(diǎn)難以應(yīng)對(duì),才出現(xiàn)了以上延遲的問題。

處理的方法是,對(duì)上述腳本進(jìn)行優(yōu)化,使其在多個(gè)時(shí)間段內(nèi)分批向MySQL插入數(shù)據(jù),來降低對(duì)MySQL的數(shù)據(jù)寫入的壓力,以保證MySQL主從復(fù)制結(jié)構(gòu)可以正常運(yùn)作。

針對(duì)上述故障,可以看出當(dāng)MySQL出現(xiàn)較大的訪問量時(shí),必須對(duì)其進(jìn)行優(yōu)化處理,才可以避免故障的發(fā)生。一般來說,可以使用主從復(fù)制,讀寫分離和負(fù)載均衡等方法來實(shí)現(xiàn)。對(duì)于SQL語句進(jìn)行優(yōu)化,也可以有效的提高數(shù)據(jù)庫運(yùn)行效率。

因?yàn)镾QL語句編寫平庸,沒有使用索引等問題,同樣會(huì)導(dǎo)致數(shù)據(jù)庫性能低下。例如,建立索引可以提高查詢速度,在諸如Where、Order by以及Group by等語句涉及的列上建立索引,來提高查詢速度等。使用Explain可以選擇更好的索引和優(yōu)化查詢語句,它基于圖形化或基于文本的方式,詳細(xì)說明了SQL語句的每個(gè)部分的執(zhí)行情況,通過選擇更好的索引列,對(duì)費(fèi)時(shí)較長SQL語句進(jìn)行優(yōu)化,來提高查詢速度。

對(duì)于體積較大的數(shù)據(jù)表來說,可以采取分表的辦法,來降低數(shù)據(jù)庫的數(shù)據(jù)庫的負(fù)擔(dān)提高查詢的效能。對(duì)于數(shù)據(jù)量很大但是訪問的用戶很少的情況,可以采取分表的方法加以應(yīng)對(duì)。對(duì)于數(shù)據(jù)量不大但訪問用戶很多的情況,才可以采取分庫的方法,來解決數(shù)據(jù)庫端并發(fā)量大的問題。

猜你喜歡
數(shù)據(jù)庫故障信息
故障一點(diǎn)通
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數(shù)據(jù)庫
奔馳R320車ABS、ESP故障燈異常點(diǎn)亮
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
故障一點(diǎn)通
江淮車故障3例
展會(huì)信息
主站蜘蛛池模板: 激情视频综合网| www成人国产在线观看网站| 亚洲最大看欧美片网站地址| 最新亚洲人成网站在线观看| 毛片免费观看视频| 热思思久久免费视频| 无码专区在线观看| 一级毛片视频免费| 无码一区二区三区视频在线播放| 国产精品九九视频| 日韩无码黄色网站| 亚洲福利一区二区三区| 久久无码免费束人妻| 久久精品91麻豆| 黄色a一级视频| 婷婷色丁香综合激情| v天堂中文在线| 国产噜噜在线视频观看| 五月婷婷中文字幕| 黄色网在线| 无码 在线 在线| 青青极品在线| 国产麻豆福利av在线播放| 欧美亚洲激情| 九九热免费在线视频| 精品国产香蕉伊思人在线| 日韩欧美中文字幕一本| 国产精品久久久久久久久久久久| 鲁鲁鲁爽爽爽在线视频观看| 女人18毛片一级毛片在线 | 亚洲香蕉在线| 91精品网站| 亚洲av无码牛牛影视在线二区| 又猛又黄又爽无遮挡的视频网站| 久久99精品久久久久纯品| 毛片免费视频| 国产午夜精品一区二区三区软件| 亚卅精品无码久久毛片乌克兰| 日韩精品成人网页视频在线| 999国产精品| 麻豆精品在线播放| 91福利片| 亚洲精品成人福利在线电影| 中文字幕在线看| 国产在线精品99一区不卡| 欧美色99| 国产自视频| 欧洲一区二区三区无码| 波多野结衣在线se| 成人午夜精品一级毛片| 国产精品无码一二三视频| 国产欧美视频在线观看| 一本大道在线一本久道| 四虎永久免费在线| 久久综合激情网| 亚洲国产精品成人久久综合影院| 色偷偷一区二区三区| 日韩毛片视频| 国产免费久久精品99re丫丫一| 精品国产污污免费网站| 在线中文字幕日韩| 黄色网在线| 国产综合精品一区二区| 色综合中文| 精品在线免费播放| 日韩精品一区二区深田咏美| a级免费视频| 伊在人亞洲香蕉精品區| 午夜小视频在线| 欧美成人影院亚洲综合图| 精品人妻无码区在线视频| 一级在线毛片| 精品久久久无码专区中文字幕| 欧美第九页| 久久青青草原亚洲av无码| 99视频在线免费看| 欧美日本在线一区二区三区| 亚洲中文字幕23页在线| 全裸无码专区| 国产精品美女网站| 久久综合伊人77777| 91精品免费高清在线|