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

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • MySQL 數據庫遷移工作筆記----連接抓取、展示與異常連接

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

發布時間:2020-07-22 08:46:07 來源:網絡 閱讀:651 作者:Amnesiasun 欄目:數據庫

背景:由于公司機房網絡調整,需要調整一批mysql 數據庫的服務器IP,在新環境中已經搭建好新架構(keepalive+lvs),并需要開發工程師配合修改程序配置,共有2個業務,9臺服務器,50多個實例。

1、抓取連接腳本

---從繁重的重復工作中解脫出來

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

#!/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數據庫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信息存入文件,也可直接循環執行
# 將文件中信息存入核心數據庫,忽略表結構           
    cat $StatFile | while read ip  port username host           
    do                   
        /bin/mysql  -h數據庫IP -u用戶名  -p 密碼’ -P端口  庫名 -Bse "insert into mysql_db_proce(db_ip,port,username,app_host) values ('$IP','$port','$username','$host');"           
    done       
done


2、信息展示

-----讓我的結果更好看

①抓取連接腳本加入到計劃任務中,每分鐘執行一次

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

③可以使用sql語句進行查詢,但仍比較繁瑣,眾多的服務器依然需要重復執行sql,讓人厭煩

④因此使用了最近學習的python用 django 搭建了簡單的web頁面進行展示,具體的結構都很簡單,就是從數據庫中查詢數據,傳到模板中進行渲染就好了

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

默認展示最近一分鐘數據,添加了搜索框,可以根據IP,端口號進行篩選。

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

3、碰到的連接異常

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

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

抓到的連接顯示是他的服務器,因此需要幫助他定位到問題點

①開啟mysql general-log抓取連接具體信息(因為此時主庫已不可寫,binlog中查不到信息),根據頁面信息,抓取了五分鐘數據,

查找到具體執行的sql,提供給開發確認

②開發以知曉具體程序,但檢查配置已經修改了,懷疑是其他單獨布置的腳本未使用vip,因此抓取網絡信息,查看使用的是什么ip連接的數據庫

在數據庫服務器上執行命令:

netstat –lna | grep ‘應用服務器IP’

即可看到該程序使用的數據庫IP是什么,發現確實為VIP,此時我們已經解決不了該問題了,需要交給開發仔細查找

③最后,經過他告訴我說是有一個進程,從昨天開始就一直在執行,新配置沒生效

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

4、思考

DBA進行數據庫變更后,每次都需要開發配合進行修改,這應該存在架構上的問題,每次都需要開發等到半夜很久,也是令人討厭的一件事

怎樣在架構上進行更改,讓數據庫配置對應用程序透明,做到基本無感,應該是接下來應該考慮的事情。 夜深人靜,晚安

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

向AI問一下細節

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

AI

镇安县| 青浦区| 长岭县| 常山县| 富阳市| 安塞县| 攀枝花市| 馆陶县| 含山县| 岳西县| 柞水县| 连平县| 浙江省| 会宁县| 偃师市| 安康市| 庆安县| 濮阳市| 丁青县| 白河县| 安平县| 沧州市| 沾化县| 梅州市| 凌云县| 巧家县| 广河县| 福海县| 新营市| 广西| 青冈县| 红河县| 治县。| 揭阳市| 天台县| 景东| 招远市| 乌审旗| 托克逊县| 清水县| 陆良县|