MYSQL-5.7-主从复制[半同步]

部署环境:

  • centos7.2.1511
  • community mysql-5.7.22
  • 已经搭建好mysql服务

注:以下主从配置是基于GTID模式以及半同步模式
需要注意不能使用以下几点:
使用 create table … select 语句方法
在事务中使用Create temporary table 建立事务表以及非事务表
使用关联更新事务表核非事务表

  • 主从架构
    • master[M:10.0.1.201]
    • slave01[S2:10.0.1.202]
    • slave02[S2:10.0.1.203]
    • salve03[S3:10.0.1.204]

部署搭建:

  • 配置半同步

注: 主从配置需要主库开启binlog日志
配置server-id server-id 不能一致
gtid模式 需要添加gtid_mode=on 表示启动gitd模式。

  • 在SQL终端安装MySQL半同步插件并启动
install plugin rpl_semi_sync_master soname 'semisync_master.so';
set global  rpl_semi_sync_master_enabled=1;
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
set global  rpl_semi_sync_slave_enabled=1;
  • 主服务器配置my.cnf增加信息
log-bin=mysql-bin
server_id = 100
gtid_mode = on
enforce-gtid-consistency
log-slave-updates = on
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
  • 从服务器配置my.cnf增加信息
server_id = 101
log-bin=mysql-bin
gtid_mode = on
enforce-gtid-consistency
log-slave-updates = on
read_only = on
master_info_repository = TABLE
relay_log_info_repository =TABLE
rpl_semi_sync_slave_enabled=1
rpl_semi_sync_master_wait_point = AFTER_SYNC

配置步骤:

  • 创建同步账号
grant replication slave on *.* to 'sync'@'10.0.1.%' identified by '123123'; 
  • 从主数据库导出
mysqldump --single-transaction --master-data=2 --triggers  --routines  \
--all-databases -uroot -proot > all.sql
  • 传到所有的从数据库并导入

注: 可以使用SCP推送到各个从库上面去,其它从服务器可以继续按照以下方式进行推送。如果是多实例本机直接可以指定sock导入即可。如果有做SSH认证可以忽略输入密码,如果第一次连接从服务器需要输入”yes” 再次输入密码。

  • 推送到从服务器
scp all.sql root@10.0.1.202:~
scp all.sql root@10.0.1.203:~
scp all.sql root@10.0.1.204:~
  • 在所有的从库导入数据库
mysql -uroot -proot -f <all.sql
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注