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