对于Mysql数据库运维人员,什么最重要,当然是数据库备份最重要,没有之一。在这里我要分享两个Mysql在线全备和binlog日志备份shell脚本给大家,其中Mysql数据库在线全备用的innobackupex工具。
![6122ee21f18aefd0a6ccb2d766af60b3.png](https://img-blog.csdnimg.cn/img_convert/6122ee21f18aefd0a6ccb2d766af60b3.png)
innodbackupex在线热备工具
innodbackupex工具是一个Perl脚本,它对xtrabackup 程序的做了一个封装。innodb的Mysql数据库在线热备份工具,它集成了xtrabackup和其他功能,并且在还有提供增强功能。它能帮你将innodb表和MyISAM表和服务器的其他部分一起执行表的在线热备份,这个功能xtrabackup所不能提供的。
创建备份目录
在执行备份脚本之前,需要先创建好全备和binlog备份存放的目录。
mkdir -p /dbdata/scriptmkdir -p /dbdata/backup/xtrabackupmkdir -p /dbdata/backup/binlog_backup>/dbdata/script/mysql_backup.sh>/dbdata/script/mysql_binlog_backup.shchmod +x /dbdata/script/mysql_backup.shchmod +x /dbdata/script/mysql_binlog_backup.sh
![9a84479bc36888881b73d5c815444640.png](https://img-blog.csdnimg.cn/img_convert/9a84479bc36888881b73d5c815444640.png)
创建Mysql在线热备shell脚本
下面是Mysql数据库在线热备脚本,此脚本还提供,自动清理14天之前的备份
cat /data/backup/mysql_backup.sh #!/bin/bash. /home/mysql/.bash_profilebackup_dir="/mysql2/backup/xtrabackup"innobackupex --defaults-file=/mysql2/data/mysql/conf/3306/my.cnf --user=roo - -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日志备份脚本
![3134c481cc63aef17cebf65ab62a49f2.png](https://img-blog.csdnimg.cn/img_convert/3134c481cc63aef17cebf65ab62a49f2.png)
有了Mysql数据库全备,还需要binlog日志,才能保证将业务数据零丢失,此脚本还提供自动清理15天之前的binlog备份日志。
cat /dbdata/backup/mysql_binlog_backup.sh#!/bin/bash. /home/mysql/.bash_profilebinlog_dir='/dbdata/data/mysql/log/3306'backup_binlog_dir='/dbdata/backup/binlog_backup'rsync -avP $binlog_dir/binlog.* $backup_binlog_dirfind ${backup_binlog_dir} -name "binlog.*" -type f ! -name "binlog.index" -mtime +15 | xargs rm -rf >> /dev/null 2>&1