mysql备份脚本

MySQL备份脚本

复制代码
#!/bin/bash
# MySQL连接参数
MYSQL_USER=root
MYSQL_PASSWORD="xxxxxxx"
# 备份目录
BACKUP_DIR=/home/mysql_backup
# 要备份的数据库列表(空格分隔)
DB1=testdb1
DB2=mysql
##如果有需要过滤的备份的表



# 保留天数
DAYS_TO_KEEP=7
# 当前日期
DATE=$(date +%Y%m%d)
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 记录日志
echo "$(date +'%Y-%m-%d %H:%M:%S') - Backup Start" > $BACKUP_DIR/logs/backup-$DATE.log

# 备份数据库 DB1=testdb
echo ---backup $DB1  >> $BACKUP_DIR/logs/backup-$DATE.log
mysqldump --single-transaction --set-gtid-purged=off --master-data=2 --routines --triggers --events -u$MYSQL_USER -p$MYSQL_PASSWORD $DB1 | gzip > $BACKUP_DIR/$DATE/$DB1-full-$DATE.sql.gz

send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
    echo "$send $DB1 数据备份失败" >> $BACKUP_DIR/logs/backup-$DATE.log
    exit -1
else
    echo "$send $DB1 数据备份成功!" >> $BACKUP_DIR/logs/backup-$DATE.log
fi

# 备份数据库 DB2=mysql
echo ---backup $DB2  >> $BACKUP_DIR/logs/backup-$DATE.log
mysqldump --single-transaction --set-gtid-purged=off --master-data=2 --routines --triggers --events -u$MYSQL_USER -p$MYSQL_PASSWORD $DB2 | gzip > $BACKUP_DIR/$DATE/$DB2-full-$DATE.sql.gz

send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
    echo "$send $DB2 数据备份失败" >> $BACKUP_DIR/logs/backup-$DATE.log
    exit -1
else
    echo "$send $DB2 数据备份成功!" >> $BACKUP_DIR/logs/backup-$DATE.log
fi

# 删除旧备份
find $BACKUP_DIR -type d -mtime +$DAYS_TO_KEEP -exec rm -rf {} \;

# 记录日志
echo "$(date +'%Y-%m-%d %H:%M:%S') - Backup End" >> $BACKUP_DIR/logs/backup-$DATE.log
相关推荐
呆瑜nuage18 小时前
MySQL表约束详解:8大核心约束实战指南
数据库·mysql
BoomHe19 小时前
Android AOSP13 原生 Launcher3 壁纸获取方式
android
元宝骑士19 小时前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
Digitally19 小时前
如何将联系人从 Android 转移到 Android
android
猿小喵19 小时前
MySQL慢查询分析与处理-第二篇
数据库·mysql·性能优化
Y0011123620 小时前
MySQL-进阶
开发语言·数据库·sql·mysql
李小枫20 小时前
webflux接收application/x-www-form-urlencoded参数
android·java·开发语言
前进的李工20 小时前
MySQL角色管理:权限控制全攻略
前端·javascript·数据库·mysql
爱丽_20 小时前
MySQL `EXPLAIN`:看懂执行计划、判断索引是否生效与排错套路
android·数据库·mysql
牧魂.21 小时前
MySQL 主从延迟根因诊断法
mysql·高并发·主从复制·主从延迟·数据库调优