分享兩個Mysql在線全備和binlog日誌備份腳本

對於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 +
相關文章
相關標籤/搜索