日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
講解一下MySQLGTID主從復制

GTID是一個基于原始MySQL服務器生成的一個已經(jīng)被成功執(zhí)行的全局事務ID,它由服務器ID以及事務ID組合而成。這個全局事務ID不僅僅在原始服務器器上唯一,在所有存在主從關系 的mysql服務器上也是唯一的。正是因為這樣一個特性使得mysql的主從復制變得更加簡單,以及數(shù)據(jù)庫一致性更可靠。本文主要描述了快速配置一個基于GTID的主從復制架構,供大家參考。

創(chuàng)新互聯(lián)公司專注于平壩企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,商城網(wǎng)站制作。平壩網(wǎng)站建設公司,為平壩等地區(qū)提供建站服務。全流程定制網(wǎng)站設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

一、GTID的概念

1、全局事務標識:global transaction identifiers。
2、GTID是一個事務一一對應,并且全局唯一ID。
3、一個GTID在一個服務器上只執(zhí)行一次,避免重復執(zhí)行導致數(shù)據(jù)混亂或者主從不一致。
4、GTID用來代替?zhèn)鹘y(tǒng)復制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS開啟復制。而是使用MASTER_AUTO_POSTION=1的方式開始復制。
5、MySQL-5.6.5開始支持的,MySQL-5.6.10后開始完善。
6、在傳統(tǒng)的slave端,binlog是不用開啟的,但是在GTID中slave端的binlog是必須開啟的,目的是記錄執(zhí)行過的GTID(強制)。

二、GTID的組成

GTID = source_id:transaction_id
source_id,用于鑒別原服務器,即mysql服務器唯一的的server_uuid,由于GTID會傳遞到slave,所以也可以理解為源ID。
transaction_id,為當前服務器上已提交事務的一個序列號,通常從1開始自增長的序列,一個數(shù)值對應一個事務。        
示例:          
3E11FA47-71CA-11E1-9E33-C80AA9429562:23
前面的一串為服務器的server_uuid,即3E11FA47-71CA-11E1-9E33-C80AA9429562,后面的23為transaction_id

三、GTID的優(yōu)勢

1、更簡單的實現(xiàn)failover,不用以前那樣在需要找log_file和log_pos。
2、更簡單的搭建主從復制。
3、比傳統(tǒng)的復制更加安全。
4、GTID是連續(xù)的沒有空洞的,保證數(shù)據(jù)的一致性,零丟失。

四、GTID的工作原理

1、當一個事務在主庫端執(zhí)行并提交時,產(chǎn)生GTID,一同記錄到binlog日志中。
2、binlog傳輸?shù)絪lave,并存儲到slave的relaylog后,讀取這個GTID的這個值設置gtid_next變量,即告訴Slave,下一個要執(zhí)行的GTID值。
3、sql線程從relay log中獲取GTID,然后對比slave端的binlog是否有該GTID。
4、如果有記錄,說明該GTID的事務已經(jīng)執(zhí)行,slave會忽略。
5、如果沒有記錄,slave就會執(zhí)行該GTID事務,并記錄該GTID到自身的binlog,
  在讀取執(zhí)行事務前會先檢查其他session持有該GTID,確保不被重復執(zhí)行。
6、在解析過程中會判斷是否有主鍵,如果沒有就用二級索引,如果沒有就用全部掃描。

五、配置GTID

對于GTID的配置,主要修改配置文件中與GTID特性相關的幾個重要參數(shù)(建議使用mysql-5.6.5以上版本),如下:
1、主:
[mysqld]
#GTID:
server_id=135                #服務器id
gtid_mode=on                 #開啟gtid模式
enforce_gtid_consistency=on  #強制gtid一致性,開啟后對于特定create table不被支持

#binlog
log_bin=master-binlog
log-slave-updates=1    
binlog_format=row            #強烈建議,其他格式可能造成數(shù)據(jù)不一致

#relay log
skip_slave_start=1            

2、從:
[mysqld]
#GTID:
gtid_mode=on
enforce_gtid_consistency=on
server_id=143

#binlog
log-bin=slave-binlog
log-slave-updates=1
binlog_format=row      #強烈建議,其他格式可能造成數(shù)據(jù)不一致

#relay log
skip_slave_start=1

六、配置基于GTID的復制

1、新配置的mysql服務器
對于新配置的mysql服務器,按本文第五點描述配置參數(shù)文件后,在slave端執(zhí)行以下操作
(root@localhost) [(none)]> CHANGE MASTER TO  
   ->  MASTER_HOST='192.168.1.135',    
   ->  MASTER_USER='repl',    
   ->  MASTER_PASSWORD='xxx',    
   ->  MASTER_PORT=3306,    
   ->  MASTER_AUTO_POSITION = 1;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

(root@localhost) [(none)]> start slave;
Query OK, 0 rows affected (0.01 sec)

(root@localhost) [(none)]> show slave status \G ###可以看到復制工作已經(jīng)開始且正常
*************************** 1. row ***************************
              Slave_IO_State: Waiting for master to send event
                 Master_Host: 192.168.1.135
                 Master_User: repl
                 Master_Port: 3306
               Connect_Retry: 60
             Master_Log_File: master-binlog.000001
         Read_Master_Log_Pos: 151
              Relay_Log_File: slave-relay-log.000002
               Relay_Log_Pos: 369
       Relay_Master_Log_File: master-binlog.000001
            Slave_IO_Running: Yes
           Slave_SQL_Running: Yes

2、已運行經(jīng)典復制mysql服務器轉向GTID復制
a、按本文第五點描述配置參數(shù)文件;
b、所有服務器設置global.read_only參數(shù),等待主從服務器同步完畢;
       mysql> SET @@global.read_only = ON;
c、依次重啟主從服務器;
d、使用change master 更新主從配置;
       mysql> CHANGE MASTER TO
       > MASTER_HOST = host,
       > MASTER_PORT = port,
       > MASTER_USER = user,
       > MASTER_PASSWORD = password,
       > MASTER_AUTO_POSITION = 1;
e、從庫開啟復制
       mysql> START SLAVE;
f、驗證主從復制  

網(wǎng)頁標題:講解一下MySQLGTID主從復制
網(wǎng)站地址:http://www.5511xx.com/article/dhoosdj.html