vlambda博客
学习文章列表

八、容器内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实例

下一步后,迪备界面如下,必要输入的信息包括:“类型”“数据目录”“命令行工具路径” 。类型这里我们选择物理备份。八、容器内MySQL数据库备份如不清楚配置信息,可通过下述命令查询 查询monut 点,可以通过docker inspect container_name | grep Mounts -A 20 命令 查询八、容器内MySQL数据库备份查询命令行工具位置,可以通过`find / -name mysql '获取

八、容器内MySQL数据库备份`

分配置可以操作的用户,提交

八、容器内MySQL数据库备份完成后,若信息错误,还可以对其修改八、容器内MySQL数据库备份确认授权操作的用户,授权的用户可以配置此实例的备份策略。八、容器内MySQL数据库备份

4、设置备份策略

  • 全量备份策略设置 

迪备“备份菜单”,选择主机,选要备份的数据库实例八、容器内MySQL数据库备份设置备份策略类型,完全备份八、容器内MySQL数据库备份选择存放的备份池(注,同一个资源的存储池要相同,主要是为了获得一致性备份集收回周期八、容器内MySQL数据库备份备份计划,我们这里选择周日 0 时进行完全备份八、容器内MySQL数据库备份备份选项,通道数,全量与增量建议通道保持一致,通道越多越快,数据库不大的情况,默认为 1 即可。如果需要做日志备份,支持图形界面开启binlog,开启binlog需要重启数据库主机 如不开启,忽略),默认未启用。八、容器内MySQL数据库备份设置备份作业名称。八、容器内MySQL数据库备份

  • 增量备份策略设置

选择备份,新建作业,与完全备份操作一致的步骤已省略,有差异的步骤如下:

根据向导,备份类型,注意选择增量八、容器内MySQL数据库备份备份池注意与完全备份池一致,否则可能因为不同备份池收回周期不一致,导致数据不可恢复八、容器内MySQL数据库备份备份时间计划,选择每日增量(即剔除周日的全量时间点,剩下的6天)八、容器内MySQL数据库备份

5、备份策略执行情况

MySQL 备份作业执定完成后,我们还可以从下述3个维度进行观察或调整,以满足我们不同的保护需求。

  • “作业”菜单
    可查看已设定的作业任务,并支持修改,暂停与手工触发作业马上执行。 八、容器内MySQL数据库备份备份作业成功执行会显示绿色状态小勾,错误为显示红色x 八、容器内MySQL数据库备份
  • "历史"菜单
    可查看作业执行的情况,大小,速率等历史信息
  • "告警"菜单
    如作业执行错误,可下载日志分析发生错误的原因。


至此,MySQL容器数据库备份策略设置完成。