八、容器内MySQL数据库备份
前言
MySQL作为三大主流数据库之一,数据备份场景很常见。若物理环境里的MySQL备份,这种场景,我们按迪备软件3步常规操作流程:先部署客户端Agent,然后在迪备WEB平台注册客户端MySQL资源,最后根据备份向导设定策略,即可完成配置,因全是图形化操作,相对比较简单。
今天我们要介绍一种特殊的场景,MySQL in Docker 环境下的容器数据库的物理备份。当然逻辑备份方式设置更为简单,但逻辑备份效率低,而且还会产生全局读锁,适用于较小的数据库,我们这里重点介绍一下容器环境下MySQL物理备份。
1、备份前提条件
创建 Docker 时,已将下述文件完成目录映射,并且宿主机安装有MySQL Client,具体如下:
-
MySQL 数据目录映射到宿主机 -
MySQL 配置文件映射到宿主机 (可选) -
宿主机安装有MySQL Client
通常数据库管理人员为了持久化数据,数据目录已映射到宿主机。每个DBA配置习惯不同,my.cnf配置文件文件可能缺少映射,我们可以手工拷贝一份至数据目录,或MySQL启动时并没有加载配置文件,而是使用默认配置,则我们不用理会。
宿主机安装有MySQL Client这个是实现物理备份的必要条件 ,若没有部署,只能实现逻辑备份。根据环境具体情况,查询MySQL Client安装情况,这里我们先下载并安装MySQL Client程序。
官网下载页面:https://downloads.mysql.com/archives/community/
2、安装备份agent
安装迪备包并配置,这里需要的程序包
dbackup3-agent-8.0.33656-1.d45043f.dbg.x86_64.rpm
dbackup3-agent-mysql-8.0.33656-1.d45043f.dbg.x86_64.rpm
dbackup3-common-8.0.33656-1.d45043f.dbg.x86_64.rpm
安装配置过程,不赘述,具体可参考前面第七章:客户端安装章节。
3、添加MySQL实例
下一步后,迪备界面如下,必要输入的信息包括:“类型”“数据目录”“命令行工具路径” 。类型这里我们选择物理备份。如不清楚配置信息,可通过下述命令查询 查询monut 点,可以通过docker inspect container_name | grep Mounts -A 20
命令 查询查询命令行工具位置,可以通过`find / -name mysql '获取
`
分配置可以操作的用户,提交
完成后,若信息错误,还可以对其修改确认授权操作的用户,授权的用户可以配置此实例的备份策略。
4、设置备份策略
-
全量备份策略设置
迪备“备份菜单”,选择主机,选要备份的数据库实例设置备份策略类型,完全备份选择存放的备份池(注,同一个资源的存储池要相同,主要是为了获得一致性备份集收回周期)备份计划,我们这里选择周日 0 时进行完全备份备份选项,通道数,全量与增量建议通道保持一致,通道越多越快,数据库不大的情况,默认为 1 即可。如果需要做日志备份,支持图形界面开启binlog,开启binlog需要重启数据库主机 (如不开启,忽略),默认未启用。设置备份作业名称。
-
增量备份策略设置
选择备份,新建作业,与完全备份操作一致的步骤已省略,有差异的步骤如下:
根据向导,备份类型,注意选择增量备份池注意与完全备份池一致,否则可能因为不同备份池收回周期不一致,导致数据不可恢复备份时间计划,选择每日增量(即剔除周日的全量时间点,剩下的6天)
5、备份策略执行情况
MySQL 备份作业执定完成后,我们还可以从下述3个维度进行观察或调整,以满足我们不同的保护需求。
-
“作业”菜单 可查看已设定的作业任务,并支持修改,暂停与手工触发作业马上执行。 备份作业成功执行会显示绿色状态小勾,错误为显示红色x -
"历史"菜单 可查看作业执行的情况,大小,速率等历史信息 -
"告警"菜单 如作业执行错误,可下载日志分析发生错误的原因。
至此,MySQL容器数据库备份策略设置完成。