MySQL數(shù)據(jù)庫遷移工作筆記----連接抓取、展示與異常連接-創(chuàng)新互聯(lián)

背景:由于公司機(jī)房網(wǎng)絡(luò)調(diào)整,需要調(diào)整一批mysql 數(shù)據(jù)庫的服務(wù)器IP,在新環(huán)境中已經(jīng)搭建好新架構(gòu)(keepalive+lvs),并需要開發(fā)工程師配合修改程序配置,共有2個業(yè)務(wù),9臺服務(wù)器,50多個實(shí)例。

成都創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端網(wǎng)站建設(shè)公司成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、全網(wǎng)營銷推廣、小程序開發(fā)、微信公眾號開發(fā)、成都網(wǎng)站營銷服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為成都隧道混凝土攪拌車企業(yè)提供源源不斷的流量和訂單咨詢。

1、抓取連接腳本

---從繁重的重復(fù)工作中解脫出來

為了使切換的過程更高效并解放自己的雙手,編寫了簡單的shell腳本,定時抓取連接并存儲至核心數(shù)據(jù)庫,簡單的例子:

#!/bin/bash                                                                                                     StatFile="/var/log/status/processlist.txt" #獲取IP信息         IP=`/sbin/ifconfig | egrep -A 1 "eth[0-4] " | egrep "inet " | egrep -v "192.168|:10."| awk -F'[ :]+' '{print $4}' | sed -n "1p"` if [[ $IP = '' ]]        then            IP=`/sbin/ifconfig | egrep -A 1 "eth[0-4] " | egrep "inet " | egrep  "192.168|:10."| awk -F'[ :]+' '{print $4}' | sed -n "1p"`        fi # port.txt 存儲端口號 cat /var/log/port.txt | while read port                                                                                    do                   /bin/mysql -h數(shù)據(jù)庫IP -uroot -p'密碼' -P$port information_schema -Bse "select '$IP','$port',user,substring_index(host,':',1) as host from  PROCESSLIST where user not in ('root','system user') group by user,substring_index(host,':',1);" > $StatFile # 此處將show processlist信息存入文件,也可直接循環(huán)執(zhí)行 # 將文件中信息存入核心數(shù)據(jù)庫,忽略表結(jié)構(gòu)                cat $StatFile | while read ip  port username host                do                            /bin/mysql  -h數(shù)據(jù)庫IP -u用戶名  -p 密碼’ -P端口  庫名 -Bse "insert into mysql_db_proce(db_ip,port,username,app_host) values ('$IP','$port','$username','$host');"                done        done

2、信息展示

-----讓我的結(jié)果更好看

①抓取連接腳本加入到計(jì)劃任務(wù)中,每分鐘執(zhí)行一次

②這時可以從核心庫中查看到連接信息,根據(jù)表中的update_time字段判斷當(dāng)前最新時間的連接情況

③可以使用sql語句進(jìn)行查詢,但仍比較繁瑣,眾多的服務(wù)器依然需要重復(fù)執(zhí)行sql,讓人厭煩

④因此使用了最近學(xué)習(xí)的python用 django 搭建了簡單的web頁面進(jìn)行展示,具體的結(jié)構(gòu)都很簡單,就是從數(shù)據(jù)庫中查詢數(shù)據(jù),傳到模板中進(jìn)行渲染就好了

MySQL 數(shù)據(jù)庫遷移工作筆記----連接抓取、展示與異常連接

默認(rèn)展示最近一分鐘數(shù)據(jù),添加了搜索框,可以根據(jù)IP,端口號進(jìn)行篩選。

⑤這樣在與開發(fā)進(jìn)行溝通的時候,更加清晰,再也不是黑白頁面了(●ˇ?ˇ●),雖然很簡單

3、碰到的連接異常

整個工作進(jìn)行的很順利,但在切換到最后的時候,頁面中看到有一個業(yè)務(wù)的寫庫一直有一臺web的連接進(jìn)來,于是詢問開發(fā)是否有配置未同步,

他搜索了很久告訴我用到的地方都已經(jīng)修改完了,沒找到。

抓到的連接顯示是他的服務(wù)器,因此需要幫助他定位到問題點(diǎn)

①開啟mysql general-log抓取連接具體信息(因?yàn)榇藭r主庫已不可寫,binlog中查不到信息),根據(jù)頁面信息,抓取了五分鐘數(shù)據(jù),

查找到具體執(zhí)行的sql,提供給開發(fā)確認(rèn)

②開發(fā)以知曉具體程序,但檢查配置已經(jīng)修改了,懷疑是其他單獨(dú)布置的腳本未使用vip,因此抓取網(wǎng)絡(luò)信息,查看使用的是什么ip連接的數(shù)據(jù)庫

在數(shù)據(jù)庫服務(wù)器上執(zhí)行命令:

netstat –lna | grep ‘應(yīng)用服務(wù)器IP’

即可看到該程序使用的數(shù)據(jù)庫IP是什么,發(fā)現(xiàn)確實(shí)為VIP,此時我們已經(jīng)解決不了該問題了,需要交給開發(fā)仔細(xì)查找

③最后,經(jīng)過他告訴我說是有一個進(jìn)程,從昨天開始就一直在執(zhí)行,新配置沒生效

④紀(jì)錄下這個問題,以后可能還會遇到,修改配置后,最好把程序進(jìn)程都檢查一遍

4、思考

DBA進(jìn)行數(shù)據(jù)庫變更后,每次都需要開發(fā)配合進(jìn)行修改,這應(yīng)該存在架構(gòu)上的問題,每次都需要開發(fā)等到半夜很久,也是令人討厭的一件事

怎樣在架構(gòu)上進(jìn)行更改,讓數(shù)據(jù)庫配置對應(yīng)用程序透明,做到基本無感,應(yīng)該是接下來應(yīng)該考慮的事情。 夜深人靜,晚安

                                                   MySQL 數(shù)據(jù)庫遷移工作筆記----連接抓取、展示與異常連接

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文名稱:MySQL數(shù)據(jù)庫遷移工作筆記----連接抓取、展示與異常連接-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article6/eijog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站制作、ChatGPT網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)