docker容器下mysql数据库还原与备份

docker容器下mysql数据库还原与备份

一、数据库定时备份


1、编写mysql在docker容器中备份的shell脚本:


复制代码
#!/bin/bash
# zhengwei 2020-11-15
#docker启动的mysql备份
mysql_user="root"
#数据库密码,注意自行修改
mysql_password="JZTeya0!"
mysql_host="192.168.1.43"
mysql_port="3306"
mysql_charset="utf8mb4"
#备份文件存放的目录,自己创建位置
mkdir -p /home/backup/mysql/
backup_location=/home/backup/mysql/
expire_backup_delete="ON"
#备份文件存放的天数
expire_days=7
backup_time=`date +%Y-%m-%d-%H-%M`
backup_dir=$backup_location
#指定忽略的表
#--ignore-table=tablename
#docker exec -i mysql mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B zszy-omsdb | gzip> $backup_dir/mysql_backup_dbname_$backup_time.sql.gz
echo -e "\033[32m ------------------- 开始全量备份数据库,请稍等。。。---------------- \033[0m"
docker exec -i mysql mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --all-databases | gzip> $backup_dir/mysqldb_backup_$backup_time.sql.gz
echo -e "\033[32m -------------------成功备份数据至文件:$backup_dir/mysqldb_backup_$backup_time.sql.gz---------------- \033[0m"
if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then
`find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
echo -e "\033[32m ------------------- MySQL数据库已备份 $expire_days天前的备份已删除---------------- \033[0m" #green
fi


复制代码

2、执行定时计划,每天凌晨1点执行备份


进入 vi /etc/crontab


加入如下的内容


# /home/shell/mysqlbackup.sh 为脚本的路径

 00 01 * * * root /home/shell/mysql-backup.sh

 你也先测试一分钟执行一次的效果


*/1 * * * * root /home/shell/mysql-backup.sh

注意root前后只能一个空格


可以执行命令: tail -f /var/log/cron 查看效果定时任务的执行效果




 


二、数据库还原


1、解压文件


gzip -d /home/backup/mysql/mysqldb_backup_2022-11-12-20-35.sql.gz

2、拷贝文件到容器中


docker cp /home/backup/mysql/mysqldb_backup_2022-11-12-20-35.sql mysql:/var

3、进入mysql容器中


docker exec -it mysql bin/bash

4、执行如下命令后会要求输入mysql密码


mysql -uroot -p

5、将拷贝到容器中的.sql文件用于还原mysql数据库


source /var/mysqldb_backup_2022-11-12-20-35.sql
  • 发表于 2023-02-17 09:32
  • 阅读 ( 1273 )
  • 分类:linux

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

702 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 350 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 76 文章
  8. CORNERSTONE 72 文章