将自管理的单实例转换为 WiredTiger
注意
您必须升级到 WiredTiger。MongoDB 从 4.2 版本中删除了已弃用的 MMAPv1 存储引擎。
使用本教程更改独立 MongoDB 实例转换为 WiredTiger。
注意事项
mongodump
和 mongorestore
本教程使用mongodump
和 mongorestore
工具导出和导入数据。
默认绑定到本地主机
MongoDB二进制文件,mongod
和 mongos
,默认绑定到 localhost
。
教程从与 mongod
相同的主机运行 mongodump
和 mongorestore
。如果从远程运行,mongodump
和 mongorestore
必须指定 IP 地址或相关的主机名,以便连接到 mongod
。
XFS 和 WiredTiger
在 Linux 上,使用 WiredTiger 存储引擎时,建议使用 XFS 作为数据承载节点。有关更多信息,请参阅 内核和文件系统。
仅限 MMAPv1 的限制
一旦升级到 WiredTiger,您的 WiredTiger 部署将不再受以下 MMAPv1 限制的影响
MMAPv1 限制 | 简短描述 |
---|---|
命名空间数量 | 对于 MMAPv1,命名空间的数量限制为命名空间文件大小除以 628。 |
命名空间文件大小 | 对于 MMAPv1,命名空间文件的大小不能超过 2047 兆字节。 |
数据库大小 | MMAPv1 存储引擎将每个数据库的数据文件限制为不超过 16000 个。 |
数据大小 | 对于 MMAPv1,单个 mongod 实例无法管理超过底层操作系统提供的最大虚拟内存地址空间的数据集。 |
数据库中的集合数量 | 对于 MMAPv1 存储引擎,数据库中集合的最大数量是命名空间文件大小和数据库中集合索引数量函数的结果。 |
程序
2
使用mongodump
导出数据。
mongodump --out=<exportDataDestination>
根据需要指定其他选项,例如启用身份验证时的用户名和密码。有关可用选项,请参阅mongodump
。
3
5
使用WiredTiger启动mongod
。
以WiredTiger作为--storageEngine
并指定为WiredTiger创建的新数据目录作为--dbpath
启动mongod
。
根据需要指定其他选项,例如--bind_ip
。
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --bind_ip localhost,<hostname(s)|ip address(es)>
您还可以在配置文件中指定这些选项。要指定存储引擎,请使用storage.engine
设置。
6
使用 mongorestore
上传导出的数据。
mongorestore <exportDataDestination>
根据需要指定其他选项。有关可用选项,请参阅 mongorestore
。