MySQL 添加从库
准备工作
备份需要安装 Percona-XtraBackup,如果没有安装需要下载并安装
下载 Percona-XtraBackup:
mysql 5.7版本1
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
mysql 8.0版本
1
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
安装 Percona-XtraBackup:
mysql 5.7版本1
rpm -ivh percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
mysql 8.0版本
1
rpm -ivh percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm
添加从库
创建从库备份专用用户,提高安全性
1
2
3mysql> CREATE USER rpl@'10.2.67.48' IDENTIFIED BY '******';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl@'10.2.67.48';
mysql> flush privileges;创建备份文件夹–主库执行
1
mkdir /data/dbbackup
开始备份数据库–主库执行
mysql 5.7版本1
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
mysql 8.0版本
1
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
more /data/dbbackup/2022-02-24_16-50-27/xtrabackup_info
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20uuid = 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
scp -r -P 60022 2022-02-24_16-50-27/ admin.hq@10.2.67.48:/data/
准备备份恢复数据–从库执行
mysql 5.7版本1
innobackupex --apply-log 2022-02-24_16-50-27/
mysql 8.0版本
1
xtrabackup --prepare --target-dir=2022-02-24_16-50-27/
从库数据恢复,确保 mysql 的数据目录为空,然后再执行–从库执行
mysql 5.7版本1
innobackupex --defaults-file=/etc/my.cnf --copy-back 2022-02-24_16-50-27/
mysql 8.0版本
1
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=2022-02-24_16-50-27/
登陆 mysql,配置主从同步–从库执行
1
2
3CHANGE 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
start slave;
查看同步状态
1
show slave status\G