<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
MySQL-5.7.32+GTID
本文講述MySQL主從切換流程,切換步驟主要針對主備正常切換以及主庫宕機備庫切換兩個場景,掌握正確的切換流程,可以有效避免切換過程中可能出現的資料不一致問題以及提高整體切換的時間
場景一:主備正常切換,此場景主要是針對在主備同步複製正常的情況下進行的主備切換,例如:災備演練,計劃性的主備切換。
1 切斷應用對主庫的流量
2 主庫備庫設定唯讀
set global read_only=ON; set global super_read_only=ON;
3 檢視備庫複製程序狀態
show slave statusG
確認Slave_IO_Running,Slave_SQL_Running狀態為YES,Seconds_Behind_Master為0
4 比對主備兩邊的GTID是否一致
獲取主備兩邊的executed_gtid集合,進行比對
select @@global.gtid_executed;
通過GTID_SUBSET函數進行比對
SELECT GTID_SUBSET(master_gtid_executed, slave_gtid_executed);
若在master_gtid_executed中的GTID,也存在slave_gtid_executed中,則返回true(1),否則返回false(0)
返回一,代表主庫GTID已經在從庫完成執行過,兩邊是一致的
5 從庫停掉複製程序並清空主從資訊
stop slave; reset slave all;
6 從庫關閉唯讀開啟讀寫,轉為新主庫
set global read_only=off; set global super_read_only=off;
7 主庫設定執行新主庫的複製鏈路,轉為新備庫,完成主從切換
CHANGE MASTER TO MASTER_HOST='192.168.1.111',MASTER_USER='xxx',MASTER_PORT=3306,MASTER_PASSWORD='xxx',master_auto_position=1 ; start slave; show slave statusG
8 應用流量切向新主庫
場景二:主庫宕機備庫切換為主庫,這種情況主要是在非同步模式或者非強一致半同步下,主庫的異常宕機,可能存在資料沒有完全同步到從庫的情況,需要去核驗追加資料。
1 對於主庫宕機,資料庫損壞沒法正常啟動時,如果binlog可以獲取,則可以對binlog進行離線分析,獲取差異的資料
獲取備庫那邊已經執行過的gtid set
select @@global.gtid_executed
如果已經寫入資料的新主庫,不能直接讀取binlog進行恢復,因為可能會出現資料不一致,主鍵衝突等問題,可以從binlog裡面排除從庫已經執行過的gtid並離線解析成sql語句,交給應用去分析是否補入資料
mysqlbinlog -vv --base64-output=decode-rows --exclude-gtids='1b80feab-4aa6-11ec-9a60-000c29a6e7be:1-10, 2b3039c9-57fa-11eb-b504-000c29ed797a:1-8256287, 3a59d149-d4b8-11eb-8cf6-000c29a6e7b4:1-10, a0a3d4b2-fff8-11eb-a420-000c29a6e7be:1-10011' /opt/mysql/log/nlog.000150 > /tmp/binlog_150_gtid.sql;
如果從庫應用還未寫入,未產生新資料,則可以從binlog裡面排除從庫已經執行過的gtid直接匯入追加資料
mysqlbinlog --exclude-gtids='1b80feab-4aa6-11ec-9a60-000c29a6e7be:1-10, 2b3039c9-57fa-11eb-b504-000c29ed797a:1-8256287, 3a59d149-d4b8-11eb-8cf6-000c29a6e7b4:1-10, a0a3d4b2-fff8-11eb-a420-000c29a6e7be:1-10011' /opt/mysql/log/nlog.000150 | mysql -uroot -p -S /opt/mysql/3306/data/mysql.sock -P3306
2 對於主庫宕機,但舊主庫可以重新啟動拉起,則在啟動後,如果新主庫應用還未寫入新資料,可以將新主庫change master複製繼續指向舊主庫,讀取未應用的紀錄檔恢復;
已經寫入資料的新主庫,不能直接讀取binlog進行恢復,因為可能會出現資料不一致,主鍵衝突等問題,而是應該將資料解析成sql語句,讓應用去分析是否補入資料。
用my2sql線上解析binlog紀錄檔獲取sql語句,需要獲取開始的紀錄檔號以及讀取位點,讀取位點可以根據--exclude-gtids排除gtid後解析binlog的開始位置讀取
my2sql -user xxxx -password xxxx -work-type 2sql -start-file /opt/mysql/log/nlog.000150 -start-pos=7940194 --add-extraInfo -output-dir /tmp/my2sql_recover
目錄下會生產forward+紀錄檔號的文字,裡面存放解析出來的sql
到此這篇關於MySQL主從切換的文章就介紹到這了,更多相關MySQL主從切換內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45