91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.7傳統快速切換GTID方法

發布時間:2020-05-21 15:25:31 來源:網絡 閱讀:234 作者:三月 欄目:MySQL數據庫

本文主要給大家介紹MySQL5.7傳統快速切換GTID方法,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL5.7傳統快速切換GTID方法吧。

當前場景:

某些業務場景還未開啟GTID服務組,在最新版本中,BINLOG組提交也基于GTID方式,因此如何檢測是否符合開啟GTID條件,在線切換使用GTID,以及如何快速回滾:

gtid_mode參數新選項:MySQL提供兩個額外的選項off_permissive和on_permissive

    gtid-mode的幾種狀態說明:
        off :不產生gtid,基于binlog+position,slave也不能接受gtid的日志;
        off_permissive:不產生gtid,但做為slave可以識別gtid事務也可以識別非gtid事務;
        on_permissive:產生gtid事務,slave可以處理gtid事務和非gtid事務;
        on:產生gtid事務,slave只接受gtid事務

GTID三個限制

enforce-gtid-consistency=ON時,以下三類語句時不支持的

  • CREATE TABLE ... SELECT statements

  • CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE statements inside transactions

  • Transactions or statements that update both transactional and nontransactional tables. There is an exception that nontransactional DML is allowed in the same transaction or in the same statement as transactional DML, if all nontransactional tables are temporary.

而實際上這個限制沒有必要這么嚴格,

  • CREATE TABLE ... SELECT statements

    對于binlog_format=row, gtid_next='automatic'時可以放開限制。
    生成的binlog包含兩個GTID, 一個是建表語句,一個是包含多個insert的事務。

  • 事務中包含事務表和非事務表

    對于gtid_next='automatic'時可以放開限制。
    生成的binlog包含兩個GTID, 一個是所有非事務表的,一個是所有事務表的。
    對update多表(包含事務表和非事務表)此時需額外要求binlog_format=row。   

在線開啟GTID過程如下:

① 所有的server上執行

    set @@global.enforce_gtid_consistency = warn; 特別注意: 這一步是關建的一步使用不能出現警告。會將不符合的語句記入錯誤日志

② 所有的server上執行:

    set @@global.enforce_gtid_consistency = on;

③ 所有的Server上執行(不關心最先最后,但要執行完):

    set @@global.gtid_mode = off_permissive;

④ 所有的server上執行: 

  set @@global.gtid_mode=on_permissive;

  實質在這一步驟生成的日志都是帶GTID的日志了,這個步驟號稱是不關心任何節點,但從實際管理上推薦在slave上先執行,然后再去master上執行。

⑤ 確認傳統的binlog復制完畢,該值為0

  show status like 'ongoing_anonymous_transaction_count';

  所有節點進行判斷 show status like 'ongoing_anonymous_transaction_count’; 為零

⑥ 所有的節點執行: flush logs; 用于切換一下日志。  

⑦ 所有的節點啟用gtid_mode

    set @@global.gtid_mode=on;

⑧ 啟用Gtid的自動查找節點復制:

    stop slave;

    change master to master_auto_position=1;

    start slave;

⑨ 把gtid_mode = on相關配置寫入配置文件

gtid_mode=on

enforce_gtid_consistency=on

最后可以看到傳統復制的一個變化,通過BINLOG觀察:

#171116 19:16:57 server id 2  end_log_pos 16188 CRC32 0x75584212 Anonymous_GTIDlast_committed=50sequence_number=51

#171116 19:17:03 server id 2  end_log_pos 16522 CRC32 0x3b42637e Anonymous_GTIDlast_committed=51sequence_number=52

#171116 19:19:54 server id 2  end_log_pos 16851 CRC32 0x08383e43 Anonymous_GTIDlast_committed=52sequence_number=53

#171116 19:19:59 server id 2  end_log_pos 17185 CRC32 0xd3445edc Anonymous_GTIDlast_committed=53sequence_number=54

#171116 19:21:06 server id 2  end_log_pos 17514 CRC32 0xcfd6ac97 Anonymous_GTIDlast_committed=54sequence_number=55

#171116 19:21:11 server id 2  end_log_pos 17802 CRC32 0xee11dc12 Anonymous_GTIDlast_committed=55sequence_number=56

GTID復制數據:

#171117 13:40:00 server id 2  end_log_pos 456322 CRC32 0xf7074b53 GTIDlast_committed=1036sequence_number=1132

#171117 13:40:00 server id 2  end_log_pos 456725 CRC32 0xcb86f0b2 GTIDlast_committed=1036sequence_number=1133

#171117 13:40:00 server id 2  end_log_pos 457128 CRC32 0x8b14303e GTIDlast_committed=1036sequence_number=1134

#171117 13:40:00 server id 2  end_log_pos 457533 CRC32 0x4f492e18 GTIDlast_committed=1036sequence_number=1135

#171117 13:40:00 server id 2  end_log_pos 457940 CRC32 0xf0b078b6 GTIDlast_committed=1036sequence_number=1136

#####從GTID模式到傳統模式過程:

① 在SLAVE:

stop slave;

    mysql> show slave status\G;

    *************************** 1. row ***************************

                   Slave_IO_State: 

                      Master_Host: 192.168.1.130

                      Master_User: dlan

                      Master_Port: 3306

                    Connect_Retry: 60

                  Master_Log_File: mysql-bin.000010

              Read_Master_Log_Pos: 458282

               同時執行:

    change master to master_auto_position=0,MASTER_LOG_FILE='mysql-bin.000010',MASTER_LOG_POS=458282;

    start slave;

②在MS上執行:

SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

③在MS上執行

SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

④在MS上執行

SELECT @@GLOBAL.GTID_OWNED;  ##都為空就可以

⑤關閉GTID

SET @@GLOBAL.GTID_MODE = OFF;

最后觀察又GTID又是匿名:

#171117 14:32:38 server id 2  end_log_pos 319730 CRC32 0xc26f13a7 Anonymous_GTID last_committed=699sequence_number=793

#171117 14:32:38 server id 2  end_log_pos 320133 CRC32 0xf480c415 Anonymous_GTIDlast_committed=699sequence_number=794

#171117 14:32:38 server id 2  end_log_pos 320538 CRC32 0xa65ed8f1 Anonymous_GTIDlast_committed=699sequence_number=795

#171117 14:32:38 server id 2  end_log_pos 320945 CRC32 0xb7330b5e Anonymous_GTIDlast_committed=699sequence_number=796

#171117 14:32:38 server id 2  end_log_pos 321348 CRC32 0x619e04bb Anonymous_GTIDlast_committed=699sequence_number=797

#171117 14:32:38 server id 2  end_log_pos 321751 CRC32 0x250f903c Anonymous_GTIDlast_committed=699sequence_number=798

#171117 14:32:38 server id 2  end_log_pos 322156 CRC32 0x247a96f9 Anonymous_GTIDlast_committed=699sequence_number=799

看完以上關于MySQL5.7傳統快速切換GTID方法,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。

向AI問一下細節

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

AI

长泰县| 靖边县| 平塘县| 全椒县| 东台市| 三都| 三穗县| 峡江县| 涞水县| 澎湖县| 桓台县| 丹寨县| 锦州市| 遂川县| 区。| 孟州市| 买车| 五河县| 嘉禾县| 裕民县| 辛集市| 九台市| 通州市| 普兰店市| 谷城县| 自治县| 肥西县| 屯留县| 台中县| 温泉县| 峨眉山市| 白水县| 上思县| 铜山县| 河北省| 资中县| 东阳市| 尼勒克县| 彭泽县| 青海省| 常山县|