文件資料庫服務是雲服務商重要的資料庫服務產品之一,而資料庫的備份與恢復功能是資料庫容災重要且必不可少的手段。文件資料庫雲服務提供了資料庫的備份與恢復功能,但我們要了解其背後的機制,文件資料庫服務採用的是開源的mongoDB,自然就要先從mongoDB資料庫的備份和恢復機制入手。
mongoDB的資料庫備份恢復機制主要有兩種,
一是使用自帶的mongodump&mongorestore工具;
二是基於資料檔案的備份和恢復。
現簡要闡述如下:
注意當恢復資料時,mongorestore不會刪除資料, 所以如果恢復的是當前的資料庫例項, 就確保使用-drop 標記執行。
為了更深入瞭解備份和恢復的機制,打算尋求客服的幫助。
文件資料庫服務是雲服務商重要的資料庫服務產品之一,而資料庫的備份與恢復功能是資料庫容災重要且必不可少的手段。文件資料庫雲服務提供了資料庫的備份與恢復功能,但我們要了解其背後的機制,文件資料庫服務採用的是開源的mongoDB,自然就要先從mongoDB資料庫的備份和恢復機制入手。
mongoDB的資料庫備份恢復機制主要有兩種,
一是使用自帶的mongodump&mongorestore工具;
二是基於資料檔案的備份和恢復。
現簡要闡述如下:
一、mongodump與mongorestore1、mongodump用於把資料庫內容以BSON檔案備份,可用於備份實時執行的資料庫(無需鎖住或者關閉資料庫);備份命令列:$ mongodump -h localhost --port 27017執行後將資料預設備份到dump目錄,Dump目錄包含每個集合的所有文件, 包含定義使用者和索引的系統集合。但索引本身的資料不會包含到dump目錄裡。 這意味著恢復資料庫時索引需要重建。 如果有很大的資料集, 或者許多索引,則會花費很多時間。2、mongorestore用於讀取BSON檔案並恢復它們;恢復命令列:$ mongorestore -h localhost --port 27017 dump注意當恢復資料時,mongorestore不會刪除資料, 所以如果恢復的是當前的資料庫例項, 就確保使用-drop 標記執行。
二、基於資料檔案的備份大部分使用者會選擇基於資料庫檔案的備份方式, 直接把原始的資料庫檔案複製到別的地方。這個方法比使用mongodump快得多, 因為備份和恢復不需要轉換資料格式。這種方式唯一的問題就是它需要鎖住資料庫伺服器,但是通常只是需要鎖住從節點, 因此應該可以在備份過程中保證應用的正常執行。以下是同步和鎖庫的命令:> use admin> db.fsyncLock()命令執行後, 基於寫入鎖住資料庫,且資料檔案同步到磁碟,此時,就可以安全的複製資料檔案了。 解鎖命令: > db.fsyncUnlock()也給大家提供了思維導圖的展現方式:三、文件資料服務提供的備份恢復功能華為雲&天翼雲的文件資料服務提供了單例項、副本集和叢集三種方式,三種方式均提供了備份恢復功能。先說備份,建立例項完成時會執行一次全備份,根據備份策略,可以週期性的在設定的某個時間段執行自動備份,當然也提供了手動備份的功能。再說恢復,我發現只能恢復到新的例項,不能恢復到當前例項,,就意味著沒有辦法對當前例項進行災難恢復,只能講資料恢復到新的例項,這樣就存在資料庫切換的動作,感覺比較奇怪,查了產品手冊,確實如此。為了更深入瞭解備份和恢復的機制,打算尋求客服的幫助。
四、文件資料服務提供的備份恢復機制針對不能恢復到當前例項的問題,我在華為雲上提了工單,如下:工單提問:請問DDS備份的資料,執行恢復操作,是不是隻能恢復到新建例項,不能恢復到當前例項?客服答覆:您好,是隻能恢復到新建例項,不能回覆到當前例項這是文字答覆,在我提了工單沒多久,華為雲客服就給了我電話,在確認了只提供恢復到新例項後,就又問了為何不提供恢復到當前例項,客戶的答覆說,因為恢復到當前例項可能存在恢復失敗的可能,但是在執行恢復操作前,會執行刪除資料的操作,這樣一旦失敗,就會對現有例項造成不可恢復的災難。想進一步瞭解華為雲的備份恢復機制,又提了工單,如下:工單提問:請問DDS的備份和恢復功能後臺的實現機制是什麼?是基於快照機制還是資料檔案級的備份?另外能否實現基於時間點的恢復機制,謝謝!客服答覆:叢集和副本集是複製物理檔案的方式,單例項為mongodump的方式。參照上面第一部分結算的內容就能理解客服答覆的內容了。