1 什么是GTID
GTID(Global Transaction ID)是對(duì)于一個(gè)已提交事務(wù)的唯一編號(hào)稿黄,并且是一個(gè)全局(主從復(fù)制)唯一的編號(hào)
官方定義如下
GTID=source_id:transaction_id
7E11FA47-31CA-19E1-9E56-C43AA21293967:29
什么是server_uuid史侣,和server_id區(qū)別?
特性:server_uuid全局唯一暇榴,具備冪等性
1.2 GTID核心參數(shù)
gtid-mode=on --啟用gtid類型
enforce-gtid-consistency=true --強(qiáng)制gtid一致性
log-slave-updates=1 --slave更新是否計(jì)入日志
1.3 GTID復(fù)制配置過程:
1.3.1 清理環(huán)境
pkill mysqld
rm -rf /data/mysql/data/*
rm -rf /data/binlog/*
1.3.2 準(zhǔn)備配置文件
主庫db01:
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/data/mysql/
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=51
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt=db01 [\\d]>
EOF
slave1(db02):
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=52
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt=db02 [\\d]>
EOF
slave2(db03):
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=53
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt=db03 [\\d]>
EOF
1.3.3 初始化數(shù)據(jù)
mysqld --initialeze-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data (主庫和從庫都要執(zhí)行)
1.3.4 啟動(dòng)數(shù)據(jù)庫
/etc/init.d/mysqld start
1.3.5 開始構(gòu)建主從
master 51
slave 52,53
51:
grant replication slave on *.* to repl@'10.0.0.%' identified by '123';
52\53;
change master to
master_host='10.0.0.51',
master_user='repl',
master_password='123' ,
MASTER_AUTO_POSITION=1;
start slave;