亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 詳解MySQL主從復制實戰 - 基于GTID的復制

詳解MySQL主從復制實戰 - 基于GTID的復制

熱門標簽:永州智能外呼系統 地圖標注直通車 南寧智能電銷機器人價格 邯鄲400電話注冊辦理 遂寧400電話申請 趙縣地圖標注 哈爾濱云外呼系統運營商 dq8 全地圖標注 電銷機器人市場價

 基于GTID的復制

簡介

基于GTID的復制是MySQL 5.6后新增的復制方式.

GTID (global transaction identifier) 即全局事務ID, 保證了在每個在主庫上提交的事務在集群中有一個唯一的ID.

在原來基于日志的復制中, 從庫需要告知主庫要從哪個偏移量進行增量同步, 如果指定錯誤會造成數據的遺漏, 從而造成數據的不一致.

而基于GTID的復制中, 從庫會告知主庫已經執行的事務的GTID的值, 然后主庫會將所有未執行的事務的GTID的列表返回給從庫. 并且可以保證同一個事務只在指定的從庫執行一次.

實戰

1、在主庫上建立復制賬戶并授予權限

基于GTID的復制會自動地將沒有在從庫執行的事務重放, 所以不要在其他從庫上建立相同的賬號. 如果建立了相同的賬戶, 有可能造成復制鏈路的錯誤.

mysql> create user 'repl'@'172.%' identified by '123456';

注意在生產上的密碼必須依照相關規范以達到一定的密碼強度, 并且規定在從庫上的特定網段上才能訪問主庫.

mysql> grant replication slave on *.* to 'repl'@'172.%';

查看用戶

mysql> select user, host from mysql.user;
+-----------+-----------+
| user  | host  |
+-----------+-----------+
| prontera | %   |
| root  | %   |
| mysql.sys | localhost |
| root  | localhost |
+-----------+-----------+
4 rows in set (0.00 sec)

查看授權

mysql> show grants for repl@'172.%';
+--------------------------------------------------+
| Grants for repl@172.%       |
+--------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.%' |
+--------------------------------------------------+
1 row in set (0.00 sec)

2、配置主庫服務器

[mysqld]
log_bin = /var/log/mysql/mysql-bin
log_bin_index = /var/log/mysql/mysql-bin.index
binlog_format = row
server_id = 101
gtid_mode = ON
enforce_gtid_consistency = ON
#log_slave_updates = ON

NOTE: 把日志與數據分開是個好習慣, 最好能放到不同的數據分區

enforce_gtid_consistency 強制GTID一致性, 啟用后以下命令無法再使用

create table ... select ...

mysql> create table dept select * from departments;
ERROR 1786 (HY000): Statement violates GTID consistency: CREATE TABLE ... SELECT.

因為實際上是兩個獨立事件, 所以只能將其拆分先建立表, 然后再把數據插入到表中

create temporary table

事務內部不能創建臨時表

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> create temporary table dept(id int);
ERROR 1787 (HY000): Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.

同一事務中更新事務表與非事務表(MyISAM)

