我可以使用标准 EBS 快照来备份我的小型 MongoDB 副本集吗?
我有一个 3 成员 MongoDB 副本集(跨多个数据库的数据约为 2GiB)。我预计它不会快速增长,可能每月 500MiB。流量较低,通常徘徊在每秒 30 个查询左右,偶尔会突然达到每秒 400 个查询。插入和更新很少。
我们运行的是 MongoDB 3.0.8,采用 MMAPv1 存储引擎。操作系统是 Amazon Linux,文件系统是 ext4。所有内容都位于同一个磁盘/分区上,即一个已安装的 EBS 卷。
我进行了一些快速搜索,发现了有关锁定、刷新、LVM、xfs 等方面的建议,但给出的所有示例似乎都适用于连接多个 EBS 卷的更大、流量更大的副本集。
我们是使用日志记录,至少是默认的同分区、MMAPv1 日志记录设置。
我正在考虑仅对主服务器进行快照,但由于复制很少滞后超过一秒,所以我想我可以选择任何一个进行快照。
答案1
由于所有内容(包括日志)都位于同一存储设备上(即您的 dbpath 未映射到多个 EBS 卷),因此您无需刷新和锁定数据库。这仅适用于这些内容分布在多个卷上的情况。
假设日志与数据文件位于同一卷上,则快照将自动捕获日志和数据文件的状态。
最佳的程序/参考信息如下: http://docs.mongodb.org/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/#ec2-backup-database-files
为了绝对确保,您应该在主机上运行“mount”和“ls -laR”以验证备份之前所有内容都在同一卷上。