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