使用mysqlbinlog远程备份binlog
#!/bin/sh
MBL=/usr/local/mysql/bin/mysqlbinlog
MYSQLHOST=192.168.56.1
MYSQLPORT=3306
MYSQLUSER=replication_user
MYSQLPASS=replication_pass
BACKUPDIR=/media/binlogs/server2/
# time to wait before reconnecting after failure
RESPAWN=10
cd $BACKUPDIR
echo "Backup dir: $BACKUPDIR "
while :
do
LASTFILE=`ls -1 $BACKUPDIR|grep -v orig|tail -n 1`
TIMESTAMP=`date +%s`
FILESIZE=$(stat -c%s "$LASTFILE")
if [ $FILESIZE -gt 0 ]; then
echo "Backing up last binlog"
mv $LASTFILE $LASTFILE.orig$TIMESTAMP
fi
touch $LASTFILE
echo "Starting live binlog backup"
$MBL --raw --read-from-remote-server --stop-never --host $MYSQLHOST --port $MYSQLPORT -u $MYSQLUSER -p$MYSQLPASS $LASTFILE
echo "mysqlbinlog exited with $? trying to reconnect in $RESPAWN seconds."
sleep $RESPAWN
done
nohup livebinlog.sh 2>&1 > /var/log/livebinlog/server2.log &
更复杂的脚本可以参考:
https://github.com/ardabeyazoglu/mysql-binlog-backup/blob/master/syncbinlog.sh