mydumper 安裝
1、先安裝cmake,因為這個軟件要用cmake編譯
代碼如下 復制代碼# apt-get install cmake
2、接下來安裝mydumper兼容包,這個很關鍵,因為根據官網文檔,centos/redhat等其他系統需要的包名是不同的,可根據實際系統去查閱官網資料:
代碼如下 復制代碼 # apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev3、下載源碼安裝包:
#wget http://launchpad.net/mydumper/0.2/0.2.3/+download/mydumper-0.2.3.tar.gz
4、解壓包
代碼如下 復制代碼#tar xzvf mydumper-0.2.3.tar.gz
5、進入解壓目錄,准備開始安裝
代碼如下 復制代碼 #cd mydumper-0.2.3/6、用cmake進行編譯,注意後面有個字符"."(其實就是英文的句號),別落下了啊
代碼如下 復制代碼 #cmake .7、安裝
代碼如下 復制代碼 #make到這裡就已經安裝完畢了。
簡單的備份恢復測試
備份
代碼如下 復制代碼mydumper –kill-long-queries -u root -B dbname -T db-tables-name -p ‘password’ -v 2 -c -t 8 –outputdir=/home/backup/20120615/
恢復備份
代碼如下 復制代碼myloader -d /home/backup/20120615/ -o -B dbname -u root -p ‘passwd’ -t 4 &
myloader 大多參數和mydumper一樣
–directory, -d 要還原的數據目錄
–overwrite-tables, -o Drop any existing tables when restoring schemas
下面是各項常用參數解釋:
–host, -h 連接的mysql服務器
–user, -u 用戶備份的連接用戶
–password, -p
–port, -P 連接端口
–socket, -S 連接socket文件
–database, -B 需要備份的數據庫
–table-list, -T 需要備份的表,用,分隔
–outputdir, -o 輸出的目錄
–build-empty-files ,-e 如果表數據是空,還是產生一個空文件,默認無數據則只有表結構文件
–regex, -x 支持正則表達式,如mydumper –regex ’^(?!(mysql|test))’
–ignore-engines, -i 忽略的存儲引擎
–no-schemas, -m 不導出表結構
–long-query-guard 長查詢,默認60s,超過則通過mydumper
–kill-long-queries, 可以設置kill長查詢
–verbose, -v 0 = silent, 1 = errors, 2 = warnings, 3 = info,默認是2
–binlogs, -b 導出binlog www.111cn.net
–daemon, -D 啟用守護進程模式
–snapshot-interval, -I dump快照間隔時間,默認60s
–logfile, -L mysqldumper日志輸出,一般在Daemon模式下使用
動備份mysql的shell腳本
該腳本基本功能如下(如果允許的話請自行增加異地/異機災備):
1、備份數據庫;
2、加上了過期代碼,保留了7天的備份,以免硬盤被撐爆了,有需求的請自行增減時間;
3、通過對比可得知數據庫備份使用了多長時間。
代碼如下 復制代碼
#!/bin/bash
#This is a ShellScript for auto DB-Backup
#201204 by szy
#Setting
DBName=test
DBUser=root
DBPasswd=password
www.111cn.net
BackupPath=/home/backup/db
LogFile=/home/backup/log/DBbackup.log
NewFile="$BackupPath"/"$DBName1"/$(date +%y%m%d)
OldFile="$BackupPath"/"$DBName1"/$(date +%y%m%d --date='7 days ago')
echo "----------------Backup Start-------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "-----------------------------------------------------" >> $LogFile
#Delect Old File
if [ -d $OldFile ]
then
rm -rf $OldFile >> $LogFile 2>&1
echo "----------[$OldFile]Delete Old File Success!----------" >> $LogFile
else
echo "----------[$DBName]No Old Backup File!-------------" >> $LogFile
fi
#Backup
echo "----------------------$DBName----------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
if [ -d $NewFile ]
then
echo "----------[$NewFile]The Backup File is exists,Can't Backup!----------" >> $LogFile
else
mkdir $NewFile
mydumper --kill-long-queries -u $DBUser -B $DBName -p $DBPasswd -v 2 -c -t 8 --outputdir=$NewFile
fi
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------This ShellScript End-------------------" >> $LogFile