有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
常用備份選項
-A, --all-databases
備份所有庫
例:mysqldump -uroot -p'QianFeng@123' -A > /opt/a.sql
解析:-A後面不需要指定東西,直接備份整個庫
-B, –databases bbs test mysql
備份多個資料庫
例:mysqldump -uroot -p'QianFeng@123' -B db1 db2 db3 > /opt/a.sql
解析:-B 後面可以跟多個資料庫,使用空格隔開
匯出指定表
例:mysqldump -uroot -p'QianFeng@123' db1 table1 table2 > /opt/a.sql
解析:如果不加-B,後面預設是 庫名 表名 表名 ,後面的表必須是前面的庫裡面的,庫名是唯一的,但是表名不是。
–no-data,-d
不匯出任何資料,只匯出資料庫表結構。
例:mysqldump -uroot -p'QianFeng@123' db1 -d > /opt/a.sql
解析:-d 前面需要指定好我們要備份什麼資料,-d指的是隻匯出表的結構。
更多相關知識,請存取欄目!
以上就是按資料備份時資料庫狀態的不同有幾種備份方式的詳細內容,更多請關注TW511.COM其它相關文章!