基于GTID的mysql主从同步配置指南(全量备份场景)

一、环境准备(主从库均需配置)

主库配置:
# my.cnf 核心配置项
[mysqld]	# 不是[mysql]
server-id = 100                 # 全局唯一,建议用IP末段(如200)
log-bin = /var/lib/mysql/mysql-bin.log
binlog_format = ROW             # 推荐行级复制模式
gtid_mode = ON                  # 启用GTID简化故障切换
enforce_gtid_consistency = ON	
expire_logs_days = 7            # 日志保留7天
bind-address = 0.0.0.0		# 开启其他任意ip访问(或指定ip)
从库配置:
[mysqld]
server-id = 130            # 与主库不同,集群中唯一
relay-log = relay-bin    # 开启中继日志
read_only = ON           # 从库只读(可选)
gtid_mode = ON           # 若主库启用GTID则需同步开启
enforce_gtid_consistency = ON

二、主库操作流程

# 1. 创建复制专用用户(主库执行)
mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'SecurePass123!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

# 2. 全量备份(保留GTID信息)
mysqldump --all-databases \
          --triggers --routines --events \
          --single-transaction \
          -u root -p \
          > /backup/full_dump_$(date +%F).sql

三、从库初始化操作

1. 清空旧数据(新mysql实例可跳过)
mysql> RESET MASTER;
mysql> STOP SLAVE;
mysql> RESET SLAVE ALL;
2. 导入全量备份
mysql -u root -p < /path/to/full_dump_2025-04-06.sql
3. 验证GTID状态
mysql> SELECT @@GLOBAL.GTID_EXECUTED;
+------------------------------------------+
| @@GLOBAL.GTID_EXECUTED                   |
+------------------------------------------+
| 3b09f929-7f22-11ec-a1f7-00125d123456:1-100 |
+------------------------------------------+

四、建立GTID复制链路

-- sql 从库执行(关键配置)
CHANGE MASTER TO
    MASTER_HOST = '192.168.100.10',
    MASTER_PORT = 3306,
    MASTER_USER = 'repl',
    MASTER_PASSWORD = 'SecurePass123!',
    MASTER_AUTO_POSITION = 1;  -- 启用GTID自动定位
START SLAVE;

五、验证复制状态

--  sql查看复制线程状态
SHOW SLAVE STATUS;

关键指标验证

Slave_IO_State: Waiting for source to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Retrieved_Gtid_Set: 3b09f929-7f22-11ec-a1f7-00125d123456:1-100
Executed_Gtid_Set: 3b09f929-7f22-11ec-a1f7-00125d123456:1-150
Seconds_Behind_Master: 0

六、扩展:GTID复制优势

  1. 故障切换更可靠:无需记录binlog文件名和位置
  2. 自动容错:自动跳过已应用的事务
  3. 一致性保障:全局事务ID确保数据一致性
  4. 级联复制简化:从库可以作为其他从库的主库

注意事项

server_uuid唯一性:检查/var/lib/mysql/auto.cnf确保主从不重复
时间同步:主从服务器需配置NTP同步
版本一致性:主从MySQL大版本需保持一致
网络策略:确保3306和随机端口通信畅通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值