mysql> CREATE TABLE `dept_innodb` (id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT);
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE TABLE `dept_myisam` (id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE = `MyISAM`;
Query OK, 0 rows affected (0.03 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into dept_innodb(id) value(1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into dept_myisam(id) value(1);
ERROR 1785 (HY000): Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.

所以建議選擇Innodb作為默認的數據庫引擎.

log_slave_updates 該選項在MySQL 5.6版本時基于GTID的復制是必須的, 但是其增大了從服務器的IO負載, 而在MySQL 5.7中該選項已經不是必須項

3、配置從庫服務器

master_info_repository 與relay_log_info_repository

在MySQL 5.6.2之前, slave記錄的master信息以及slave應用binlog的信息存放在文件中, 即master.info與relay-log.info. 在5.6.2版本之后, 允許記錄到table中. 對應的表分別為mysql.slave_master_info與mysql.slave_relay_log_info, 且這兩個表均為innodb引擎表.

[mysqld]
log_bin = /var/log/mysql/mysql-bin
log_bin_index = /var/log/mysql/mysql-bin.index
server_id = 102
# slaves
relay_log  = /var/log/mysql/relay-bin
relay_log_index = /var/log/mysql/relay-bin.index
relay_log_info_file = /var/log/mysql/relay-bin.info
enforce_gtid_consistency = ON
log_slave_updates = ON
read_only = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE

4、從庫數據初始化 - [optional]

先在主庫上備份數據

復制代碼 代碼如下:

mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases --events -u root -p > backup.sql

—master-data=2 該選項將當前服務器的binlog的位置和文件名追加到輸出文件中(show master status). 如果為1, 將偏移量拼接到CHANGE MASTER 命令. 如果為2, 輸出的偏移量信息將會被注釋。

--all-databases 因為基于GTID的復制會記錄全部的事務, 所以要構建一個完整的dump這個選項是推薦的

常見錯誤

當從庫導入SQL的時候出現

復制代碼 代碼如下:

ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

此時進入從庫的MySQL Command Line, 使用reset master即可

5、啟動基于GTID的復制

現有master@172.20.0.2和slave@172.20.0.3, 并且已經通過mysqldump將數據同步至從庫slave中. 現在在從服務器slave上配置復制鏈路

mysql> change master to master_host='master', master_user='repl', master_password='123456', master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.06 sec)

啟動復制

mysql> start slave;

啟動成功后查看slave的狀態

mysql> show slave status\G
*************************** 1. row ***************************
    Slave_IO_State: Queueing master event to the relay log
     Master_Host: master
     Master_User: repl
     Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000002
   Read_Master_Log_Pos: 12793692
    Relay_Log_File: relay-bin.000002
    Relay_Log_Pos: 1027
  Relay_Master_Log_File: mysql-bin.000002
    Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
    Replicate_Do_DB:
   Replicate_Ignore_DB:
   Replicate_Do_Table:
  Replicate_Ignore_Table:
  Replicate_Wild_Do_Table:
 Replicate_Wild_Ignore_Table:
     Last_Errno: 0
     Last_Error:
     Skip_Counter: 0
   Exec_Master_Log_Pos: 814
    Relay_Log_Space: 12794106
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
   Master_SSL_Allowed: No
   Master_SSL_CA_File:
   Master_SSL_CA_Path:
    Master_SSL_Cert:
   Master_SSL_Cipher:
    Master_SSL_Key:
  Seconds_Behind_Master: 5096
Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
 Replicate_Ignore_Server_Ids:
    Master_Server_Id: 101
     Master_UUID: a9fd4765-ec70-11e6-b543-0242ac140002
    Master_Info_File: mysql.slave_master_info
     SQL_Delay: 0
   SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: Reading event from the relay log
   Master_Retry_Count: 86400
     Master_Bind:
  Last_IO_Error_Timestamp:
  Last_SQL_Error_Timestamp:
    Master_SSL_Crl:
   Master_SSL_Crlpath:
   Retrieved_Gtid_Set: a9fd4765-ec70-11e6-b543-0242ac140002:1-39
   Executed_Gtid_Set: a9fd4765-ec70-11e6-b543-0242ac140002:1-4
    Auto_Position: 1
   Replicate_Rewrite_DB:
     Channel_Name:
   Master_TLS_Version:
1 row in set (0.00 sec)

當Slave_IO_Running, Slave_SQL_Running為YES,

且Slave_SQL_Running_State 為Slave has read all relay log; waiting for more updates時表示成功構建復制鏈路

6、總結

優點

  1. 因為不用手工設置日志偏移量, 可以很方便地進行故障轉移
  2. 如果啟用log_slave_updates那么從庫不會丟失主庫上的任何修改

缺點

  1. 對執行的SQL有一定限制
  2. 僅支持MySQL 5.6之后的版本, 而且不建議使用早期5.6版本

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL GTID全面總結
  • MYSQL數據庫GTID實現主從復制實現(超級方便)
  • MySQL5.6 GTID模式下同步復制報錯不能跳過的解決方法
  • Mysql GTID Mha配置方法
  • MySQL5.7不停業務將傳統復制變更為GTID復制的實例
  • MySQL 5.6 GTID新特性實踐
  • MySQL5.6基于GTID的主從復制
  • 在MySQL中使用GTIDs復制協議和中斷協議的教程
  • MySQL是如何實現主備同步
  • 關于mysql主備切換canal出現的問題解決
  • 基于mysql+mycat搭建穩定高可用集群負載均衡主備復制讀寫分離操作
  • MySQL GTID主備不一致的修復方案

標簽:上海 南寧 張家界 鄂州 中衛 定西 阿里 浙江

巨人網絡通訊聲明:本文標題《詳解MySQL主從復制實戰 - 基于GTID的復制》,本文關鍵詞  詳解,MySQL,主從,復制,實戰,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL主從復制實戰 - 基于GTID的復制》相關的同類信息!
  • 本頁收集關于詳解MySQL主從復制實戰 - 基于GTID的復制的相關信息資訊供網民參考!
  • 推薦文章
    韩国毛片免费大片| 日韩一级黄色大片| 日韩在线观看免费| 超级乱淫黄漫画免费| 精品视频在线观看一区二区三区| 99热精品一区| 国产一区精品| 国产精品免费久久| 青青久久国产成人免费网站| 青青青草影院| 日日夜夜婷婷| 91麻豆国产| 国产伦精品一区二区三区无广告 | 尤物视频网站在线观看| 午夜在线亚洲| 久久国产影视免费精品| 日韩男人天堂| 欧美日本免费| 国产欧美精品午夜在线播放| 韩国毛片免费| 亚欧成人乱码一区二区| 国产美女在线一区二区三区| 超级乱淫黄漫画免费| 久久福利影视| 欧美电影免费看大全| 久久精品店| 国产综合成人观看在线| 日韩av东京社区男人的天堂| 亚洲女初尝黑人巨高清在线观看| 欧美爱爱网| 91麻豆精品国产片在线观看| 亚洲 国产精品 日韩| 亚洲www美色| 黄色福利片| 国产伦精品一区二区三区无广告 | 黄视频网站在线免费观看| 欧美激情影院| 日韩一级精品视频在线观看| 高清一级做a爱过程不卡视频| 亚洲 国产精品 日韩| 一级女性大黄生活片免费| 日韩在线观看免费| 欧美国产日韩在线| 国产原创中文字幕| 久久福利影视| 韩国毛片| 久久精品店| 欧美另类videosbestsex | 国产伦久视频免费观看 视频| 国产精品自拍一区| 国产伦精品一区三区视频| 国产一区二区精品久久| 精品视频免费在线| 黄视频网站免费看| 日韩一级黄色片| 久久国产精品只做精品| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99久久网站| 91麻豆国产级在线| 国产一区免费在线观看| 尤物视频网站在线观看| 在线观看成人网 | 中文字幕一区二区三区 精品| 精品视频在线观看视频免费视频| 色综合久久天天综合绕观看| 国产一区二区精品久久91| 九九久久国产精品大片| 夜夜操天天爽| 日本特黄一级| 99久久精品国产麻豆| 可以免费看毛片的网站| 免费国产一级特黄aa大片在线| 成人高清护士在线播放| 欧美激情伊人| 日本特黄特色aa大片免费| 久久精品免视看国产成人2021| 国产亚洲精品aaa大片| 91麻豆国产| 精品久久久久久中文字幕2017| 欧美激情一区二区三区在线 | 天天做日日爱| 国产激情一区二区三区| 日韩专区在线播放| 日本特黄特黄aaaaa大片| 九九精品在线| 成人av在线播放| 精品国产一区二区三区久久久狼| 四虎影视库国产精品一区| 成人在免费观看视频国产| 99久久精品费精品国产一区二区| 久久福利影视| 免费毛片基地| 香蕉视频三级| 99久久精品国产麻豆| 日韩av片免费播放| 韩国毛片免费| 国产激情一区二区三区| 一级女性全黄久久生活片| 欧美激情影院| 你懂的国产精品| 一级女性全黄久久生活片| 国产原创中文字幕| 色综合久久天天综线观看| 在线观看成人网| 九九免费精品视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品久久久久久综合网| 麻豆系列 在线视频| 欧美1区2区3区| 精品国产亚一区二区三区| 日韩在线观看视频网站| 999久久狠狠免费精品| 欧美激情一区二区三区在线播放 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 尤物视频网站在线观看| 91麻豆精品国产高清在线| 日本伦理黄色大片在线观看网站| 国产不卡在线看| 国产国语对白一级毛片| 久久精品免视看国产成人2021| 91麻豆精品国产自产在线观看一区| 精品国产三级a∨在线观看| 久久精品欧美一区二区| 天堂网中文在线| 日韩中文字幕在线亚洲一区 | 国产视频一区在线| 国产一区二区精品久久91| 国产高清视频免费| 日日爽天天| 夜夜操天天爽| 日本特黄特色aaa大片免费| 毛片成人永久免费视频| 国产精品自拍在线观看| 欧美激情一区二区三区在线| 美女免费黄网站| 999久久66久6只有精品| 黄色短视频网站| 色综合久久手机在线| 国产欧美精品午夜在线播放| 日韩男人天堂| 日日爽天天| 在线观看成人网 | 日日爽天天| 美国一区二区三区| 日本伦理片网站| 成人免费网站视频ww| 日本特黄特色aa大片免费| 精品国产一区二区三区精东影业 | 久久福利影视| 午夜欧美成人久久久久久| 久久精品免视看国产明星| 免费一级片在线| 99热精品一区| 九九九网站| 欧美日本免费| 国产伦精品一区二区三区在线观看| 久久99这里只有精品国产| 香蕉视频三级| 亚洲 欧美 91| 亚洲精品中文字幕久久久久久| 亚洲天堂免费观看| 精品毛片视频| 麻豆网站在线看| 免费国产在线观看不卡| 黄视频网站免费| 欧美大片a一级毛片视频| 午夜在线影院| 国产麻豆精品hdvideoss| 91麻豆高清国产在线播放| 美女免费黄网站| 日本在线www| 国产视频久久久| 国产成a人片在线观看视频| 精品视频在线观看一区二区| 欧美另类videosbestsex高清 | 欧美激情一区二区三区在线播放 | 日本免费乱人伦在线观看| 天堂网中文字幕| 一级毛片视频免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 高清一级毛片一本到免费观看| 一级女性全黄生活片免费| 青青久在线视频| 欧美大片毛片aaa免费看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品视频在线看| 91麻豆tv| 国产伦理精品| 成人影视在线观看| 国产韩国精品一区二区三区| 一级毛片视频播放| 久久精品人人做人人爽97| 久久国产影院| 久久精品成人一区二区三区| 欧美激情影院| 精品毛片视频| 91麻豆国产| 天天做人人爱夜夜爽2020 | 国产成人女人在线视频观看|