MySQL 备份和还原

拼搏现实的明天。 2023-06-19 11:18 99阅读 0赞

针对 linux 上的 MySQL 进行备份还原。

备份脚本 mysql-bak.sh

  1. db=$1
  2. if [ -z $db ]
  3. then
  4. echo '错误: 清输入表名!'
  5. echo '用法: ./mysql-bak.sh db_name'
  6. exit 1
  7. fi
  8. D=$(date +%Y%m%d%H%M)
  9. DUMP=/data/mysql-bak/${db}-${D}.tgz
  10. echo 备份路径: $DUMP
  11. echo 开始备份: $(date)
  12. mysqldump -uroot -proot $db | gzip > $DUMP
  13. echo 备份完成: $(date)

注意:

  • DUMP 中的路径,当通过 cron 配置定时任务时,如果不是绝对路径,生成的文件可能会在用户的 home 目录下。
  • mysqldump 中的用户名和密码
  • 使用 gzip 的压缩率在 10% 以下,能节省大量空间,也方便传输备份文件

全库备份参考脚本:

  1. day=15
  2. D=$(date +%Y%m%d%H%M)
  3. DUMP=/data/mysql/bak/mysql-${D}.gz
  4. echo 备份路径: $DUMP
  5. echo 开始备份: $(date)
  6. mysqldump --all-databases --master-data --single-transaction --include-master-host-port -uroot -p密码 | gzip > $DUMP
  7. echo 备份完成: $(date)
  8. echo 开始清理 ${day} 天前备份
  9. for((i=$day;i<=30;i++));do rm -f /data/mysql/bak/mysql-$(date -d "-$i day" +"%Y%m%d")*.gz; done;
  10. echo 清理完成

压缩和不压缩的文件大小

  1. -rw-r--r-- 1 root root 1.4G Dec 6 00:31 mysql-201912060030.db
  2. -rw-r--r-- 1 root root 107M Dec 6 11:35 mysql-201912061134.tgz

1.4G 和 107M 的大小。

还原脚本 mysql-restore.sh

  1. db=$1
  2. bak=$2
  3. useage() {
  4. echo '错误: 清输入表名和备份文件名!'
  5. echo '用法: ./mysql-restore.sh db_name bak.tgz'
  6. }
  7. if [ -z "$db" -o -z "$bak" ]
  8. then
  9. useage
  10. exit 1
  11. fi
  12. echo 开始还原: $(date)
  13. gunzip < $bak | mysql -uroot -proot $db
  14. echo 还原完成: $(date)

定时任务

通过 crontab -e 编辑定时任务,示例如下:

  1. 5 12 * * * sh /data/mysql-bak/mysql-bak.sh test123

上述定时任务在 12:05 执行,查看最近的执行情况:

  1. [root@localhost mysql-bak]# tail -n 10 /var/spool/mail/root
  2. X-Cron-Env: <LOGNAME=root>
  3. X-Cron-Env: <USER=root>
  4. Message-Id: <20191206040502.2C1851742@localhost.localdomain>
  5. Date: Fri, 6 Dec 2019 12:05:01 +0800 (CST)
  6. 备份路径: /data/mysql-bak/test123-201912061205.tgz
  7. 开始备份: Fri Dec 6 12:05:01 CST 2019
  8. mysqldump: [Warning] Using a password on the command line interface can be insecure.
  9. 备份完成: Fri Dec 6 12:05:01 CST 2019

发表评论

表情:
评论列表 (有 0 条评论,99人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql备份还原

    一、备份常用操作基本命令 1、备份命令mysqldump格式    格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数