我在 AWS EC2 執行個體上執行 Mongodb。資料/日誌/和日誌儲存在單獨的磁碟區中,格式為 xfs。目前我們正在停止 mongodb 實例來拍攝快照,但請閱讀以下內容: https://docs.mongodb.com/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/ 顯然,由於啟用了日誌,因此無需在快照期間停止服務。我對麼?即使服務正在運行,我也可以建立一致的快照嗎?
答案1
一般來說,在確認長期媒體復原的完整性之前,請勿信任任何備份過程。
您已經能夠在線上進行儲存系統層備份。在本例中,使用 EBS 磁碟區或 Linux LVM。問題在於使資料庫處於一致狀態。
可以使用或不使用日誌進行線上備份。無論哪種情況,mongo 暫停資料庫寫入的方法都是 fsync 和 lock,如該教學中所述。
如果沒有日誌,就很難判斷哪些資料在磁碟上是持久的,哪些資料已緩衝但尚未提交。 fsync 和 lock 建立一個時間點,並停止任何正在進行的寫入,直到備份完成。
多個磁碟也需要鎖定,其中(在此儲存系統上)快照彼此不一致。在備份期間暫停寫入表示磁碟的時間點/dev/sdf
不會與備份時的時間點略有不同/dev/sdg
。
Mongo 聲稱,如果你只有一個單身的磁碟,以及有日誌,您不需要 fsync 和鎖定。據推測,EBS 快照是一個足夠好的崩潰一致時間點,並且日誌前向復原可以修復任何不完整的寫入。