一、單獨備份數(shù)據(jù)庫
mysqldump -uroot -poldboy oldboy >/opt/oldboy.sql ? ? ? ? 最簡單的備份 ? ? ? ?
1) ?mysql基于myisam引擎
mysqldump -uroot -poldboy ?-B -x ?-F oldboy | gzip >/opt/oldboy.sql.gz
DBA給的備份:
mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /mybackup/alldatabase.sql
2) ?5.5以后默認是innodb(推薦)
mysqldump -uroot -poldboy ?-B ?-F --single-transactio oldboy | gzip >/opt/oldboy.sql.gz
DBA給的備份:
mysqldump --user=root --all-databases --flush-privileges --single-transaction? --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /mybackup/alldatabase.sql?
二、多實例分庫備份數(shù)據(jù)庫(用于寫shell腳本)
主要思想就是把庫列出來,一個for循環(huán)備份
mysql ?-uroot ?-poldboy ?-e"show databases;" | egrep -Evi ?"info|perfor" |sed -r 's#^([a-z].*$)#mysqldump -uroot -poldboy -B ?\1 |gzip >/opt/1.sql.gz #g' |bash
/bin/bash BAKPATH=/opt/mysql MYUSER=root MYPASSWD=123456 SOCKET=/data/3308/mysql.sock MYCMD="mysql?-u$MYUSER?-p$MYPASSWD?-S?$SOCKET" MYSQLDUMP=mysqldump?-u$MYUSER?-P$MYPASSWD?-S?$SOCKET?-B?-x?-F?-R [?!?-d?$BAKPATH?]?&&?mkdir?-p?$BAKPATH DBLIST=`$MYCMD?-e?"show?databases;?|?sed?1d"?|egrep?-Evi?"mysql|info"?` for?dbname?in?DBLIST DO ????????$MYSQLDUMP??$dbname?|gzip?>?/$BAKPATH/${dbname}_$(date?+%F).sql.gz DONE提示:-B是連創(chuàng)建庫和查詢庫的語句都備份了,所以建議加上(一般備份多個庫的時候用),-x所有數(shù)據(jù)庫中的所有表加鎖
備份表
mysqldump -uroot -poldboy 庫名 表名 >/opt/table.sql
三、多實例分表備份
主要思想就是把表列出來,兩層for循環(huán)備份
/bin/bash BAKPATH=/opt/mysql MYUSER=root MYPASSWD=123456 SOCKET=/data/3308/mysql.sock MYCMD="mysql?-u$MYUSER?-p$MYPASSWD?-S?$SOCKET" MYSQLDUMP=mysqldump?-u$MYUSER?-P$MYPASSWD?-S?$SOCKET??-x?-F?-R [?!?-d?$BAKPATH?]?&&?mkdir?-p?$BAKPATH DBLIST=`$MYCMD?-e?"show?databases;?|?sed?1d"?|egrep?-Evi?"mysql|info"?` for?dbname?in?DBLIST do ????????TLIST=`$MYCMD?-e?"show?tables?from?$dbname;"?|?sed?1d` ????????for?tname?in?$TLIST ????????do ????????????????mkdir?-p?$BAKPATH/$dbname ????????????????$MYSQLDUMP?$dbname?$tname?|gzip?>/$BAKPATH/$dbname/${tname}_$(date?+%F).sql.gz ????????done ????????$MYSQLDUMP??$dbname?|gzip?>?/$BAKPATH/${dbname}_$()$(date?+%F).sql.gz done注:(純手打,有問題請指出)
如果數(shù)據(jù)庫不大建議兩個都備份,有時候只要求恢復一個表
-d參數(shù)只備份表結(jié)構(gòu)
-t參數(shù)只備份數(shù)據(jù)
-F刷新binlog日志
其他參數(shù) mysqldump --help查詢
批量恢復庫大概過程
for dbname in `ls *.sql`;do mysql -uroot -p123456 < $dbname.sql;done
四、增量備份
增量備份時一定要了解二進制的三種模式
可參考內(nèi)容:http://blog.51yip.com/mysql/1042.html
http://blog.csdn.net/jesseyoung/article/details/41211841
五、數(shù)據(jù)庫恢復
恢復時最好的辦法時停庫,不讓往里面寫?
1.數(shù)據(jù)庫可能有多個,但是日志文件記錄的是全部數(shù)據(jù)庫的變化,所以先進行將二進制文件按照數(shù)據(jù)庫進行拆分,用-d參數(shù)可以實現(xiàn):
mysqlbinlog? -d? ?oldboy /var/lib/mysql/mysql-bin.000002 > /tmp/oldboy.sql(去掉誤操作的語句),先導入全備,在導入增備
2.指定時間可能會有誤差,一半用指定位置恢復,確認跳過點后進行恢復如下:
a)mysqlbinlog?mysql-bin.000002 --start-position=370 --stop-position=440? | mysql -uroot -p
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁題目:mysql分庫分表備份-創(chuàng)新互聯(lián)
分享鏈接:http://aaarwkj.com/article40/cdhoeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、微信公眾號、網(wǎng)頁設計公司、定制網(wǎng)站、Google、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容