Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除

一、Navicat数据备份
1.打开Navicat连接需要备份的数据库服务器
点击具体的数据库后点击 ‘自动运行’
Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第1张图片2.查看已创建自动运行任务的列表
Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第2张图片3.创建任务
点击 二中的 + 创建新的自动运行 后展示该页面
先点击备份按钮
再点击需要备份数据库服务器中的数据库
选中可用的工作 添加工作
被添加的任务展示在已选择的工作

4.保存任务
点击保存 并设置任务名称后点击确认
Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第3张图片

Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第4张图片5.设置定时备份
点击小时钟设置定时任务 完成后点击确认
该示例代表每10分钟执行一次

6.查看及删除作业
打开需要操作的数据库服务器连接
选中需要备份的数据库
点击自动运行后
展示作业列表
选中需要操作的列表可对作业进行操作

Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第5张图片7.查看定时任务备份数据文件
打开需要操作的数据库服务器连接
选中需要备份的数据库
点击备份按钮
可展示出该数据库的备份数据列表

Navicat数据备份、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除_第6张图片
二、linux mysql定时备份定时删除、docker内部mysql定时备份定时删除
注:些 linux 服务器版本中没有自带 crontab 组件,这个时候需要安装组件

#安装组件
yum install -y vixie-cron

1.docker内部mysql定时备份定时删除
1.1新建脚本 vi databak.sh

#!/bin/bash
#设置mysql的登录用户名和密码
mysql_user="root"
mysql_password="123456"
mysql_host="localhost"
mysql_port="3306"
#需要备份的数据库
database="product_catalog"
#mysql容器名称
docker_name=gds-mysql
#备份文件存放地址
backup_location=/databak
#是否删除过期数据
expire_backup_delete="ON"
expire_days=7
backup_time=`date +%Y%m%d%H%M`
backup_dir=$backup_location
 #备份容器中的数据库
docker exec -i ${docker_name} /usr/bin/mysqldump -h mysql_host -P mysql_port -u mysql_user -p mysql_password -B  database >  backup_dir/ backup_time.sql
#删除过期数据
if [ "expire_backup_delete" == "ON" -a  "backup_location" != "" ];then
        `find $backup_location -name "*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1`
fi

1.2.添加执行权限

chmod +x databak.sh

1.3.添加定时任务(测试每分钟备份1次)

crontab -e  
*/1 * * * * cd /databak/ && ./databak.sh >> /databak/error.log 2>&1

1.4.启动定时任务

service crond start

1.5.测试成功后修改定时任务(每天凌晨1:30分执行一次)

crontab -e
#录入需要执行的任务
#每天凌晨1:30分执行一次
30 1 * * *  /databak/databak.sh

1.6.重启定时任务

service crond restart

1.7.恢复数据

#在mysql命令行执行sql语句操作导入
mysql -uusername -ppassword databasename < backupfile.sql

2.mysql定时备份定时删除
2.1新建脚本

vi databak.sh
echo "===备份开始==="
mysqldump -uroot -p123456 performance_schema | gzip > /databak/performance_schema_$(date +%Y%m%d_%H%M%S).sql.gz
mysqldump -uroot -p123456 product_catalog | gzip > /databak/product_catalog_$(date +%Y%m%d_%H%M%S).sql.gz
 
#删除10天前备份的数据
find /databak -mtime +7 -name "*.gz" -exec rm -rf {} \;
echo "===备份成功==="

2.2.添加执行权限

chmod +x databak.sh

2.3.添加定时任务(测试每分钟备份1次)

crontab -e    
*/1 * * * * cd /databak/ && ./databak.sh >> /databak/error.log 2>&1

2.4.启动定时任务

service crond start

2.5.测试成功后修改定时任务(每天凌晨1:30分执行一次)

crontab -e
#录入需要执行的任务
#每天凌晨1:30分执行一次
30 1 * * *  /databak/databak.sh

2.6.重启定时任务

service crond restart

2.7.恢复数据
在mysql命令行执行sql语句操作导入

mysql -uusername -ppassword databasename < backupfile.sql

你可能感兴趣的:(mysql,linux,docker)