四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

mysqd實例服務(wù)hang住的檢測思路及方案

  對于mysql數(shù)據(jù)庫架構(gòu)為雙主復(fù)制模式的不少技術(shù)朋友都非常困惑,如何準(zhǔn)確判斷mysqld服務(wù)是否能正常提供服務(wù),以及能否自動判斷并且進(jìn)行主機(jī)的切換?同時,對mysqld服務(wù)的檢測機(jī)制要求消耗資源少、判斷簡單且準(zhǔn)確、開發(fā)和維護(hù)成本低等。我們在實際的生產(chǎn)環(huán)境檢測過程中,也曾經(jīng)犯過錯誤,為此寫一篇短小的文章,把相關(guān)經(jīng)驗、思路、做法分享給大家,為更多的技術(shù)朋友起到答疑解惑。

  要想做到自動切換提供數(shù)據(jù)庫服務(wù)請求的主備服務(wù)器關(guān)鍵,就是要確定雙主復(fù)制架構(gòu)中的mysql數(shù)據(jù)庫實例是否能正常提供服務(wù)請求,最讓人頭疼的就是mysqld服務(wù)出現(xiàn)hang住的情況。那么mysqld服務(wù)hang住的時候,會有哪些表象呢?先列出本人及圈內(nèi)朋友們出現(xiàn)過的情況:

  ● 不能對數(shù)據(jù)庫中的對象或數(shù)據(jù)執(zhí)行修改性操作,但能正常執(zhí)行查詢操作;

  ● 能對系統(tǒng)數(shù)據(jù)庫(備注:mysql、information_schema)的對象或數(shù)據(jù)進(jìn)行查詢操作,不能對非系統(tǒng)數(shù)據(jù)庫的對象和數(shù)據(jù);

  ● 只能對虛擬數(shù)據(jù)庫(備注: information_schema)的對象及數(shù)據(jù)進(jìn)行查詢操作,不能對其他數(shù)據(jù)庫的對象和數(shù)據(jù);

  ● 不能對對任何數(shù)據(jù)庫的對象或數(shù)據(jù)進(jìn)行查詢操作,但是能執(zhí)行SHOW PROCESSLIST;

  ● 不能對對任何數(shù)據(jù)庫的對象或數(shù)據(jù)進(jìn)行查詢操作,也不能執(zhí)行SHOW PROCESSLIST,但是可以執(zhí)行部分SHOW操作,例如:SHOW STATUS;

  ● 其他,還未發(fā)現(xiàn)的狀態(tài)信息;

  針對上述mysqld服務(wù)hang住的情況做一個分析及匯總,可以發(fā)現(xiàn)其有一些共同特征,總結(jié)如下:

  ● mysqld服務(wù)存在,且能ping或telNET;

  ● 能接受客戶端發(fā)送過來的請求,但是不繼續(xù)處理,而是停留在其發(fā)生hang住的當(dāng)下SQL執(zhí)行的狀態(tài);

  ● 若能執(zhí)行SHOW PROCESSLIST的話,能看到所有的SQL執(zhí)行狀態(tài)停留不變;

  ● 數(shù)據(jù)庫服務(wù)器的LOAD會突然下降,甚至LOAD下降為0,CPU、IO等都會接近沒負(fù)荷狀態(tài);

  ● 若mysqld服務(wù)發(fā)生hang住的時候,一般都無法對數(shù)據(jù)庫的對象或數(shù)據(jù)執(zhí)行修改性質(zhì)的操作;

  文章開篇描述了mysqld服務(wù)hang住的時候,mysqld接受、處理服務(wù)請求的情況,以及數(shù)據(jù)庫服務(wù)器的狀態(tài)信息,既然可以發(fā)現(xiàn)這些特征,那么對于常用檢測mysqld服務(wù)是否還活著或者網(wǎng)絡(luò)是否通的辦法:

  ● ping或telNET mysqld服務(wù)的端口;

  ● 通過執(zhí)行SHOW 命令;

  ● 通過執(zhí)行SELECT查詢操作;

  上述三類檢測辦法是否能真正做到準(zhǔn)確檢測呢?答案是:NO,只能準(zhǔn)確監(jiān)測到mysqld進(jìn)程是否活著、程序與數(shù)據(jù)庫服務(wù)器之間的網(wǎng)絡(luò)是否暢通,對于mysqld服務(wù)能否正常接收和完成處理請求,就無法做到或者部分做到,綜合上述分析信息,以及從目前我們將近三年實施效果看,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改操作,再配合程序?qū)?shù)據(jù)修改操作的判斷邏輯是最穩(wěn)妥的方法,詳細(xì)步驟:

  ● 檢測頻率為:每隔10S,對當(dāng)前提供服務(wù)的mysqld數(shù)據(jù)庫實例上的檢測表,做一次UPDATE操作,探測數(shù)據(jù)庫實例是否正常提供服務(wù);

  ● 若上一次數(shù)據(jù)庫實例服務(wù)檢測操作,沒有正常返回更新信息,則每隔1S做一次數(shù)據(jù)庫檢測表的UPDATE操作,總共做2次探測;

  ● 若前兩個步驟的數(shù)據(jù)庫實例服務(wù)探測結(jié)束,當(dāng)前提供服務(wù)的數(shù)據(jù)庫實例服務(wù)都沒恢復(fù)正常,則每隔5MS對數(shù)據(jù)庫檢測表再做一次UPDATE操作,總共檢測三次,若還是沒有正常返回信息,則認(rèn)定此數(shù)據(jù)庫實例服務(wù)不能正常接收服務(wù)請求;

  用于執(zhí)行數(shù)據(jù)庫實例服務(wù)檢測的表結(jié)構(gòu)和UPDATE操作SQL為:

CREATE TABLE monitor_db(
ID
SMALLINT UNSIGNED NOT NULL AUTO_INCREMNET,
CreateDate
TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(ID)
)ENGINE
=InnoDB CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
INSERT INTO monitor_db VALUES(1,NOW()),(2,DATE_ADD(NOW(),INTERVAL -1 DAY))

it知識庫mysqd實例服務(wù)hang住的檢測思路及方案,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 姐妹在线观看| 猫小帅三十六计| 秋天不回来吉他谱扫弦| 韩国青草视频| 化学奥林匹克竞赛初赛试题| 1024电影| 尤克里里指弹谱| 操范冰冰| 烟草二维码识别扫描器| 张志文| 朱迅身高| 张俪床戏| 唐街十三妹| 内蒙古电视台雷蒙| 蜘蛛侠在线观看| 脓毒血症护理查房ppt| 三夫 电影| 漂流者| 一拜天地双男主| 色女孩视频| 吴汉润| 一条路千山万水| 视频精品| 孤独感拉满的头像| 电影《kiskisan》在线播放| 好戏一出| 光明力量2古代封印攻略| bustybuffy| 扩内需| 谍变1939全部演员表| 啊啊操| 英雄卡片简单又漂亮| 李赫洙| 电影《迷雾》完整版免费播放高清| 王宝强盲井| 萧明| 布丽特妮·罗伯森| 护送钱斯| 黄网站在线免费| 新版731部队电影免费| 齐芳|