備份:
目前成都創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鶴壁網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。按是否備份全部數(shù)據(jù)可以將備份劃分為:
l 完全備份
l 增量備份:指的是備份自上一次備份以來(增量或完全)以來變化的數(shù)據(jù); 特點(diǎn): 節(jié)約空間、還原麻煩。
l 差異備份:指的是備份自上一次完全備份以來變化的數(shù)據(jù) 特點(diǎn): 浪費(fèi)空間、還原比增量備份簡單。
一般情況下,根據(jù)備份策略組合使用:完全+增量;完全+差異。
常用備份工具:
1. mysqldump : 邏輯備份工具, 適用于所有的存儲引擎, 支持溫備、完全備份、部分備份、對于InnoDB存儲引擎支持熱備
2. cp, tar 等歸檔復(fù)制工具: 物理備份工具, 適用于所有的存儲引擎, 冷備、完全備份、部分備份
3. lvm2 snapshot: 幾乎熱備, 借助文件系統(tǒng)管理工具進(jìn)行備份
4. mysqlhotcopy: 名不副實(shí)的的一個工具, 幾乎冷備, 僅支持MyISAM存儲引擎
5. xtrabackup: 一款非常強(qiáng)大的InnoDB/XtraDB熱備工具, 支持完全備份、增量備份, 由percona提供
備份策略:
針對不同的場景下, 我們應(yīng)該制定不同的備份策略對數(shù)據(jù)庫進(jìn)行備份, 一般情況下, 備份策略一般為以下4種:
a. 直接cp,tar復(fù)制數(shù)據(jù)庫文件
b. mysqldump+復(fù)制BIN LOGS
c. lvm2快照+復(fù)制BIN LOGS
d. xtrabackup
以上的幾種解決方案分別針對于不同的場景:
? 如果數(shù)據(jù)量較小, 可以使用第一種方式, 直接復(fù)制數(shù)據(jù)庫文件?!救绻菍?fù)制的文件拷貝到新的數(shù)據(jù)庫時,需要新數(shù)據(jù)的版本號高于舊數(shù)據(jù)庫,僅有MYISAM引擎支持,INNODB不支持】
? 如果數(shù)據(jù)量還行, 可以使用第二種方式, 先使用mysqldump對數(shù)據(jù)庫進(jìn)行完全備份, 然后定期備份BINARY LOG達(dá)到增量備份的效果。
? 如果數(shù)據(jù)量一般, 而又不過分影響業(yè)務(wù)運(yùn)行, 可以使用第三種方式, 使用lvm2的快照對數(shù)據(jù)文件進(jìn)行備份, 而后定期備份BINARY LOG達(dá)到增量備份的效果。
?
? 如果數(shù)據(jù)量很大, 而又不過分影響業(yè)務(wù)運(yùn)行, 可以使用第四種方式, 使用xtrabackup進(jìn)行完全備份后, 定期使用xtrabackup進(jìn)行增量備份或差異備份。
1、Mysqldump實(shí)現(xiàn)備份恢復(fù)
【windows環(huán)境下】
1) 備份單個數(shù)據(jù)庫或單個數(shù)據(jù)庫中的指定表:
mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 –database 數(shù)據(jù)庫名 表名> 文件名.sql
2) 備份多個數(shù)據(jù)庫:
mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 –database db1 db2 db3 > 文件名.sql3) 備份所有數(shù)據(jù)庫:
mysqldump --all -databases > backupname.sql4) 壓縮備份:
mysqldump -h hostname -u username -p password -database databasename | gzip > backupfile.sql.gz5) 還原MySQL數(shù)據(jù)庫的命令:
mysql -hhostname -uusername -ppassword databasename < backupfile.sql6) 還原壓縮的MySQL數(shù)據(jù)庫
gunzip < backupfile.sql.gz | mysql -u username -p password dbname數(shù)據(jù)遷移:
可以分為:同版本MYSQL遷移;不同版本MYSQL遷移;不同數(shù)據(jù)庫遷移
1、直接遷移(備份還原同時進(jìn)行)【同版本】
mysqldump -h hostname1-u root -p password=password1 -all-databases | mysql –h hostname2 -u root -password=password22、【不同版本】低版本可以向高版本遷移,高版本很難向低版本遷移。
3、不同數(shù)據(jù)庫遷移,可以實(shí)現(xiàn),但比較復(fù)雜。
===========================================提高==============================================================
增量備份
小量的數(shù)據(jù)庫可以每天進(jìn)行完整備份,因?yàn)檫@也用不了多少時間,但當(dāng)數(shù)據(jù)庫很大時,就不太可能每天進(jìn)行一次完整備份了,這時候就可以使用增量備份。增量備份的原理就是使用了mysql的binlog志。
1、首先做一次完整備份:
mysqldump -h20.6.208.183 -utest2 -p123 -P3310 --single-transaction --master-data=2 test>test.sql這時候就會得到一個全備文件test.sql
在sql文件中我們會看到:
-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;是指備份后所有的更改將會保存到bin-log.000002二進(jìn)制文件中。
2、在test庫的t_student表中增加兩條記錄,然后執(zhí)行flush logs命令。這時將會產(chǎn)生一個新的二進(jìn)制日志文件bin-log.000003,bin-log.000002則保存了全備過后的所有更改,既增加記錄的操作也保存在了bin-log.00002中。
3、再在test庫中的a表中增加兩條記錄,然后誤刪除t_student表和a表。a中增加記錄的操作和刪除表a和t_student的操作都記錄在bin-log.000003中。
恢復(fù)
1、首先導(dǎo)入全備數(shù)據(jù)
mysql -h20.6.208.183 -utest2 -p123 -P3310 < test.sql,也可以直接在mysql命令行下面用source導(dǎo)入
2、恢復(fù)bin-log.000002
mysqlbinlog bin-log.000002 |mysql -h20.6.208.183 -utest2 -p123 -P3310
3、恢復(fù)部分 bin-log.000003
在general_log中找到誤刪除的時間點(diǎn),然后更加對應(yīng)的時間點(diǎn)到bin-log.000003中找到相應(yīng)的position點(diǎn),需要恢復(fù)到誤刪除的前面一個position點(diǎn)。
可以用如下參數(shù)來控制binlog的區(qū)間
--start-position 開始點(diǎn) --stop-position 結(jié)束點(diǎn)
--start-date 開始時間 --stop-date 結(jié)束時間
找到恢復(fù)點(diǎn)后,既可以開始恢復(fù)。
mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h20.6.208.183 -utest2 -p123 -P3310參考:
1、學(xué)會4種MYSQL備份方法 2、常用MSQL備份還原命令
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。