最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL主從切換的超詳細(xì)步驟

 更新時(shí)間:2022年06月28日 11:42:32   作者:牛牛的筆記  
一般來(lái)說(shuō)在客戶的生產(chǎn)環(huán)境,每隔一段實(shí)踐就需要進(jìn)行MySQL數(shù)據(jù)庫(kù)的功能演練,主從切換,數(shù)據(jù)同步,數(shù)據(jù)備份等,下面這篇文章主要給大家介紹了關(guān)于MySQL主從切換的超詳細(xì)步驟,需要的朋友可以參考下

版本:

MySQL-5.7.32+GTID

前言:

本文講述MySQL主從切換流程,切換步驟主要針對(duì)主備正常切換以及主庫(kù)宕機(jī)備庫(kù)切換兩個(gè)場(chǎng)景,掌握正確的切換流程,可以有效避免切換過(guò)程中可能出現(xiàn)的數(shù)據(jù)不一致問(wèn)題以及提高整體切換的時(shí)間

主從環(huán)境:

場(chǎng)景一:主備正常切換,此場(chǎng)景主要是針對(duì)在主備同步復(fù)制正常的情況下進(jìn)行的主備切換,例如:災(zāi)備演練,計(jì)劃性的主備切換。

切換步驟:

 1 切斷應(yīng)用對(duì)主庫(kù)的流量

 2 主庫(kù)備庫(kù)設(shè)置只讀

set global read_only=ON;
set global super_read_only=ON;

3 查看備庫(kù)復(fù)制進(jìn)程狀態(tài)

show slave status\G

確認(rèn)Slave_IO_Running,Slave_SQL_Running狀態(tài)為YES,Seconds_Behind_Master為0

4 比對(duì)主備兩邊的GTID是否一致

獲取主備兩邊的executed_gtid集合,進(jìn)行比對(duì)

select @@global.gtid_executed;

通過(guò)GTID_SUBSET函數(shù)進(jìn)行比對(duì)

SELECT GTID_SUBSET(master_gtid_executed, slave_gtid_executed);

若在master_gtid_executed中的GTID,也存在slave_gtid_executed中,則返回true(1),否則返回false(0)

 返回一,代表主庫(kù)GTID已經(jīng)在從庫(kù)完成執(zhí)行過(guò),兩邊是一致的

5 從庫(kù)停掉復(fù)制進(jìn)程并清空主從信息

stop slave;
reset slave all;

6 從庫(kù)關(guān)閉只讀開啟讀寫,轉(zhuǎn)為新主庫(kù)

set global read_only=off;
set global super_read_only=off;

7 主庫(kù)設(shè)置執(zhí)行新主庫(kù)的復(fù)制鏈路,轉(zhuǎn)為新備庫(kù),完成主從切換

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 status\G

8 應(yīng)用流量切向新主庫(kù)

場(chǎng)景二:主庫(kù)宕機(jī)備庫(kù)切換為主庫(kù),這種情況主要是在異步模式或者非強(qiáng)一致半同步下,主庫(kù)的異常宕機(jī),可能存在數(shù)據(jù)沒有完全同步到從庫(kù)的情況,需要去核驗(yàn)追加數(shù)據(jù)。

1 對(duì)于主庫(kù)宕機(jī),數(shù)據(jù)庫(kù)損壞沒法正常啟動(dòng)時(shí),如果binlog可以獲取,則可以對(duì)binlog進(jìn)行離線分析,獲取差異的數(shù)據(jù)

獲取備庫(kù)那邊已經(jīng)執(zhí)行過(guò)的gtid set

select @@global.gtid_executed

如果已經(jīng)寫入數(shù)據(jù)的新主庫(kù),不能直接讀取binlog進(jìn)行恢復(fù),因?yàn)榭赡軙?huì)出現(xiàn)數(shù)據(jù)不一致,主鍵沖突等問(wèn)題,可以從binlog里面排除從庫(kù)已經(jīng)執(zhí)行過(guò)的gtid并離線解析成sql語(yǔ)句,交給應(yīng)用去分析是否補(bǔ)入數(shù)據(jù)

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;

