4、热备份数据

热备份数据

冷备份

  • 冷备份是关闭数据库时候的备份方式,通常做法是拷贝数据文件或者使用mysql dump指令。

  • 冷备份是最简单最安全的一种备份方式

  • 大型网站无法做到关闭业务备份数据,所以冷备份不是最佳选择。

如果非要进行冷备份方案,可以考虑将PXC集群中的某个节点下线,然后备份数据,完成后让节点再上线,产生同步,这样又可以和其他节点数据保持一致。

热备份

热备份是在系统运行的状态下备份数据,也是难度最大的备份。

Mysql常见的热备份又LVM和XtraBackup两种方案。

LVM备份方式

是linux自带的一种技术,Linux对某一个分区创建快照实现对这个分区数据的备份。原则上LVM可以备份的数据库有很多:例如mysql,orcale,mongodb等。

点:

1.备份数据库时,需要对数据库加锁,这个数据库只能读取数据不能写入数据。这样对业务开展还是有一定的影响。

2.指令繁琐

XtraBackup备份方式(推荐使用)

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

优点:

  • XtraBackup备份过程中不锁表、快速可靠

  • XtraBackup备份过程不会打断正在执行的事务。

  • XtraBackup能够基于压缩等功能节约磁盘空间和流量

  • 支持全量备份,也支持增量备份

  • 支持mysql官方版,以及衍生版,例如miradb等

  • 免费

全量备份和增量备份

全量备份是备份全部数据。备份过程时间长,占用空间大。(对数据库的第一次更新一定要采用全量备份,后续的备份就可以采用增量备份)

增量备份是只备份变化的那部分数据。备份时间短,占用空间小。(比如一周做一次全量备份,一天做一次增量备份)

XtraBackup的安装

XtraBackup工具需要安装在数据库所在的节点容器内,它备份出来的数据就直接保存在容器里了,这样做不好,我们应该把备份的数据导出到宿主机上,采用映射的技术。

准备工作具体操作:

宿主机上创建一个数据卷,将这个卷映射个某一个数据库节点上,然后通过热备工具备份出来的数据就可以在宿主机上看到了。

宿主机上创建数据卷:

配置某个数据节节点,映射数据卷(停止删除之前容器,加入热备份数据卷)

对比之前启动node1的不同点:

1.-v backup:/data:加入备份数据库的数据卷

2.-e CLUSTER_JOIN=node2:启动后跟哪个节点同步数据

PXC全量备份的步骤

PXC节点容器中安装XtraBackup,并执行备份。

在宿主机器查看

PXC全量恢复步骤

  • 数据库可以热备份,但是不能热还原。为了避免恢复过程中的数据同步,我们采用空白 MYSQL还原数据,然后建立PXC集群。

  • 还原数据前要将未提交的事务回滚,还原数据之后重启MySQL

宿主操作

1.删除pxc集群节点

2.删除数据卷

3.重新运行node1,加入备份的数据卷

进入node1容器节点:

1.删除数据

2.将没有提交的事务回滚(--apply-back)

3.还原数据(--copy-back)

退出容器重启node1节点

Last updated

Was this helpful?