我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

MySQL 8.0.11 innodb cluster 运维管理手册之三 增加节点

作者 方连超

假设
innodb cluster集群跑了1年,突然某个节点挂掉了,这个时候,日志也已经没有binlog.000001了,如果在线增加一个从库呢,官方给出基于mysqlbackup
的恢复方式,在剩余从库上做备份,在新从库上恢复,这里有些技术点,我忽略了,苦恼很久。

创建实验环境:

  1. 频繁操作数据写入库,切换四个binlog。flush logs , show binary logs
    MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点
    MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

  2. 观察从库日志时间信息
    从库1的binlog 和 relay-log
    MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

从库2的binlog 和relay-log
MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

可以看到,主库切换日志,从库并不进行切换

  1. 清理掉第1,2个binglog,再写入一些数据,
    PURGE MASTER LOGS TO 'binlog.000003';

  2. 此时一个从库挂掉了,重启主机
  3. 主库继续人工写入数据,发现从库挂掉了,需要添加

步骤1 全量备份:

mysqlbackup --host=127.0.0.1 --port=3310 --user=backup --password=$$$$$$$$  --no-history-logging --backup-dir=/data/backup/fullbak   --with-timestamp backup-and-apply-log

--no-history-logging 因为 在从库操作,不能写备份信息到数据库中

步骤2:拷贝到新从机恢复从库

备份压缩拷贝到从机,并解压

scp root@192.168.181.105:/data/backup/fullbak/2018-07-25_14-32-32.tar.gz .
tar -xzvf 2018-07-25_14-32-32.tar.gz

拷贝活着的从库的配置文件,修改组复制部分的信息

步骤3:继续往主库插入数据

步骤4:恢复新增实例

恢复从库数据库
mysqlbackup --defaults-file=/data/mysql_3310_test/conf/my.cnf --backup-dir=/data/backup/fullbak/2018-07-26_20-59-35 copy-back-and-apply-log

步骤5:清理旧信息

关闭日志记录:

set sql_log_bin=off;
use mysql
delete from slave_relay_log_info ;
delete from slave_master_info ;
set  sql_log_bin=on;

注意这里不能执行
Reset master 和reset slave

Drop database mysql_innodb_cluster_metadata

重启一次数据库,应该没有报错了

步骤6 shell删除和增加实例

强制删除挂掉的实例
cluster.removeInstance('root@mysql4:3310',{force:1})

增加实例
cluster.addInstance('root@mysql4:3310')

踩坑记录

组复制的增加成员方式和innodb cluster集群增加成员方式不同,

  • . 组复制 有reset master 和reset slave 操作,还包括了设置gtid的操作
    set @@GLOBAL.GTID_PURGED='80d2433f-8f24-11e8-a8df-000c29f1584d:123';

  • . Innodb cluster, 不能做 reset master ,因为记录了备份库执行到的gtid 值,
    应该使用 mysql shell 删除和增加 实例

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 8.0.11 innodb cluster 运维管理手册之三增加节点

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录