如果從庫(kù)應(yīng)用還未寫入,未產(chǎn)生新數(shù)據(jù),則可以從binlog里面排除從庫(kù)已經(jīng)執(zhí)行過(guò)的gtid直接導(dǎo)入追加數(shù)據(jù)

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 對(duì)于主庫(kù)宕機(jī),但舊主庫(kù)可以重新啟動(dòng)拉起,則在啟動(dòng)后,如果新主庫(kù)應(yīng)用還未寫入新數(shù)據(jù),可以將新主庫(kù)change master復(fù)制繼續(xù)指向舊主庫(kù),讀取未應(yīng)用的日志恢復(fù);

已經(jīng)寫入數(shù)據(jù)的新主庫(kù),不能直接讀取binlog進(jìn)行恢復(fù),因?yàn)榭赡軙?huì)出現(xiàn)數(shù)據(jù)不一致,主鍵沖突等問(wèn)題,而是應(yīng)該將數(shù)據(jù)解析成sql語(yǔ)句,讓應(yīng)用去分析是否補(bǔ)入數(shù)據(jù)。

用my2sql在線解析binlog日志獲取sql語(yǔ)句,需要獲取開始的日志號(hào)以及讀取位點(diǎn),讀取位點(diǎn)可以根據(jù)--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

目錄下會(huì)生產(chǎn)forward+日志號(hào)的文本,里面存放解析出來(lái)的sql

總結(jié)

到此這篇關(guān)于MySQL主從切換的文章就介紹到這了,更多相關(guān)MySQL主從切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL計(jì)算連續(xù)3天登陸的用戶

    MySQL計(jì)算連續(xù)3天登陸的用戶

    本文主要介紹了MySQL計(jì)算連續(xù)3天登陸的用戶,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程

    Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL 5.7.17 免安裝版本的安裝配置

    MySQL 5.7.17 免安裝版本的安裝配置

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7.17 免安裝版本的安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 一文詳解MySQL?text能存多少個(gè)字符

    一文詳解MySQL?text能存多少個(gè)字符

    在我們使用mysql的時(shí)候,對(duì)字段的選用以及具體使用什么類型會(huì)很有疑問(wèn),下面這篇文章主要給大家介紹了關(guān)于MySQL?text能存多少個(gè)字符的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • mysql數(shù)據(jù)庫(kù)數(shù)據(jù)批量插入的實(shí)現(xiàn)

    mysql數(shù)據(jù)庫(kù)數(shù)據(jù)批量插入的實(shí)現(xiàn)

    本文介紹了在MySQL數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)批量插入和性能測(cè)試的方法,包括使用Navicat批量插入數(shù)據(jù)、編寫SQL測(cè)試、索引的創(chuàng)建和使用、查詢測(cè)試以及提升SQL性能的優(yōu)化方法,感興趣的可以參考一下
    2024-11-11
  • 詳談innodb的鎖(record,gap,Next-Key lock)

    詳談innodb的鎖(record,gap,Next-Key lock)

    下面小編就為大家?guī)?lái)一篇詳談innodb的鎖(record,gap,Next-Key lock)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行

    Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行

    在MySQL中,字符串分割是一個(gè)常見的操作,本文主要介紹了Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • insert...on?duplicate?key?update語(yǔ)法詳解

    insert...on?duplicate?key?update語(yǔ)法詳解

    本文主要介紹了insert...on?duplicate?key?update語(yǔ)法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 最新評(píng)論

    汶川县| 沈丘县| 涟水县| 昆明市| 景德镇市| 林西县| 洞口县| 开化县| 图木舒克市| 鹤庆县| 交口县| 连云港市| 宜良县| 曲麻莱县| 晋江市| 九江市| 衡山县| 金乡县| 都匀市| 嘉义市| 河间市| 丽水市| 高尔夫| 新和县| 宜宾县| 梁平县| 大渡口区| 阿鲁科尔沁旗| 桃园市| 凌云县| 太仓市| 浮山县| 盈江县| 黄山市| 商洛市| 蒲江县| 宝清县| 遵义县| 万载县| 法库县| 犍为县|