MySQL集群服务器的热备份 和 冷还原

上一篇我们用三台Ubuntu搭建了MySQL集群服务器

或 docker搭建了MySQL集群服务器

解决PXC方案的MySQL数据热备份 

传统的MySQL数据库备份比如 dump需要将关闭一个数据库节点,然后使用dump指令进行备份数据,这种备份方式慢,全量备份。而且需要关闭一个节点进行备份,备份后在加入集群,进行同步数据,操作复杂-------这种方式是冷备份

 

另外一种备份方式是通过Linux自带的备份工具,这种方式需要锁表,数据库只能进行读取不能进行增加、修改和删除操作-----这种方式是其中一种热备份不需要关闭服务器,但是会影响业务

 

XtraBackup

XtraBackup是一款基于InnoDB引擎的在线热备份工具具有开源免费,支持在线热备,占用磁盘空间小,能够非常快速地备份和恢复

 

需要注意的是新版的percona集群镜像里面是默认安装好了备份工具,而且有Ubuntu变成了centos,所以安装指令变成了yum安装这里不需要再安装了,因为有  镜像来自  docker pull percona/percona-xtradb-cluster

进入容器 0是uid=0的意思,以用户id为0的用户进入容器,也就是root用户

docker exec -it -u 0 容器别名  bash

 

 

将上面的数据进行备份 

进行全量备份

备份数据的路径是容器中的路径上面指定的路径。在启动的时候我们映射了数据卷backup,所以在宿主机也有

执行备份指令 

innobackupex --user=root --password=123456 /data/backup/full

 

注意数据库备份有热备份 和 冷备份 热备份可以一边使用MySQL服务器一边进行备份数据

但是还原数据只能进行冷还原,需要关闭某一个节点进行还原

 因为MySQL的数据是存在数据卷中的,在进行数据库的冷还原需要解散原集群,将每个节点容器都删除即可,然后将其中一个节点的所产生的数据全部删除,再讲备份好的数据还原到存放数据的目录中,接着重启该节点,接着将其他节点加入到该节点,实现PXC集群

 

 进入容器删除原先的数据

docker exec -it 0 容器名或id  bash
rm -rf /var/lib/mysql/*

进行还原指令操作,需要注意还原的是哪个备份

innobackupex --user=root --password=123456 --apply-back /data/backup/full/2020-04-16_21-50-39/
innobackupex --user=root --password=123456 --copy-back /data/backup/full/2020-04-16_21-50-39/

 

前面我们加入了一条数据1 张三,在备份后我们加入一条数据仅student表 2 李四

 

然后还原后查看

接着重启节点

docker run -d -e MYSQL_ROOT_PASSWORD=123456 \
      -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 \
      -v v1:/var/lib/mysql -v backup:/data \
      --privileged --name=node1 --network=host  --restart=always pxc

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗水人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值