菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

MySQL 定时备份

原创
05/13 14:22
阅读数 393

1 设置好crontab 定时任务备份

#每天备份三次数据库
0 5,15,22  * * *  sh /data/script/alldatabase_back.sh &>/dev/null
#每天2点备份
0 2 * * *         sh /data/script/dev_alldatabase_back.sh  &>/dev/null

2 开始写备份脚本

#!/bin/bash
backupdir=/data/backup
time=`date +%Y-%m-%d-%H-%M`
if  [ ! -e  /data/backcup  ];then
 mkdir  -p  /data/backup
fi
/usr/bin/mysqldump  --single-transaction  --flush-logs --skip-add-drop-table  -uroot  -p'root@xx'  数据库  |bzip2 > $backupdir/数据库$time.sql.bz2

# 清理超过7天没使用的文件
find $backupdir -name "数据库*.sql.bz2" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1

批注:
--single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响
--skip-add-drop-table  ---取消每个数据表创建之前添加drop数据表语句(默认每个表之前存在drop语句)
--flush-logs  在开始导出前刷新服务器的日志文件
最后导出的数据库备份文件 就是这个 xx2019-11-14-02-00.sql.bz2
mysql -u 用户名 -p密码 数据库名 < 备份文件.sql  恢复某个节点数据

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批