对于Mysql数据库运维人员,什么最重要,固然是数据库备份最重要,没有之一。在这里我要分享两个Mysql在线全备和binlog日志备份shell脚本给你们,其中Mysql数据库在线全备用的innobackupex工具。mysql
innodbackupex在线热备工具
innodbackupex工具是一个Perl脚本,它对xtrabackup 程序的作了一个封装。innodb的Mysql数据库在线热备份工具,它集成了xtrabackup和其余功能,而且在还有提供加强功能。它能帮你将innodb表和MyISAM表和服务器的其余部分一块儿执行表的在线热备份,这个功能xtrabackup所不能提供的。sql
建立备份目录
在执行备份脚本以前,须要先建立好全备和binlog备份存放的目录。shell
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备份日志。bash
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 +