参考 > 管理 > MongoDB备份方法 > 从MongoDB备份还原副本集
在本页面
此过程概述了获取MongoDB数据并将其还原到新副本集中的过程。使用此方法从生产备份中为测试部署提供种子,或作为灾难恢复的一部分。
重要
您不能将单个数据集还原到三个新mongod
实例,然后再创建一个副本集。如果将数据集复制到每个mongod
实例,然后创建副本集,则MongoDB将强制辅助数据库执行初始同步。本文档中的过程介绍了部署还原的副本集的正确有效的方法。
您还可以使用mongorestore
通过创建的数据来还原数据库文件mongodump
。有关更多信息,请参阅
使用MongoDB工具备份和还原。
备份文件可能来自文件系统快照。在MongoDB的云管理 产生的MongoDB数据库文件的存储快照,并在快照时间点。对于Ops Manager(MongoDB Enterprise Advanced中可用的本地解决方案),另请参阅Ops Manager备份概述。
对于使用加密模式的加密存储引擎AES256-GCM
,AES256-GCM
要求每个进程都使用唯一的计数器块值和密钥。
对于
配置了密码的加密存储引擎AES256-GCM
:
从4.2开始,如果您从通过“热”备份(即mongod
正在运行)获取的文件中还原,则MongoDB可以在启动时检测到“脏”密钥并自动翻转数据库密钥以避免IV(初始化向量)重用。
但是,如果您从通过“冷”备份获取的文件中恢复(即mongod
未运行),则MongoDB无法在启动时检测到“脏”密钥,并且IV的重用会使机密性和完整性保证无效。
从4.2开始,为避免从冷文件系统快照还原后重新使用密钥,MongoDB添加了一个新的命令行选项--eseDatabaseKeyRollover
。使用该--eseDatabaseKeyRollover
选项启动后
,mongod
实例将滚动使用AES256-GCM
密码配置的数据库密钥
并退出。
小费
AES256-GCM
加密模式,请不要复制数据文件或从文件系统快照(“热”或“冷”)还原。将mongod
实例作为新的单节点副本集启动。使用--dbpath
选项指定备份数据文件的路径,使用选项指定副本集名称--replSet
。对于配置服务器副本集(CSRS),包括该--configsvr
选项。包括适合您的部署的任何其他选项。
注意
从MongoDB 3.6开始,如果您的副本集成员在不同的主机上运行,或者您希望远程客户端连接到实例,则必须指定net.bindIp
设置(或
--bind_ip
)。
注意
3.6版的新功能:
默认情况下,所有MongoDB集合都具有 UUID。当MongoDB还原集合时,还原的集合将保留其原始UUID。还原不存在UUID的集合时,MongoDB会为已还原的集合生成UUID。
有关集合UUID的更多信息,请参见 集合。
MongoDB提供了两个选项来还原副本集的辅助成员:
注意
如果您的数据库很大,则初始同步可能需要很长时间才能完成。对于大型数据库,最好将数据库文件复制到每个主机上。
mongod
您还原的实例。¶使用--shutdown
或
db.shutdownServer()
确保干净关闭。
例如,如果副本集成员具有
storage.dbPath
或--dbpath
的/data/db
,你必须确保目录存在并且
是空的。