MySQL 8.0 主从
1 环境规划
| ip | 端口 | 名称 | |
|---|---|---|---|
| 10.1.1.1 | 8.0 | 3306 | Master |
| 10.1.1.2 | 8.0 | 3306 | Slave |
2 搭建 Mysql
2.1 Master
2.1.1 目录结构
1 | tree -L 1 |
2.1.2 Master 配置
1 | cat conf/master.cnf |
2.1.3 Docker-compose 配置
1 | cat docker-compose.yml |
2.1.4 启动并查看
1 | docker-compose up -d |
2.2 Slave
2.3 目录结构
1 | tree -L 1 |
2.3.1 Slave 配置
1 | cat conf/slave.cnf |
2.3.2 Docker-compose 配置
跟 Master 配置基本一样, 改下名字
1 | cat docker-compose.yml |
2.3.3 启动
1 | docker exec -it mysql-slave bash |
3 配置主从同步
3.1 主库添加账号
1 | # 监控账号 |
3.2 从库配置主从同步
1 | docker exec -it mysql-slave bash |
3.2.1 查看状态
1 | SHOW SLAVE STATUS\G |
4 备份
4.1 安装 xtrabackup
注意版本
这里备份的版本是 MySQL 8.0
1 | wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.32-26/binary/redhat/9/x86_64/percona-xtrabackup-80-8.0.32-26.1.el9.x86_64.rpm |
4.2 准备备份账号
RELOAD开始复制文件之前, 使用备份锁时需要此权限。REPLICATION CLIENT为了获得二进制日志位置。CREATE TABLESPACE以导入表(请参见还原单个表)。PROCESS查看服务器上运行的所有线程SHOW ENGINE INNODB STATUSSUPER为了在复制环境中启动/停止副本线程,使用 XtraDB 更改页跟踪进行增量备份和改进的 FLUSH 表以及读锁定处理。CREATE创建 PERCONA_SCHEMA.xtrabackup_history 数据库和表。ALTER升级 PERCONA_SCHEMA.xtrabackup_history 数据库和表。INSERT历史记录添加到 PERCONA_SCHEMA.xtrabackup_history 表中。SELECT查找 innobackupex –incremental-history-name 或 innobackupex –incremental-history-uuid
1 | CREATE USER 'gouyouhui_backup'@'192.168.1.%' IDENTIFIED BY '8WeRYA2BQkBPFzNw'; |
4.3 备份
- 备份 master 的话可能对 master 性能产生影响,但恢复的时候不会有任何问题
- 备份 slave 节点的话不会对 master 性能产生影响,但是恢复的话如果可以与 master 通信会自动加入到主从,数据可能会有问题,不过可以在备份的时候先暂停下主从同步
4.3.1 全量备份
这里选择备份 Master
1 | xtrabackup --backup \ |
4.3.2 增量备份
1 | xtrabackup --backup \ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsCC!







