Linux单机MySQL数据库自动备份
2023-09-11 14:17:48 时间
准备:
创建几个目录
mkdir -vp mysql_backup/data mysql_backup/logs mysql_backup/scripts
data:用来存放备份数据
logs:存放脚本运行日志
scripts:存放备份脚本
1、指定数据库备份:
[root@iZwz90hf9uqjtrspga3v5bZ kuliya]# cd mysql_backup/scripts/
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# vim db_backup.sh
备份脚本:
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、批量备份脚本:
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:
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# crontab -e
加入
*/1 * * * * /data/xvdb/mysql_backup/scripts/db_backup.sh > /data/xvdb/mysql_backup/logs/backup.log 2>&1
*/1 * * * *为Crontab定时规则,这里测试,1分钟执行一次。
然后就是等待。
查看Crontab执行情况:
[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
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond stop
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond start
[root@iZwz90hf9uqjtrspga3v5bZ scripts]# /sbin/service crond restart
相关文章
- Linux中数据库的安装和配置(MySQL与Maria DB)
- Linux&Tina&Melis内存布局分析以及linux reserved memory机制
- 给linux用户的11个高级MySQL数据库面试问题和答案
- linux下如何实现mysql数据库每天自动备份定时备份
- 【MySQL】如何向mysql数据库插入当前时间
- 用navicat访问linux数据库,成功实现Navicat访问Linux中安装的MySQL数据库
- Linux数据库介绍——MYSQL自带工具介绍
- linux下 yum 安装mysql和卸载
- [mysql]MySQL数据库如何导出
- Linux-011-Centos 使用 yum 安装 mysql 5.6.50
- python操作mysql数据库系列-操作MySql数据库(五)
- python操作mysql数据库系列-操作MySql数据库(四)
- Linux+Mysql+Apache+Php测试环境部署
- Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)
- 【系统运维】linux系统下源码包安装Mysql数据库
- Mysql_mysql 性能分析及explain用法
- PostgreSQL通过mysql_fdw访问MySQL数据库
- 定时备份mysql数据库 并删除7天前的备份 (windows linux )
- (5.5)mysql高可用系列——MySQL半同步复制(实践)
- Linux 使用Mycat实现读写分离(基于Mysql的读写分离)
- 【MySql 】is not allowed to connect to this MySql server 无法访问远程MySQL数据库