在阅读 mongodump 文档时,我发现了此信息。
“mongodump 在其备份数据中仅捕获数据库中的文档,不包含索引数据。mongorestore 或 mongod 必须在恢复数据后重建索引。”
考虑到索引也是数据库难题的关键部分,并且它们需要重建,为什么 mongodump 没有选择使用索引进行备份?
我知道不备份索引作为默认选项有两个优点:
1. 我们节省了备份和恢复索引所需的时间。
2. 我们节省了存储备份所需的空间。
但为什么不把它作为一种选择呢?
mongodump
从 MongoDB 数据库创建数据的二进制导出(BSON 格式)。指数定义备份于<dbname>.metadata.json
文件,所以mongorestore
可以重新创建原始数据和索引。
实际索引无法备份的主要原因有两个mongodump
:
如果你想要数据和索引的完整备份,你需要通过复制底层数据文件进行备份 https://docs.mongodb.com/manual/core/backups/#back-up-by-copying-underlying-data-files(通常通过使用文件系统或 EBS 快照)。对于大型部署来说,这是更常见的选项,因为mongodump
需要将所有数据读入mongod
进程(如果您的数据库大于内存,这将驱逐您的一些工作集)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)