MySQL備份腳本

MySQL分庫備份腳本 # cat /scripts/mysql_store_backup.sh

#!/bin/bash

MYPASS="123456"
SOCKET=/tmp/mysql.sock
MYLOGIN="mysql -uroot -p$MYPASS -S $SOCKET"
MYDUMP="mysqldump -uroot -p$MYPASS -S $SOCKET -B --single-transaction --all-databases  --flush-logs"
DATABASE="$($MYLOGIN -e "show databases;" |egrep -vi "Data|_schema|mysql")"

for dbname in $DATABASE
do
    MYDIR=/backup/$dbname
    [ -d $MYDIR ] || mkdir -p $MYDIR
    $MYDUMP $dbname|gzip >$MYDIR/${dbname}_$(date +%F).sql.gz
done


MySQL分庫分表備份腳本 # cat /scripts/mysql_table_backup.sh

#/bin/bash

MYPASS="123456"
SOCKET=/tmp/mysql.sock
MYLOGIN="mysql -uroot -p$MYPASS -S $SOCKET"
MYDUMP="mysqldump -uroot -p$MYPASS -S $SOCKET -B --single-transaction --all-databases  --flush-logs"
DATABASE="$($MYLOGIN -e "show databases;" |egrep -vi "Data|_schema|mysql")"

for dbname in $DATABASE
do
    TABLE="$($MYLOGIN -e "use $dbname;show tables;" |sed '1d')"
    for tname in $TABLE
    do
        MYDIR=/backup/$dbname
        [ -d $MYDIR ] || mkdir -p $MYDIR
        $MYDUMP $dbname $tname|gzip >$MYDIR/${dbname}_${tname}$(date +%F).sql.gz
    done
done

MySQL增量備份腳本,(增量備份是基於 binlog 日誌的) # cat /scripts/mysql_zl_back.sh

#/bin/bash

MYPASS="123456"
mysql -uroot -p$MYPASS -e "flush logs;"

轉自:http://oldboy.blog.51cto.com/2561410/1731109 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章