用物理备份恢复的方式做数据库主从

例如:172.16.16.26 10.0.66.207

过程原理:主从数据库搭建好nfs,机器的备份都在media里面做全备,所以从库可以直接在/media里面 的数据备份恢复数据,从而做主从

在172.16.16.26上操作:

恢复全备

1 在172.16.16.26这台机器上先拷贝10.0.66.207的最新全备

cp -r /media/dbbackup/mysql/10.0.66.207/20211101_023201_full_bak    /data/temp/3310

解压备份的数据

xtrabackup --decompress --target-dir=/data/temp/3310/20211101_023201_full_bak

安装

xtrabackup --prepare --apply-log-only --use-memory=12G --target-dir=/data/temp/3310/20211101_023201_full_bak

停数据库

/etc/init.d/mysqld stop
cd /data/mysql/
rm -rf *

拷贝到数据目录

xtrabackup --defaults-file=/etc/my.cnf  --copy-back --target-dir=/data/temp/3310/20211101_023201_full_bak

chown mysql:mysql -R /data/mysql/
/etc/init.d/mysqld start

*过滤复制(这个可有可无,有需求就操作,没有需求就不要操作)
vim /etc/my.cnf
replicate_wild_ignore_table=maxwell.%
log_slave_updates=on

开启数据库

service mysql restart

登录数据库

mysql
show slave status\G
stop slave; (如果没有形成slave就不用操作此步骤)
reset salve all; (如果没有形成slave就不用操作此步骤)
change master to master_host='10.0.66.207',master_user='slave',master_port=3310,master_password='slave@TM',master_log_file='',master_log_pos=;
start salve;
show slave status\G

注:在这个地方的master_log_file=  和  master_log_pos= 在
![](https://img2020.cnblogs.com/blog/2596796/202111/2596796-20211103151853433-108579121.png)

过程原理:还有一种情况,是没有安装nfs
方法:主库把数据传到nas上去,然后从库在nas上下载数据
1 登录主库
2 先看下选择目录的挂载情况

# df -h

如果没有挂载,则需要挂载
sudo mount -t nfs -o rw,vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 3228649cfc-tis54.cn-shanghai.nas.aliyuncs.com:/ /media
PS:挂载报错的时候,是缺少nfs
安装nfs即可: yum install -y nfs-utils
3 然后开始备份 把数据备份到nas上去

innobackupex --defaults-file=/etc/my.cnf --user=root --password=Taimei198.., --socket=/data/mysql/mysql.sock  /media/temp/tem/

1 登录从库
2 查看下有没有挂载

注:要挂载同一个目录上,不然数据无法拉取

停数据库

service mysql stop

删除以往数据

cd /data/mysql/
rm -rf *

检查挂载目录是否有备份数据

cd /media/temp/tem/
ll

3 恢复数据

innobackupex --defaults-file=/etc/my.cnf --apply-log  /media/temp/tem/2021-10-25_16-29-33/
innobackupex --defaults-file=/etc/my.cnf --move-back  /media/temp/tem/2021-10-25_16-29-33/
# 注:回复的文件位置要是备份时的文件位置 例如:/media/temp/tem/2021-10-25_16-29-33/

授权:

chown -R mysql.mysql /data/mysql/*

修改配置文件

vim /etc/my.cnf

修改port,和主库的MySQL port一样

启动数据库:
service mysql start
登录数据库

mysql
show slave status\G
stop slave; (如果没有形成slave就不用操作此步骤)
reset salve all; (如果没有形成slave就不用操作此步骤)
change master to master_host='172.16.16.15',master_user='slave',master_port=3310,master_password='slave@TM',master_log_file='mysql-bin.000012',master_log_pos=598606767;
# 注: cd /media/temp/tem/ 2021-XX
cat xtrabackup_info
在info里面查看master_log_file ,master_log_pos的信息
start salve;
show slave status\G
posted @ 2021-11-03 15:19  博览鑫书  阅读(69)  评论(0)    收藏  举报