前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux系统定时备份MySQL数据库

linux系统定时备份MySQL数据库

原创
作者头像
Java旅途
修改2020-07-13 14:15:43
5.9K0
修改2020-07-13 14:15:43
举报
文章被收录于专栏:Java旅途Java旅途

一个项目的基础便是数据库,但是可能因为某些原因会导致数据丢失,或数据库结构变化,严重一点的或造成数据库删除。为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。下面看看具体操作过程。

假如在我的数据库中有一个emp的数据库。

1.在linux系统中自定义一个文件夹,在我的服务器上我放在了/zhb/backup

2.在/zhb/backup下面建一个bkemp.sh的脚本文件

3.使用vi命令 vi ./bkemp.sh 写入脚本

代码语言:txt
复制
#!/bin/bash
mysqldump -uusername -ppassword emp> /home/backup/emp$_(date +%Y%m%d_%H%M%S).sql
#!/bin/bash
mysqldump -uusername -ppassword emp | gzip > /home/backup/emp$_(date +%Y%m%d_%H%M%S).sql.gz

上面的一句是生成一个sql文件,下面一句是生一个sql的压缩包

4.给脚本文件授权:chmod +777 bkemp.sh

5.输入命令 crontab -e ,这时后会进入一个和vi编辑器一样的界面,输入

代码语言:txt
复制
*/1 * * * *

上面这行代表每分钟执行一次。

等几分钟我们来看看是否每分钟进行一次备份。

在这里插入图片描述
在这里插入图片描述

6.如果一直备份,那会消耗大量的服务器内存,因此需要定时的删除一些时间比较久的备份,只需要在bkemp.sh文件中添加如下代码即可。

代码语言:txt
复制
#删除15天之前的备份
find /home/backup -name emp"*.sql.gz" -type f -mtime +15 -exec rm -rf {} \; > /dev/null 2>&1
#删除1分钟之前的备份
find /home/backup -name emp"*.sql.gz" -type f -mmin +1 -exec rm -rf {} \; > /dev/null 2>&1

这样就可以删除备份的gz文件了,如果删除sql,只需要改成.sql结尾即可。

我们将sql拿出来执行一下,看看是否备份成功,我们发现数据库结构和数据以及视图都进行备份了,但是函数和存储过程并没有进行备份。

欢迎大家留言交流如何进行函数及存储过程的备份~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档