MySQL主从复制-基于GTID复制

MySQL主从复制-基于GTID复制的优缺点

一、 概念及原理

MySQL主从复制-基于GTID复制_第1张图片

什么事GTID 从MySQL5.6开始支持的复制方式

GTID即全局事务ID,其保证为每个在主上提交的事务在复制集群中可以生成一个唯一的ID

GTID = source_id:transaction_id其中source_id是执行主库server uuid的值

二、配置

CREATE USER 'wx'@'192.168.163.103' IDENTIFIED BY 'root';
GRANT REPLICATION SLAVE ON *.* TO 'wx'@'192.168.163.103';

配置主数据库服务器

server_id=102
log_bin=mysql-bin
#开启gtid
gtid_mode=on
#启用后无法创建表 
enforce_gtid_consistency=1
#用于从服务中主服务器发送修改日志
log_slave_updates=on
master_info_repository=TABLE#建议
relay_log_info_repository=TABLE#建议

配置 从数据库服务器

server_id=103
relay_log=relay_log
gtid_mode=on
enforce_gtid_consistency=1
log_slave_updates=on
#可选 安全配置可以阻止任何没有sql语句权限账号对数据进行修改
read_only=on#建议
master_info_repository=TABLE#建议
relay_log_info_repository=TABLE#建议

​ 初始化从服务器数据

mysqldump --master-data=2-single-transaction
# 示例从主数据导出sql
mysqldump  --all-databases --single-transaction --routines --events --triggers --master-data  -uroot -p> all.sql
# scp all.sql [email protected]:/root   从库导入
mysql -uroot -p < all.sql;

启动基于GTID的复制

 CHANGE MASTER TO
         MASTER_HOST='192.168.163.102',
         MASTER_USER='wx',
         MASTER_PASSWORD='root',
         MASTER_AUTO_POSITION=1;
#重置之前的slave
stop slave;
reset slave;
start slave;

优点:

  • 可以很方便的进行故障转移
  • 从库不会丢失主库上的任何修改

缺点:

  • 故障处理比较复杂
  • 对执行的sql有一定的限制

如何选择复制模式要考虑的问题

  • 使用的MySQL版本

  • 复制架构及主从切换的方式

  • 所使用的高可用管理组件

  • 对应用的支撑程度

    推荐gtid方式

你可能感兴趣的:(主从复制,mysql,mysql,数据库,sql)