物理備份和邏輯備份的區別

2021-10-10 13:57:33 字數 970 閱讀 8597

首先來聊聊 mysqldump 的備份原理:

而使用 mysqldump 備份出的檔案要進行恢復,實際就是執行 sql 檔案的過程,這裡就不展開講解了。

再來看看 xtrabackup 的備份原理:

同時也講下 xtrabackup 的恢復原理:

恢復的目的實際可以看成把備份的資料恢復到乙個一致性位點的過程,那麼怎麼保證事務引擎和非事務引擎在同乙個位點呢?

又回到備份時的邏輯,因為非事務引擎是在執行 ftwrl 後進行的資料檔案拷貝,這個過程資料庫處於唯讀的,因此非事務引擎對應的就是 ftwrl 的位點。

而 innodb 的 idb 檔案拷貝是在 ftwrl 前做的,拷貝出來的不同表的 idb 檔案最後更新時間點很可能不一樣,但是 innodb 的 redo log 是從備份開始一直持續拷貝的,拷貝一直持續到 ftwrl 後,所以最終通過應用 redo log 的 idb 資料位點也是和 ftwrl 一致的。

看完兩個工具的備份原理,再來聊聊它們的區別:

3.1 加鎖時間

兩個工具都會對 mysql 加全域性讀鎖,但是 mysqldump 在備份開始的時候加的;而 xtrabackup 是在拷貝完事務引擎表的資料檔案後,再加的全域性讀鎖。

3.2 備份恢復時間

由於 mysqldump 備份時,實際是去資料庫中執行:

select * from table_name;

恢復是在資料庫裡匯入備份出的 sql 語句。

而 xtrabackup 備份時,是拷貝的物理檔案;

恢復時直接複製物理檔案。

因此 xtrabackup 備份恢復的時間要比 mysqldump 短很多。

3.3 適用場景

正是因為 mysqldump 備份時產生表結構和資料的 sql 語句,因此其適用於資料量較少、跨版本資料庫備份恢復、單庫單錶備份等場景。

而 xtrabackup 適用於大資料量、整庫備份等場景。

邏輯備份和物理備份

針對oracle很好理解 物理備份就是轉儲oracle物理檔案 如資料檔案 控制檔案 歸檔日誌檔案等 一旦資料庫發生故障,可以利用這些檔案進行還原 邏輯備份就是對資料庫物件 如使用者 表 儲存過程等 利用export等工具進行匯出工作,可以利用import等工具把邏輯備份檔案匯入到資料庫 邏輯備份是...

Oracle的物理備份與邏輯備份

物理備份是將實際組成資料庫的作業系統檔案從一處拷貝到另一處的備份過程,通常是從磁碟到磁帶。可以使用 oracle 的恢復治理器 recovery manager,rman 或作業系統命令進行資料庫的物理備份。邏輯備份是利用sql語言從資料庫中抽取資料並存於二進位制檔案的過程。oracle提供的邏輯備...

在Oracle中,物理備份和邏輯備份分別是什麼?

下面以資料庫工具資料幫浦expdp impdp為例說明,給出資料幫浦的一些常用語法命令 1 按使用者匯出 expdp scott tiger orcl schemas scott dumpfile expdp.dmp directory dpdata1 2 並行程序parallel expdp sc...