怎么對(duì)mysql備份數(shù)據(jù)庫(kù)與恢復(fù)
??隨著自動(dòng)化辦公與電子商務(wù)的不斷發(fā)展,企業(yè)對(duì)信息系統(tǒng)的依賴性越來(lái)越高,而數(shù)據(jù)庫(kù)在信息系統(tǒng)中擔(dān)任著非常重要的角色。尤其是一些對(duì)數(shù)據(jù)可靠性要求高的行業(yè),如果發(fā)生數(shù)據(jù)丟失,其損失是非常嚴(yán)重的。因此,我們對(duì)數(shù)據(jù)庫(kù)指定詳細(xì)的數(shù)據(jù)庫(kù)備份與災(zāi)難恢復(fù)的策略是完全有必要的。一些對(duì)數(shù)據(jù)可靠性要求高的行業(yè),如果發(fā)生數(shù)據(jù)丟失,其損失是非常嚴(yán)重的。因此,我們對(duì)數(shù)據(jù)庫(kù)指定詳細(xì)的數(shù)據(jù)庫(kù)備份與災(zāi)難恢復(fù)的策略是完全有必要的。下面就由新網(wǎng)小編和大家講一講怎么對(duì)mysql備份數(shù)據(jù)庫(kù)與恢復(fù)。
??1.造成數(shù)據(jù)丟失的原因
??程序錯(cuò)誤、人為操作錯(cuò)誤、運(yùn)算錯(cuò)誤、磁盤故障、災(zāi)難(火災(zāi)、地震)和盜竊等
??2.數(shù)據(jù)備份的類型
??1)從物理與邏輯的角度分類
??物理備份可分為:
??冷備份(脫機(jī)備份):在數(shù)據(jù)庫(kù)關(guān)閉狀態(tài)下進(jìn)行備份操作
??熱備份(聯(lián)機(jī)備份):在數(shù)據(jù)庫(kù)處于運(yùn)行狀態(tài)時(shí)進(jìn)行備份操作,該備份方法依賴數(shù)據(jù)庫(kù)的日志文件
??溫備份:數(shù)據(jù)庫(kù)鎖定表格(不可寫入但可讀)的狀態(tài)下進(jìn)行備份操作
??說白了物理備份是對(duì)數(shù)據(jù)庫(kù)操作系統(tǒng)的物理文件(如數(shù)據(jù)文件、日志文件等)的備份,這種類型的備份適用于在出現(xiàn)問題時(shí)需要快速恢復(fù)的大型重要數(shù)據(jù)庫(kù)。
??邏輯備份是對(duì)數(shù)據(jù)庫(kù)邏輯組件(如表等數(shù)據(jù)庫(kù)對(duì)象)的備份,這種類型的備份使用于可以編輯數(shù)據(jù)值或表結(jié)構(gòu)較小的數(shù)據(jù)量,或者在不同的機(jī)器體系結(jié)構(gòu)上重新創(chuàng)建數(shù)據(jù)。
??2)從數(shù)據(jù)庫(kù)的備份策略角度分類
??從備份策略可分為:
??完全備份:每次對(duì)數(shù)據(jù)進(jìn)行完整的備份,即對(duì)整個(gè)數(shù)據(jù)庫(kù)的備份、數(shù)據(jù)庫(kù)結(jié)構(gòu)和文件結(jié)構(gòu)的備份,保存的是備份完成時(shí)刻的數(shù)據(jù)庫(kù),是差異備份與增量備份的基礎(chǔ)。完全備份的備份與恢復(fù)操作都非常簡(jiǎn)單方便,但數(shù)據(jù)存在大量的重復(fù),并且會(huì)占用大量的磁盤空間,備份時(shí)間也很長(zhǎng)。
??差異備份:備份那些從上一次完全備份之后被修改過的所有文件,備份的時(shí)間節(jié)點(diǎn)是從上次完整備份起,備份數(shù)據(jù)量會(huì)越來(lái)越大?;謴?fù)數(shù)據(jù)時(shí),只需恢復(fù)上次的完整備份與最近一次的差異備份。
??增量備份:只有那些在上次完全備份或者增量備份后被修改的文件才會(huì)被備份。以上次完整備份或上次增量備份的時(shí)間為時(shí)間點(diǎn),僅備份這之間的數(shù)據(jù)變化,因而備份的數(shù)據(jù)量小,占用空間小,備份速度快。但恢復(fù)時(shí),需要從上一次的完整備份開始到***一次增量備份之間的所有增量一次恢復(fù),如中間某次的備份數(shù)據(jù)損壞,將導(dǎo)致數(shù)據(jù)的丟失。
??二、常見的備份方法
??1)物理冷備份
??需要在數(shù)據(jù)庫(kù)關(guān)閉狀態(tài)下進(jìn)行,能夠較好的保證數(shù)據(jù)庫(kù)的完整性。一般用于非核心業(yè)務(wù),這類業(yè)務(wù)一般都允許終端,物理冷備份的特點(diǎn)就是速度快,恢復(fù)操作簡(jiǎn)單。
??通常通過直接打包數(shù)據(jù)庫(kù)文件夾(如:/usr/local/mysql/data)來(lái)實(shí)現(xiàn)
??2)專用備份工具mysqldump或mysqlhotcopy
??mysqldump是客戶端常用邏輯備份程序,能夠產(chǎn)生一組被執(zhí)行以再現(xiàn)原始數(shù)據(jù)庫(kù)對(duì)象定義和表數(shù)據(jù)的SQL語(yǔ)句。它可以轉(zhuǎn)儲(chǔ)一個(gè)到多個(gè)MySQL數(shù)據(jù)庫(kù),對(duì)其進(jìn)行備份或傳輸?shù)竭h(yuǎn)程SQL服務(wù)器。Mysqldump更為通用,因?yàn)樗梢詡浞莞鞣N表。
??Mysqlhotcopy是由Tim Bunce最初編寫和貢獻(xiàn)的Perl腳本。Mysqlhotcopy僅用于備份MyISAM和ARCHIVE表。它只能運(yùn)行在UNIX或linux上,因?yàn)槭褂梅秶苄?,在這里就不細(xì)說了。
??3)通過啟用二進(jìn)制日志進(jìn)行增量備份
??MySQL支持增量備份,進(jìn)行增量備份時(shí)必須啟用二進(jìn)制日志。二進(jìn)制日志文件為用戶提供復(fù)制,對(duì)執(zhí)行備份點(diǎn)后進(jìn)行的數(shù)據(jù)庫(kù)更改所需的信息進(jìn)行恢復(fù)。如果進(jìn)行增量備份,需要刷新二進(jìn)制日志。
??4)通過第三方工具備份
??Percona XtraBackup是一個(gè)免費(fèi)的MySQL熱備份軟件,支持在線熱備份Innodb和XtraDB,也可以支持MySQL表備份,不過MyISAM表的備份要在表鎖的情況進(jìn)行。由于內(nèi)容太多,這里就不詳細(xì)講解了,有興趣的話可以查閱該軟件的詳細(xì)介紹了解一下。
??三、MySQL的增量備份與恢復(fù)
??1.增量備份的概述
??1)增量恢復(fù)的特點(diǎn)
??與完全備份不同,增量備份沒有重復(fù)數(shù)據(jù),備份量不大,時(shí)間短;但其恢復(fù)麻煩,需要上次完全備份及完全備份之后所有的增量備份才能恢復(fù),而且要對(duì)所有增量備份進(jìn)行逐個(gè)反推恢復(fù),MySQL沒有提供直接的增量備份辦法,可以通過MySQL提供的二進(jìn)制日志(binary logs)間接實(shí)現(xiàn)增量備份。
??2)MySQL二進(jìn)制日志對(duì)備份的意義
??二進(jìn)制日志保存了所有更新或者可能更新數(shù)據(jù)庫(kù)的操作。二進(jìn)制日志在啟動(dòng)MySQL服務(wù)器后開始記錄,并在文件達(dá)到二進(jìn)制日志所設(shè)置的***值或者接收到flush logs命令后重新創(chuàng)建新的日志文件,生成二進(jìn)制文件序列,并及時(shí)把這些日志保存到安全的存儲(chǔ)位置,即可完成一個(gè)時(shí)間段的增量備份。使用max_binlog_size配置項(xiàng)可以設(shè)置二進(jìn)制日志文件的***值,如果二進(jìn)制文件的大小超過了max_binlog_size,它就會(huì)自動(dòng)創(chuàng)建新的二進(jìn)制文件。
??要進(jìn)行MySQL的增量備份,首先要開啟二進(jìn)制日志功能,開啟MySQL的二進(jìn)制日志功能的實(shí)現(xiàn)方法有很多種,最常用的是在MySQL配置文件的mysql項(xiàng)下加入"log-bin=/文件路徑/文件名"前綴,如log-bin=/usr/local/mysql/mysql-bin,然后重啟MySQL服務(wù),就可以在指定路徑下查看二進(jìn)制日志文件了。默認(rèn)情況下,二進(jìn)制日志文件的擴(kuò)展名是一個(gè)六位的數(shù)字,如mysql-bin.000001。
??關(guān)于增量恢復(fù)的操作在這里總結(jié)的可能有點(diǎn)籠統(tǒng),需要通過案例來(lái)了解,下個(gè)文檔我總結(jié)一個(gè)關(guān)于增量備份與恢復(fù)的案例我們一起來(lái)再詳細(xì)的了解一下。小伙伴們要想獲得更多mysql備份數(shù)據(jù)庫(kù)的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)!
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科