# MySQL双主模式
# 准备工作
备份需要安装 Percona-XtraBackup,如果没有安装需要下载并安装
# 下载Percona-XtraBackup
mysql 5.7版本
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.11/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
1
mysql 8.0版本
wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.27-19/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm
1
# 安装 Percona-XtraBackup
mysql 5.7版本
rpm -ivh percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
1
mysql 8.0版本
rpm -ivh percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm
1
# 添加从库
- 创建从库备份专用用户,提高安全性
mysql> CREATE USER rpl@'10.2.67.48' IDENTIFIED BY '******';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl@'10.2.67.48';
mysql> flush privileges;
1
2
3
2
3
- 创建备份文件夹--主库执行
mkdir /data/dbbackup
1
- 开始备份数据库--主库执行
mysql 5.7版本
innobackupex --defaults-file=/etc/my.cnf --use-memory=400M --parallel=10 --safe-slave-backup --host=10.81.106.92 --user=root --password=****** --port=3306 --socket=/var/lib/mysql/mysql.sock /data/dbbackup
1
mysql 8.0版本
xtrabackup --defaults-file=/etc/my.cnf --backup --use-memory=400M --parallel=10 --safe-slave-backup --host=10.83.228.63 --user=root --password='******' --port=3306 --socket=/var/lib/mysql/mysql.sock --target-dir=/data/dbbackup/`date +%Y-%m-%d_%H-%M-%S`
1
4.记录备份文件中的偏移量,做主从同步时会用到--主库执行
more /data/dbbackup/2022-02-24_16-50-27/xtrabackup_info
1
uuid = 60b339a4-954f-11ec-b5b3-0cda411d8004
name =
tool_name = innobackupex
tool_command = --defaults-file=/etc/my.cnf mysql --use-memory=400M --parallel=10 --safe-slave-backup --host=10.81.106.92 --user=root --password=... --port=3306 --socket=/
var/lib/mysql/mysql.sock /data/dbbackup/
tool_version = 2.4.11
ibbackup_version = 2.4.11
server_version = 5.7.37-log
start_time = 2022-02-24 16:50:27
end_time = 2022-02-24 16:54:29
lock_time = 0
binlog_pos = filename 'bin-log.001428', position '7718862'
innodb_from_lsn = 0
innodb_to_lsn = 854176197035
partial = N
incremental = N
format = file
compact = N
compressed = N
encrypted = N
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5.传送到备份服务器--主库执行
scp -r -P 60022 2022-02-24_16-50-27/ admin.hq@10.2.67.48:/data/
1
6.准备备份恢复数据--从库执行 mysql 5.7版本
innobackupex --apply-log 2022-02-24_16-50-27/
1
mysql 8.0版本
xtrabackup --prepare --target-dir=2022-02-24_16-50-27/
1
7.从库数据恢复,确保 mysql 的数据目录为空,然后再执行--从库执行
mysql 5.7版本
innobackupex --defaults-file=/etc/my.cnf --copy-back 2022-02-24_16-50-27/
1
mysql 8.0版本
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=2022-02-24_16-50-27/
1
8.登陆 mysql,配置主从同步--从库执行
CHANGE MASTER TO MASTER_HOST='10.81.106.92', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='******', MASTER_LOG_FILE='bin-log.001428',master_log_pos=7718862;
# 注意:MASTER_LOG_FILE 和 master_log_pos 为第3步的偏移量
1
2
3
2
3
9.开启同步
start slave;
1
10.查看同步状态
show slave status\G
1