一次主库binlog删除一起的mgr集群从库不停recoving

在一个由三个MySQL实例组成的MGR集群中,由于主库binlog删除,从库进入不断恢复的状态。在磁盘空间不足时,主库清理binlog后,从库无法同步,因为它们仍然使用旧的GTID信息。解决方案包括停止group_replication,重置主库,更新从库的gtid_purged。这强调了数据磁盘空间、binlog管理和避免随意删除binlog的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次主库binlog删除一起的mgr集群从库不停recoving

问题描述:

三个用docker容器部署的mysql实例,组建了一个mgr集群
在重启docker容器后,进行压测。此时只三台机器都未加入mysql group replication
对master进行性能压测,构建测试库
过程中出现问题:数据盘写满了 ----drop未成功都testdb,删除多余binlog
binlog序号为1->11

开始prepare run 直到全部压测完毕
先简单解释下磁盘满的原因:我的数据盘是50G,在压测过程中,一共创建了32个表,每个test表有5000000rows
由于mysql group replication只支持row格式的binlog(冲突校验),所以压测过程中会让binlog暴增

进行到这里,觉得只对主库压测,没那么爽,开始启动集群,对整个集群压测,并查看主库跟从库对延迟等信息,然后启动mgr集群等时候出现问题

mgr集群信息如下:

SELECT MEMBER_HOST, MEMBER_ROLE FROM performance_schema.replication_group_members
`pt-table-sync` 是 Percona Toolkit 中的一个实用工具,用于实时地将 MySQL 主库上的表同步到从上,常用于高可用环境中的数据复制。以下是使用 `pt-table-sync` 进行同步的基本步骤: 1. 安装 `pt-table-sync`:如果你还没有安装,首先需要在从服务器上安装 Percona Toolkit。可以访问 Percona 的官方网站下载最新版本的安装包。 2. 准备连接信息:你需要提供主库和从之间的详细连接参数,包括主机名、用户名、密码、端口号以及要同步的具体数据和表名。 ```bash # 示例命令格式,替换为实际值 TABLESYNC_USER="username" TABLESYNC_PASS="password" TABLESYNC_HOST="master_host" TABLESYNC_PORT="master_port" TABLESYNC_DB="your_database" TABLESYNC_TABLE="your_table" ``` 3. 启动同步:使用 `pt-table-sync` 命令,并指定上述配置。例如: ```bash pt-table-sync --user=$TABLESYNC_USER \ --password=$TABLESYNC_PASS \ --host=$TABLESYNC_HOST \ --port=$TABLESYNC_PORT \ --master-db=$TABLESYNC_DB \ --table=$TABLESYNC_TABLE \ --binlog-server-id=slave_id \ --event-history-file=sync_log.txt \ --run-asynchronously ``` `-binlog-server-id` 参数指定了从binlog server id,以便主库识别它;`--run-asynchronously` 表示异步模式,允许在后台运行,而不会阻塞。 4. 监控与管理:同步完成后,你可以通过检查日志文件 (`sync_log.txt`) 来了解同步过程是否成功,以及任何遇到的问题。如果需要定期自动同步,可以将其设置为定时任务或脚本形式运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值