Linux 环境下Mysql数据库备份

1、创建备份目录

mkdir /home/mysql mkdir /home/mysql/backup mkdir /home/mysql/backup/scripts mkdir /home/mysql/backup/files mkdir /home/mysql/backup/logs

2、新建备份脚本

touch /home/mysql/backup/script/backupp.sh vim /home/mysql/backup/script/backupp.sh #!/bin/bash #备份目录 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_ROOT/files BACKUP_LOGDIR=BACKUP_ROOT/logs #当前日期 DATE=(date +%Y%m%d) #--------------------备份-------------------------- #循环数据库备份 echo -------------------数据库备份开始----------------- #-u后面表示数据库的用户名 -p后面的表示数据库的密码 --default-character-set 设置备份数据库的字符集 #--single-transaction 表示在 innoDB引擎下支持热备份 如果是MyIsam引擎就需要替换为 --lock-all-tables ; #-B表示指定多个库,在备份文件中增加建库语句和use语句 ;-E表示导出事件 -R 表示导出存储过程以及自定义函数 # --ignore-table 表示备份时忽略某些表,格式为:database.tablename ,多张表时 需多个--ignore-table; -q 表示不缓冲查询,直接导出到标准输出 #test表示数据库的名称;gzip表示将备份文件压缩为.gz结尾的压缩包保存到相应位置 /usr/local/mysql/bin/mysqldump -u root -proot --default-character-set=utf8mb4 -q --single-transaction --flush-logs -E -R --triggers -B test --ignore-table=test.test_hash --ignore-table=test.test_hash_p | gzip>BACKUP_FILEDIR/test_$DATE.sql.gz echo -------------------数据库备份成功完成-------------

3、保存脚本

1、保存时可能会遇到用户权限不够,可用sudo命令切换到超级用户下操作

4、执行命令

sh /home/mysql/backup/scripts/backupp.sh

可能会遇到错误提示:mysqldump :command not found

这时需要查找本机mysqldump命令的位置

方法1

find / -name mysqldump

我查到的地址是:/usr/local/mysql/bin/mysqldump,最直接的方式就是直接将它复制到脚本命令上

方法2

然后通过ln命令为mysqldump在/usr/bin创建一个软链接 ln -fs /usr/local/mysql/bin/mysqldump /usr/bin Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 格式: ln [参数][源文件或目录][目标文件或目录] --参数 -b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 -n 把符号链接视为一般目录 -s 软链接(符号链接) -v 显示详细的处理过程 创建链接后,在测试就没有问题了。

重新执行成功后在保存位置就已经生成了备份文件了

4、恢复

!/bin/bash #备份目录 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_ROOT/files #---------------恢复数据库--------------- echo ------------------开始恢复--------------- #gunzip:表示解压压缩包 #root:表示数据库用户名;test!:表示数据库密码 #test:表示数据库的名称 gunzip <BACKUP_FILEDIR/test_20200228.sql.gz | mysql -u root -ptest! test echo ----------------恢复成功完成-------------

5、定时任务

检查是否安装crontabs

crontab

安装(已安装忽略)

yum -y install vixie-cron yum -y install crontabs

说明:

vixie-cron 软件包是 cron 的主程序;

crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

配置(已安装忽略)

cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 service crond status //查看crontab服务状态 在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on cron 的主配置文件是 /etc/crontab,它包括下面几行: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是用来配置 cron 任务运行环境的变量。 SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell); PATH 变量定义用来执行命令的路径。 cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。 如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。 HOME 变量可以用来设置在执行命令或脚本时使用的主目录。 限制对 cron 的使用: /etc/cron.allow和/etc/cron.deny 文件被用来限制对 cron 的使用。 这两个使用控制文件的格式都是每行一个用户。 两个文件都不允许空格。 如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。 使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。 无论使用控制文件中的规定如何,root 都总是可以使用 cron。 如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

创建定时备份任务

添加定时任务 crontab -e

两分钟执行一次 #/home/mysql/backup/logs/job_(date +\%Y\%m\%d) 2>&1 任务执行日志输出 */2 * * * * sh /home/mysql/backup/scripts/backup.sh >> /home/mysql/backup/logs/job_(date +%Y%m%d) 2>&1

查看定时任务

查看定时任务 crontab -l

定时清理历史备份

创建脚本

touch /home/mysql/backup/scripts/backup_history_clean.sh

编写脚本

!/in/bash #定时清理三天前备份文件脚本 echo ---------------定期清理开始------------------- #这里的time 表示 -天 这里是三天前的删除 时间表示的是文件创建时间 find /home/mysql/backup/files -mtime +3 -name "*.gz" -exec rm -rf {} ; echo ---------------定期清理完成-------------------

添加定时任务

添加定时任务 crontab -e

每天凌晨1点执行 00 1 * * * sh /home/mysql/backup/scripts/backup_history_clean.sh

查看定时任务

查看定时任务 crontab -l

相关链接参考:

https://tool.lu/crontab/http://blog.itpub.net/26736162/viewspace-2641620/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352