MySQL8.0 不停机配置主从
文章目录
- 使用 Percona 的 XtraBackup 对数据库进行物理备份
- 在从库进行数据恢复
- 根据备份数据获取 binlog 具体位置,在从库配置拉取日志开始位置,进行主从同步
安装 xtrabackup
- MySQL8.0 使用 8.0; MySQL5.7 使用 2.4
- https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
安装
|
|
创建备份用户
- 创建 xtrabackup 生成全备用户
|
|
- 创建从库同步用户
|
|
备份数据
-
利用 xtrabackup 不停机进行物理备份
-
如果已有全备、增倍数据,可直接利用全备、增备操作,无需备份
-
生成全备数据
- –defaults-file:指定配置文件路径
- –target-dir:指定全备目录(相当于完全复制mysql数据文件,需保证磁盘空间充足)
|
|
基于全备在从库恢复数据
- 将数据发送至从库(需保证从库服务器磁盘空间充足)
- 如果基于全备、增备恢复参照:https://blog.xiangy.cloud/post/mysql5.7-flashback/#%E5%9F%BA%E4%BA%8E%E5%85%A8%E5%A4%87%E6%81%A2%E5%A4%8D
|
|
- 整理数据文件
|
|
- 删除旧数据、移入新数据
|
|
- 更改从库配置文件
|
|
- 开启从库 MySQL
|
|
开启同步
PLAN1(old)
- 基于 binlog 日志及 position id,配置同步进度
- 获取 binlog position 位置
|
|
- 从库设置从库从日志点同步
|
|
- 开启从库同步
|
|
PLAN2(new)
- 基于 GTID 复制
说明
- MySQL5.6 之前的版本只支持传统复制
- MySQL5.6 之后版本支持基于 GTID 复制,利用 GTID 自动定位的特性,不需要二进制日志的位置复制
配置
- 清空从库 GTID 信息。
|
|
- 从库指定备份的主库的 GTID
- xtrabackup_info 文件中 GTID of the last change 的值
|
|
- 从库配置主库信息
|
|
- 开启同步
|
|
查看同步状态
- Slave_IO_Running、Slave_SQL_Running 均为 Yes,表示成功连接并开始同步
- Seconds_Behind_Master 为 0 时,可认为同步完成
|
|
其他命令
- 停止从库同步
|
|
- 清除从库同步配置
|
|
文章作者 Xiang
上次更新 2023-04-18