有3種備份方式:1.冷備份,也稱為離線備份,是指在關閉資料庫且資料庫無法更新的狀況下進行的資料庫完整備份,並可對資料進行指定還原。 2.熱備份,也稱為線上備份,是在資料庫運作的情況下,採用archivelog mode方式備份資料庫的方法。 3.邏輯備份,是指使用軟體技術從資料庫中匯出資料並寫入輸出文件,該文件的格式一般與原始資料庫的文件格式不同,只是原始資料庫中資料內容的映像。
本教學操作環境:windows7系統、Dell G3電腦。
按資料備份時資料庫狀態的不同有3種備份方式:冷備份(離線備份)、熱備份(線上備份)、邏輯備份。
資料庫的冷備份
冷備份(cold backup),也稱為離線備份,是指在關閉資料庫且資料庫不能在更新的狀況下進行的資料庫完整備份,並可對資料進行指定還原。
這樣做的好處是可以保證資料庫的完整性,備份過程簡單且復原速度相對快一些,但是關閉資料庫會影響現有業務的進行。伺服器停止運作期間,使用者不能再繼續造訪網站。例如,當一些電商網站店慶促銷時,如果為了備份要停庫,那麼帶來的代價損失將無法估量。所以冷備一般用於不是很重要、非核心的業務上面。
冷備份是最快、最安全的方法。 冷備份的優點是:
1、 是非常快速的備份方法(只需拷貝檔案)
2、 輕易歸檔(簡單拷貝即可)
3、 輕易恢復到某個時間點上(只需將文件再拷貝回去)
4、 能與歸檔方法結合,做資料庫「最佳狀態」的恢復。
5、 低度維護,高度安全。
但冷備份也有以下不足:
1、 單獨使用時,只能提供到「某一時間點上」的還原。
2、 再實作備份的整個過程中,資料庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
3、 若磁碟空間有限,只能拷貝到磁帶等其他外部儲存裝置上,速度會很慢。
4、 不能按表或依使用者恢復。
假如可能的話(主要看效率),應將資訊備份到磁碟上,然後啟動資料庫(使用戶可以工作)並將備份的資訊拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。
冷備份中必須拷貝的檔案包括:
1、 所有資料檔案
2、 所有控制檔
3 、所有線上REDO LOG檔案
4、 Init.ora檔案(可選)
值得注重的使冷備份必須在資料庫關閉的情況下進行,當資料庫處於開啟狀態時,執行資料庫檔案系統備份是無效的。
資料庫的熱備份
熱備份是在資料庫運作的情況下,採用archivelog mode方式備份資料庫的方法。即熱備份是系統處於正常運作狀態下的備份。所以,如果你有一個冷備份而且又有熱備份文件,在發生問題時,就可以利用這些資料恢復更多的資訊。熱備份要求資料庫在Archivelog( ) 方式下操作,並需要大量的檔案空間。一旦資料庫運行在archivelog狀態下,就可以做備份了。
熱備份的指令檔由三個部分組成:
1.資料檔案一個表空間一個表空間的備份。
(1) 設定表空間為備份狀態
(2) 備份表空間的資料檔案
(3) 回覆表空間為正常狀態
2.備份歸檔log檔案
(1) 暫時停止歸檔程序
(2) log下那些在archive rede log目標目錄中的檔案
(3) 重新啟動archive行程
(4) 備份歸檔的redo log檔
3.用alter database bachup controlfile指令來備份控製檔案熱備份的優點是:
可在表空間或資料庫檔案層級備份,備份的時間短。
備份時資料庫仍可使用。
可達到秒級恢復(恢復到某一時間點)。
可對幾乎所有資料庫實體做復原
#復原是快速的,在大多數情況下愛資料庫仍工作時復原。
熱備份的不足是:
1.不能出錯,否則後果嚴重
2.若熱備份不成功,所得結果不可用於時間點的復原
3.因難於維護,所以要非凡仔細小心,不答應「以失敗告終」。
資料庫的邏輯備份
邏輯備份是指使用軟體技術從資料庫中匯出資料並寫入輸出文件,該文件的格式一般與原始資料庫的文件格式不同,只是原始資料庫中資料內容的映像。因此,邏輯備份檔案只能用來對資料庫進行邏輯恢復,即資料導入,而不能依資料庫原來的儲存特徵進行物理恢復。邏輯備份一般用於增量備份,即備份那些在上次備份以後改變的資料。
邏輯備份:備份的是建表、建庫、插入等作業所執行SQL語句(DDL DML DCL),適用於中小型資料庫,效率相對較低。
**本質:**導出的是SQL語句檔案
**優點:**不論是什麼儲存引擎,都可以用mysqldump備成SQL語句
**缺點:**速度較慢,匯入時可能會出現格式不相容的突發情況,無法做增量備份和累積增量備份。
提供三種等級的備份,表級,庫級和全庫級
注意:
本身为客户端工具: 远程备份语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql 本地备份语法: # mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql
常用備份選項
mysqldump -uroot -p'QianFeng@123' -A > /opt/a.sql
範例:
mysqldump -uroot -p'QianFeng@123' -B db1 db2 db3 > /opt/a.sql
mysqldump -uroot -p'QianFeng@123' db1 table1 table2 > /opt/a.sql
mysqldump -uroot -p'QianFeng@123' db1 -d > /opt/a.sql##解析:-d 前面要指定好我們要備份什麼數據,-d指的是只導出表格的結構。
更多相關知識,請造訪
常見問題以上是按資料備份時資料庫狀態的不同有幾種備份方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!