mysql数据库还原与备份

一、Liunx服务器下数据库定时备份

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

指定备份哪些库(推荐):

#!/bin/bash
echo "开始备份"
# 设置容器名称【需修改】
CONTAINER_NAME="mysql"
DATE=$(date +%Y%m%d_%H%M%S)
echo "备份时间"+$DATE
# MySQL服务 地址及端口【需修改】
MYSQL_HOST="127.0.0.1"
MYSQL_PORT=3306
# MySQL 用户和密码【需修改】
MYSQL_USER="root"
MYSQL_PASSWORD="Bridge0!"
 
 
# 备份文件保存路径
BACKUP_DIR="/home/backup"
NEW_FOLDER="$BACKUP_DIR/backup_$DATE"
# 数据库名称【需修改】
DBNAME=("bridge" "sys")
# 是否删除过期数据
expire_backup_delete="ON"
# 设置过期时间
expire_days=7


# 备份文件名称
BACKUP_FILENAME="mysql_backup_$(date +%Y%m%d%H%M%S).sql"
GZIP_FILENAME="mysql_backup_$(date +%Y%m%d%H%M%S).tar.gz"
 
backup_time=`date +%Y%m%d%H%M`
 
mkdir -p "$NEW_FOLDER"
 
# 执行备份
for DB in "${DBNAME[@]}"; do
    docker exec $CONTAINER_NAME mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD  --host=$MYSQL_HOST -P $MYSQL_PORT  $DB> $NEW_FOLDER/$DB$BACKUP_FILENAME
 done

# 压缩sql文件
tar -czvf   $BACKUP_DIR/$GZIP_FILENAME  $NEW_FOLDER
# 删除sql文件,尽量设置文件的格式,以免删除所有文件
rm -rf  $NEW_FOLDER/*.sql
 

# 删除过期数据
if [ "$expire_backup_delete" == "ON" -a  "$BACKUP_DIR" != "" ];then
       find $BACKUP_DIR -name "*.gz" -type f -mtime +$expire_days   -type f -delete
        echo "Expired backup data delete complete!"
fi


echo "备份完成" 

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

进入 vi /etc/crontab

加入如下的内容

# /home/shell/mysqlbackup.sh 为脚本的路径
 00 01 * * * root /home/shell/mysql-backup.sh

 

修改后记得重启crond使改动生效

service crond restart

 

你也先测试一分钟执行一次的效果(注意这是测试每一分钟执行一次的,测试成功后要改成上面的每天凌晨执行一次)

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

注意root前后只能一个空格

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

 

3、数据库还原

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

 

 

 

二、Navicat数据库自动备份

1、新建配置文件:选中数据库备份---》右键---->新建备份-----》保存---》输入配置文件名称

此时,你在新建备份对话框中可以选择对象中的信息,去掉一些不想备份的表

 

2、点击自动运行----》新建批处理作业

3、在新建批处理作业页面:1备份---》2选择数据库----》3双击数据库配置文件---》点击保存后输入名称

 

4、1设置任务计划---》2触发器----》3新建

在新建触发器页面我们定时的是每天晚上23点备份

 

posted @ 2022-11-12 17:17  爱生活,爱代码  阅读(1632)  评论(0)    收藏  举报