使用docker备份mysql数据库

yumo6667个月前 (03-29)技术文章84


数据在项目中绝对是非常重要的,若数据发生丢失,很容易造成难以挽回的损失。所以,数据库备份在生产上是必不可少的,下面我们来了解下在docker环境下mysql数据库的备份是如何做的。

一、数据库容器

假设我们在服务器上部署了一个mysql docker容器实例,容器名为mysql,如下图

docker mysql容器实例


二、定时备份数据库为sql脚本

我们每日进行定时备份数据库,生成sql脚本。

编写定时任务脚本,在/opt/backup/目录下新建backup-task.sh文件,输入以下内容:

taskdate=$(date +%Y%m%d)
mkdir /opt/backup/$taskdate
docker exec  mysql mysqldump -uroot -p123456 db1 > /opt/backup/$taskdate/xxx.sql

说明:taskdate根据shell语法生成每日对应的目录以便恢复(如:20200930),最后一行的docker备份sql脚本对应格式为:

docker exec  容器名 mysqldump -u数据库账号 -p数据库密码 数据库实例名 > sql文件地址与文件名

三、配置服务器定时任务

在服务器控制台上输入crontab -e会自动打开定时任务编辑文件

crontab -e

输入以下内容保存

0 0 * * * sh /opt/backup/backup-task.sh

代表每日的0点0分执行该脚本,可以通过crontab -l命令查看是否生效


配置服务器定时任务

四、总结

以上的备份是在docker环境下备份mysql数据库的方法,主要运用了shell命令+docker exec命令+mysql的mysqldump命令+linux定时任务每日生成sql备份脚本。这种方式有可能会存在一段空白区,即最后一次备份后的一段时间内产生的数据没备份。如果对数据特别敏感,在生产环境中可能还需要进行实时备份,可以使用mysql自带的主从模型或其他方式进行备份。

相关文章

windows下mysql自动备份及备份同步至NAS解决方案

一、问题描述某项目客户要求把阿里云上一台ECS非核心的mysql库做备份,具体要求如下:1、每天1:00对mysql数据库进行完全备份。2、备份文件存放到阿里云的NAS平台上。3、保留5天的备份副本。...

在Windows Server上自动执行数据库和文件夹备份

介绍为服务器提供自动备份策略的重要性这是非常有必要的。每个服务器管理员都必须完成设置备份的繁重工作,包括编写脚本、安排任务、设置警报等等。为了简化这个任务,我分享一个实用程序来帮助服务器管理员和数据库...

MySQL的备份与还原,非常规备份,全量备份,增量备份

一、测试数据库的创建 1:官方百万级别的测试数据库:官方测试数据库github网址:https://github.com/datacharmer/test_db下载到目录,解压即可,运行命令:mys...

mysql备份自动存储到开源的minio

概述minio 是开源企业级对象存储系统,有着高性能、使用简单、易扩展、兼容性强等特性。下面分享一下如何把mysql备份自动存储在minio中。一、前提条件安装minio客户端mc已经安装好的mini...

使用mysqldump+crontab实现Mysql定时备份

一直在用ubuntu16.04 server apt-get 安装环境,客户需求每天0点,12点进行一次数据库的备份。所以写了一个脚本配合crontab,定时执行。首先给mysql建个cnf文件,在脚...

mysql单表备份、单表复制

在 MySQL 中,可以通过以下步骤基于已有的表 t_device 创建一个新表 t_device_bk,并将 t_device 表的数据全复制到新表:方法一:使用 CREATE TABLE 和 IN...