这是关于PX-Backup的一个Demo。在左侧,有PX-Backup和两个集群。我们使用上面那个集群,运行的是1.17.8版本的K8S。在右侧有一个终端,也是访问的那个集群,我们可以看到集群运行的是1.17.8版本的K8S。
我们要介绍如何对MySQL进行备份,以及前置和后置规则。这部分是设置命名空间的,里面有一个MySQLns1的命名空间,它里面运行的是MySQL的数据库,也可以看到与数据库关联的PVC和PV。我们可以通过终端登录到MySQL,存在一个数据库表,我们可以用来检测我们的备份操作的过程是否正确。
我们有一个叫做“家”的数据库,里有一个叫做“宠物”的表,在这个表里只有一行数据,描述了一只狗。我们会对这个数据库进行备份操作,我们的第一步是填写这个界面的信息,我们要介绍一下备份的前置和后置规则。我们可以在备份规则的界面管理这些规则,有两个规则是针对MySQL应用的,如果我们点击进去,通过选择器选择MySQL,MySQL在我的右侧,有个标签,前置规则是通过readlock来flush数据库表,它会确保数据库表是锁定状态,没有新的IO来改变数据库表,Flush数据到磁盘,后置规则是flush日志,并且解锁数据库表。使得数据库可以重新正常使用。
我们回到这个命名空间,用这些规则配置我们的备份。我们会选择MySQLns1命名空间,选择备份,给备份起一个名字,选择备份的位置,我们这里选S3,选择是否要按时间计划来备份,或者是现在备份,我们选现在。选择前置和后置规则,完成后,可选的部分是标签,一旦创建完成,就会显示进展和状态,一开始是Pending,一旦备份开始,状态就是In Progress,你可以查看细节信息,你可以看到前置规则正在执行。即通过Read Lock,flush数据库表,正在进行。接下来就会备份PV和其他资源,在细节信息里,我们可以看到,资源备份状态是In Progress,包括PV,PVCs, 数据,K8S对象等等,现在状态是“成功”,表示我们的备份成功了,后置规则开始运行了。
这样我们就有了一个可以用来恢复的备份,现在我们加入一些数据,来验证我们的备份是否正确,现在我们看到数据库表中有两条狗的记录,我们继续,点击“恢复”,在备份这个菜单的旁边,填写恢复界面的相关信息,首先是恢复的名称,恢复到哪一个集群,可以恢复到原来的集群,也可以恢复到一个新的集群,在这里,我们就恢复到原来的集群,但是一个新的命名空间,我们选择定制化恢复,会从原来的命名空间,备份到一个新的“测试”命名空间。这个“测试”命名空间我们可以用来做一些测试,我们选择覆盖已经存在在那个命名空间的资源,现在我们的恢复已经完成了,我们登录到新的Pod里,MySQLns1“测试”命名空间,我们选择数据库和数据库表,我们可以看到数据库表只有一条记录,表示我们的恢复是正确的。前置和后置规则,确保了备份过程中应用的一致性。