之前搭建了在docker上搭建了一套MySQL的PXC集群,当时没有做备份处理,今天搭建了一套备份方案。
MySQL的数据备份方式有很多种,如自带的MySQLDUMP命令,或者直接拷贝数据文件等等方式,但是这些方式都是系统的冷备份,即需要停机服务进行备份,这种方式我没有采用。
本次备份方案是热备份,MySQL的热备份的方式有两种:1、LVM 2、xtrabackup
lvm是Linux自带的一种,通过对某一个分区创建快照进行备份,所以可以备份多种数据库。但是缺点是会对数据库加锁,使得数据库在备份区间只读不可写,生产环境这是不允许的。
xtrabackup是percona公司的开源免费的MySQL备份工具,在热备份上不需要锁表进行备份,所以一般MySQL上备份采用xtrabackup,它还有个优势是备份数据是被压缩过的,会减小磁盘压力。
备份方式两种:全量、增量,一般一周一次全量备份,一天一次增量备份。
由于PXC安装在docker上的,备份方式和单机备份有一些差异:
1、备份数据docker服务上需要有数据卷映射到MySQL-PXC的backup备份文件夹。具体在搭建pxc笔记中有。
2、要进入docker中MySQL上安装xtrabackup进行数据备份,不是在宿主机上安装
由于PXC各个节点数据节点都是一致的,所以只需要进入一个节点进行备份就行了。
方法:
进入节点
docker exec -it node2 /bin/bash
更新update
apt-get update
如果执行这一步update时候报错,