Docs 主页 → 开发应用程序 → MongoDB Manual
将独立实例更改为 WiredTiger
注意
从版本 4.2 开始,MongoDB 删除了已弃用的 MMAPv1 存储引擎。如果从使用 MMAPv1 的 MongoDB 4.0 部署升级到 MongoDB 4.2,则必须升级到 WiredTiger。
使用本教程将独立 MongoDB 实例的存储引擎更改为 WiredTiger。
考虑因素
mongodump
和 mongorestore
本教程使用 、 mongodump
和mongorestore
实用程序导出和导入数据。
默认绑定至本地主机
默认情况下,MongoDB 二进制文件 mongod
和 mongos
绑定到 localhost
。
本教程从mongodump
和mongorestore
所连接的mongod
所在的同一主机运行。如果远程运行, mongodump
和mongorestore
必须指定 IP 地址或关联的主机名,以便连接到mongod
。
MongoDB 3.0 或更高版本
您必须使用 MongoDB 3.0 或更高版本,才能使用 WiredTiger 存储引擎。如果使用早期版本的 MongoDB,则您必须先升级 MongoDB 版本,然后才能继续变更存储引擎。要升级 MongoDB 版本,请参阅相应版本的手册。
XFS 和 WiredTiger
对于 WiredTiger 存储引擎,建议在 Linux 上使用 XFS 作为数据承载节点。有关详情,请参阅内核和文件系统。
仅限于 MMAPv1 限制
升级到 WiredTiger 后,WiredTiger 部署不受以下仅限于 MMAPv1 限制的约束:
MMAPv1 限制 | 简短描述 |
---|---|
命名空间数 | 对于 MMAPv1,命名空间的数量限制为命名空间文件的大小除以 628。 |
命名空间文件的大小 | 对于 MMAPv1,命名空间文件的大小不得超过 2047 兆字节。 |
数据库大小 | MMAPv1 存储引擎将每个数据库限制为不超过 16000 个数据文件。 |
数据大小 | 对于 MMAPv1,单个 mongod 实例管理的数据集不能超过底层操作系统提供的最大虚拟内存地址空间。 |
数据库中的集合数量 | 对于 MMAPv1 存储引擎,数据库中集合的最大数量是命名空间文件大小和数据库中集合索引数量的函数。 |
步骤
启动您想要更改为 WiredTiger 的mongod
。
如果 mongod
已经运行,则可以跳过此步骤。
使用mongodump
导出数据。
mongodump --out=<exportDataDestination>
根据需要指定其他选项,例如,如果在启用授权的情况下运行,则指定用户名和密码。有关可用选项,请参阅mongodump
。
为使用 WiredTiger 运行的新mongod
创建数据目录。
为将使用 WiredTiger 存储引擎运行的新 mongod
实例创建一个数据目录。mongod
必须具有此目录的读写权限。
mongod
带有 WiredTiger,不会启动使用其他存储引擎创建的数据文件。
更新 WiredTiger 的配置。
从mongod
实例配置中删除任何 MMAPv 1配置选项。
使用 WiredTiger 启动mongod
。
启动 mongod
,指定 wiredTiger
为 --storageEngine
,为 WiredTiger 新建的数据目录为 --dbpath
。
根据需要指定其他选项,如 --bind_ip
。
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --bind_ip localhost,<hostname(s)|ip address(es)>
您也可以在配置文件中指定这些选项。要指定存储引擎,请使用 storage.engine
设置。
使用mongorestore
上传导出的数据。
mongorestore <exportDataDestination>
根据需要指定其他选项。有关可用选项,请参阅mongorestore
。