linux 环境下 mysql 定时全量备份

本贴最后更新于 1810 天前,其中的信息可能已经时移世易

mysql 定时全量备份


环境准备

确保 mysql 已经安装成功,这是前提条件。

  • 备份路径
#备份文件路径
/home/backup/bak
#备份日志路径
/home/backup/log
  • shell 脚本

在/home/backup 路径下创建 Mysql-FullyBak.sh 脚本,内容如下:

#!/bin/bash
# Program
# use mysqldump to Fully backup mysql data per week!
# History
# Path
BakDir=/home/backup/bak
LogFile=/home/backup/log/bak.log
Date=`date +%Y%m%d%H%M%S`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
/home/mysql/bin/mysqldump -uroot -p123456 -R -E solo > $DumpFile
/bin/tar -zvcf $GZDumpFile $DumpFile
/bin/rm $DumpFile
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
find /home/backup/bak -type f -mtime 3 -name "*.*" -exec rm -f {} \;
#cd $BakDir/daily
#/bin/rm -f *

说明:

/home/mysql/bin/mysqldump -uroot -p123456 -R -E solo > $DumpFile

/home/mysql 为 mysql 的安装路径,root/123456 为数据库账号密码,-R -E 表示备份表结构、数据、存储过程、函数、视图等,solo 表示要备份的库。

find /home/backup/bak -type f -mtime 3 -name "." -exec rm -f {} ;

删除/home/backup/bak 路径下 3 天以前的文件,意思就是保留最近 3 天的备份文件。

备份测试

进入 shell 脚本所在目录,给脚本赋予执行权限

执行脚本,查看备份文件目录和日志目录,备份成功

解压备份文件,查看备份的 sql

定时任务配置

#配置定时任务
crontab -e
#查看定时任务
crontab -l

定时备份设置成功。

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • Backup
    3 引用 • 2 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
upaths
Artists used the lies to tell the truth, while politicians used them to cover the truth up.