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

Linux单机MySQL数据库自动备份

作者头像
有一只柴犬
发布2024-01-25 11:16:45
1660
发布2024-01-25 11:16:45
举报
文章被收录于专栏:JAVA体系

准备:

创建几个目录

代码语言:javascript
复制
mkdir -vp mysql_backup/data mysql_backup/logs mysql_backup/scripts

data:用来存放备份数据

logs:存放脚本运行日志

scripts:存放备份脚本

1、指定数据库备份:

代码语言:javascript
复制
[root@iZwz90hf9uqjtrspga3v5bZ kuliya]# cd mysql_backup/scripts/

[root@iZwz90hf9uqjtrspga3v5bZ scripts]# vim db_backup.sh

备份脚本:

代码语言:javascript
复制
BACKUP_ROOT=/data/xvdb/mysql_backup    
BACKUP_FILEDIR=$BACKUP_ROOT/data       

DATE=$(date +%Y%m%d%H%M)

######备份######
db=数据库名称
echo ----------backup begin---------------------------------
mysqldump -h主机IP -uroot -p密码 -P端口 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------

echo "done"

-h主机ip:配置mysql的ip地址

-P端口:配置要备份的MySQL端口

----以上两项是为了防止单机MySQL配置了多个端口或者多个版本,以免出错

2、批量备份脚本:

代码语言:javascript
复制
BACKUP_ROOT=/data/xvdb/mysql_backup
BACKUP_FILEDIR=$BACKUP_ROOT/data

DATE=$(date +%Y%m%d%H%M)

DATABASES=$(mysql -h主机IP -uroot -p密码 -P端口 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")

for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
mysqldump -h主机IP -uroot -p密码 -P端口 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
echo
done

echo "done"

配置完脚本,记得 chmod 777 backup.sh

3、配置Crontab:

代码语言:javascript
复制
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# crontab -e

加入

代码语言:javascript
复制
*/1 * * * * /data/xvdb/mysql_backup/scripts/db_backup.sh > /data/xvdb/mysql_backup/logs/backup.log 2>&1

*/1 * * * *为Crontab定时规则,这里测试,1分钟执行一次。

然后就是等待。

查看Crontab执行情况:

代码语言:javascript
复制
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# tail -10f /var/log/cron
Sep 10 14:28:01 iZwz90hf9uqjtrspga3v5bZ CROND[26404]: (root) CMD (/data/xvdb/mysql_backup/scripts/db_backup.sh > /data/xvdb/mysql_backup/logs/db_backup.log 2>&1)
Sep 10 14:29:01 iZwz90hf9uqjtrspga3v5bZ CROND[26420]: (root) CMD (/data/xvdb/mysql_backup/scripts/db_backup.sh > /data/xvdb/mysql_backup/logs/db_backup.log 2>&1)

启动/关闭Crontab

代码语言:javascript
复制
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond stop

[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond start

[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond restart
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档