数据库
首页 > 数据库> > 分享两个Mysql在线全备和binlog日志备份脚本

分享两个Mysql在线全备和binlog日志备份脚本

作者:互联网

对于Mysql数据库运维人员,什么最重要,当然是数据库备份最重要,没有之一。在这里我要分享两个Mysql在线全备和binlog日志备份shell脚本给大家,其中Mysql数据库在线全备用的innobackupex工具。

innodbackupex在线热备工具
innodbackupex工具是一个Perl脚本,它对xtrabackup 程序的做了一个封装。innodb的Mysql数据库在线热备份工具,它集成了xtrabackup和其他功能,并且在还有提供增强功能。它能帮你将innodb表和MyISAM表和服务器的其他部分一起执行表的在线热备份,这个功能xtrabackup所不能提供的。

创建备份目录
在执行备份脚本之前,需要先创建好全备和binlog备份存放的目录。

mkdir -p /mysql2/script
mkdir -p /mysql2/backup/xtrabackup
mkdir -p /mysql2/backup/binlog_backup

>/mysql2/script/mysql_backup.sh
>/mysql2/script/mysql_binlog_backup.sh
chmod +x /mysql2/script/mysql_backup.sh
chmod +x /mysql2/script/mysql_binlog_backup.sh

创建Mysql在线热备shell脚本
下面是Mysql数据库在线热备脚本,此脚本还提供,自动清理14天之前的备份

cat /data/backup/mysql_backup.sh

#!/bin/bash
. /home/mysql/.bash_profile

backup_dir="/mysql2/backup/xtrabackup"

innobackupex --defaults-file=/mysql2/data/mysql/conf/3306/my.cnf --user=root --password='root$83740' --socket=/mysql2/data/mysql/run/3306/mysql.sock ${backup_dir}

find ${backup_dir} -mindepth 1 -maxdepth 1 -mtime +14 -type d|xargs rm -rf >> /dev/null 2>&1

binlog日志备份脚本
有了数据库全备,还需要binlog日志,才能保证将业务数据零丢失,此脚本还提供自动清理15天之前的binlog备份日志。

cat /data/backup/mysql_binlog_backup.sh#!/bin/bash
. /home/mysql/.bash_profile

binlog_dir='/mysql2/data/mysql/log/3306'
backup_binlog_dir='/mysql2/backup/binlog_backup'

rsync -avP $binlog_dir/binlog.* $backup_binlog_dir

find ${backup_binlog_dir} -name "binlog.*" -type f ! -name "binlog.index" -mtime +

标签:binlog,mysql2,备份,Mysql,mysql,backup,全备,dir
来源: https://blog.51cto.com/15061930/2642086