栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL基于GTID的复制配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL基于GTID的复制配置

MySQL基于GTID的复制配置

GTID(Global Transaction ID, 全局事务ID), 其保证在每个主服务器上提交的事务在复制集群中可以生成一个唯一的ID, GTID由source_id和transaction_id组成. 从MySQL5.6开始支持.

1.配置主数据库服务器 1.1 在主服务器上建立复制专用账号

create user ‘用户名’@‘IP段’ identified by ‘密码’;

1.2 为该账户授权

grant replication slave on . to ‘用户名’@‘IP段’;

1.3 修改主服务器数据库配置文件

#指定binlog文件名, 只要配置了名称即开启binlog
log_bin = mysql-bin
#服务id, 在集群中需唯一
server_id = 100
#启用GTID模式
gtid_mode = on
#强制gtid一致性, 保证事务安全
enforce_gtid_consistency = on
启用该参数后:
不能使用create table…select;
不能在事务中使用create temporary table;
不能使用关联更新事务表和非事务表
#如果该从服务器作为其他从服务器的主服务器,则必须开启
log_slave_updates = on

2.配置从数据库服务器 2.1 修改从服务器数据库配置文件

#服务id, 在集群中需唯一
server_id = 201
#启用GTID模式
gtid_mode = on
#指定relay_log文件名
relay_log = relay_log
#强制gtid一致性, 保证事务安全
enforce_gtid_consistency = on
#如果该从服务器作为其他从服务器的主服务器,则必须开启
log_slave_updates = on
#如果该从服务器是只读的, 则配置该值. 防止程序误操作
read_only = on
#设置从服务器连接主服务器的信息以及中继日志等相关信息保存到表中, 默认存储在文件中
master_info_repository = table
relay_log_info_repository = table

2.2 同步主数据库数据

1.冷拷贝 mysqldump --master-data=2 -single-transaction
示例:
mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p123456 >> all.sql

2.热拷贝 xtrabackup --slave-info

3.在从数据库服务器上启动复制链路
  1. 设置链路
    change master to
    master_host=‘主数据库ip’,
    master_port=主数据库端口,
    master_user=‘上面创建的账号’,
    master_password=‘密码’,
    master_auto_position=1;
  2. 启动链路
    start slave
  3. 停止链路
    stop slave
  4. 重置链路
    reset slave
  5. 查看链路状态
    show slave status

注意: 如果执行start slave报 “ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository” , 可用reset slave重置链路后再启动.

4.优点
  • 可以很方便进行故障转移
  • 从库不会丢失主库上的任何修改
5.缺点
  • 故障处理比较复杂
  • 对执行的SQL有一定的限制
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872616.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号