Database-Design

如何組織 MongoDB 副本集備份和警報

  • October 18, 2021

我有一個正在執行的 MongoDb 副本集,由 2 個副本和 1 個主節點組成。最近我注意到我的主人走了,自動故障轉移採取行動並改變了主人,但我沒有意識到這一點。此外,由於 mongo 服務是在 master 上完成的,並且備份僅在 master 上設置,因此幾天內缺少備份。

顯然,這不是我所擁有的最佳實踐,也不會提醒正確的備份。

我想問一些關於這個的事情。

  1. crontab可以在所有 3 個節點上使用普通和設置備份腳本mongorestore嗎?
  2. 在這種情況下,當我必鬚根據終止或高負載等事件了解 MongoDB(或任何其他服務)的狀態時,通常如何進行警報?

僅供參考,我在 AWS EC2 Ubuntu 實例上使用 MongoDB。

提前致謝!

是的,您可以在所有節點上執行備份(而不是mongodumpor monogexport)。這只是可用磁碟空間的問題。

您可以開發自己的腳本並檢查您喜歡的任何內容,例如systemctl status mongodrs.status()db.hello()等。

或者你使用 Mongo Ops Manager

然後你有標準的監控工具,最常見的工具之一是Nagios

始終建議僅在SECONDARY節點上執行備份。PRIMARY在主節點上執行備份會增加磁碟 IO,因為從應用程序到節點的寫入流量已經很大。您可以根據以下邏輯編寫自己的 shell/python 腳本進行配置:

  1. 辨識副本集中的節點是否SECONDARY存在。如果以下返回false,則它是次要的,您可以繼續下一步進行備份。

db.hello().isWritablePrimary

  1. 執行mongodump備份命令,壓縮轉儲文件並將其保存在某個位置

mongodump –host 主機名 –db dbname –archive=/db_backup/dbname.gz –gzip

為了提醒您,您可以嘗試一些用於基本數據庫健康檢查的開源外掛:Mongo MonitorCheck MongoDB

引用自:https://dba.stackexchange.com/questions/299593