将 Standalone 更改为 WiredTiger
NOTE
从 4.2 版开始,MongoDB 删除了已弃用的 MMAPv1 存储引擎。如果从使用 MMAPv1 的 MongoDB 4.0 部署升级到 MongoDB 4.2,则必须升级到 WiredTiger。
使用本教程将独立 MongoDB 实例的存储引擎更改为WiredTiger 。
注意事项
mongodump和mongorestore
本教程使用mongodump和 mongorestore用于导出和导入数据的实用程序。
默认绑定到本地主机
MongoDB 二进制文件,mongod和 mongos,默认绑定到localhost。
教程运行mongodump和 mongorestoremongod来自与他们连接的同一主机 。如果远程运行, 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 存储引擎,数据库中集合的最大数量是命名空间文件大小和数据库中集合索引数量的函数。 |
程序
启动mongod您要更改的 WiredTiger。
如果mongod已经在运行,则可以跳过此步骤。
使用mongodump导出数据。
mongodump --out=<exportDataDestination>
如果在启用授权的情况下运行,请根据需要指定其他选项,例如用户名和密码。看 mongodump可用选项。
使用 WiredTiger为新mongod运行创建一个数据目录。
mongod为将使用 WiredTiger 存储引擎运行的新实例创建一个数据目录。mongod必须对该目录具有读写权限。
mongodWiredTiger 不会从使用不同存储引擎创建的数据文件开始。
更新 WiredTiger 的配置。
从mongod实例配置中删除所有MMAPv1 特定配置选项。
用WiredTiger启动mongod。
启动,将WiredTiger 的新创建数据目录指定wiredTiger为
启动 mongod,将 wiredTiger 指定为 .--storageEngine,并将为 WiredTiger 新创建的数据目录指定为 --dbpath。
根据需要指定其他选项,例如--bind_ip。
WARNING
在绑定到非本地主机(例如可公开访问的)IP 地址之前,请确保您已保护集群免受未经授权的访问。有关安全建议的完整列表,请参阅 安全清单。至少,考虑 启用身份验证和 强化网络基础设施。
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --bind_ip localhost,<hostname(s)|ip address(es)>
您还可以在配置文件中指定选项。要指定存储引擎,请使用storage.engine设置。
使用 上传导出的数据mongorestore。
mongorestore <exportDataDestination>
根据需要指定其他选项。看 mongorestore可用选项。
← WiredTiger 存储引擎将副本集更改为 WiredTiger →
原文链接 - https://docs.mongodb.com/manual/tutorial/change-standalone-wiredtiger/
译者:陆文龙