注:从4.2版开始,MongoDB不再支持不被推荐使用的MMAPv1存储引擎。如果从使用MMAPv1的MongoDB 4.0部署服务升级到MongoDB 4.2,则必须将存储引擎升级为WiredTiger。
使用本教程将独立MongoDB实例的存储引擎更改为WiredTiger。
一、注意事项
mongodump和mongorestore
本教程使用mongodump和mongorestore程序命令来导出和导入数据。
- 确保在系统上安装和更新了这些MongoDB软件包组件。
- 确保有足够的驱动器空间可用于存储mongodump导出文件以及可以容纳使用了WiredTiger存储引擎的新mongod实例的数据文件。
默认绑定到本地主机
从MongoDB 3.6开始,默认情况下,MongoDB二进制文件(binaries)、mongod和mongos绑定到localhost。从MongoDB版本2.6到3.4,默认情况下,只有正式的MongoDB RPM(Red Hat,CentOS,Fedora Linux和衍生产品)和DEB(Debian,Ubuntu和衍生产品)的二进制文件才会绑定到localhost。要了解有关此更改的更多信息,请参阅Localhost绑定兼容性更改。
本教程在mongod安装的主机上运行mongodump和mongorestore程序。如果要远程运行,则mongodump和mongorestore必须指定ip地址或关联的主机名才能连接到mongod。
MongoDB 3.0或更高版本
只有MongoDB 3.0版或更高版本才能使用WiredTiger存储引擎。如果使用的是MongoDB的早期版本,则必须先升级MongoDB的版本,然后才能更改存储引擎。要升级您的MongoDB版本,请参考相应的版本的升级手册。
XFS和WiredTiger
对于WiredTiger存储引擎,建议在Linux上将XFS用于数据承载节点。有关更多信息,请参见内核和文件系统。
MMAPv1的局限性
升级到WiredTiger后,WiredTiger部署将不受以下限制:
MMAPv1限制 |
简短说明 |
命名空间的数量 |
对于MMAPv1,命名空间的数量限制为命名空间文件的大小除以628。 |
命名空间文件的大小 |
对于MMAPv1,命名空间文件不能大于2047兆字节。 |
数据库大小 |
MMAPv1存储引擎将每个数据库限制为不超过16000个数据文件。 |
数据大小 |
对于MMAPv1,单个mongod实例无法管理超出基础操作系统提供的最大虚拟内存地址空间的数据集。 |
数据库中的集合数 |
对于MMAPv1存储引擎,数据库中的最大集合数取决于名称空间文件的大小和数据库中集合索引的数量。 |
二、升级步骤(共6步)
1.启动要更改为WiredTiger的mongod。
如果mongod已经在运行,则可以跳过此步骤。
2.使用mongodump导出数据。
mongodump --out = <导出数据目标>
根据需要指定其他选项,例如用户名和密码(如果在启用授权的情况下运行)。有关可用选项,请参见mongodump。
3.为使用WiredTiger的新mongod创建一个数据目录。
为将要使用WiredTiger存储引擎的新mongod实例创建一个数据目录。 mongod必须具有此目录的读写权限。
使用WiredTiger的mongod在其他存储引擎创建的数据文件上无法启动。
4.更新WiredTiger的配置。
从mongod实例配置中删除所有MMAPv1特定配置选项。
5.从WiredTiger启动mongod。
启动mongod,将--storageEnginer指定为wiredTige,并将--dbpath指定为新创建的WiredTiger数据目录。
根据需要指定其他选项,例如--bind_ip。
警告:在绑定到非本地主机(例如可公开访问)的IP地址之前,请确保已保护群集免受未经授权的访问。有关安全建议的完整列表,请参阅安全检查表。至少应考虑启用身份验证并加强网络基础结构。
mongod --storageEnginewiredTiger --dbpath <newWiredTigerDBPath> --bind_ip localhost,<hostname(s)| ip address(s)>
您还可以在配置文件中指定选项。要指定存储引擎,请使用storage.engine设置。
6.使用mongorestore上传导出的数据。
mongorestore <exportDataDestination>
根据需要指定其他选项。有关可用选项,请参见mongorestore。
←WiredTiger存储引擎 更改副本设置为WiredTiger→
原文链接:
https://docs.mongodb.com/manual/tutorial/change-standalone-wiredtiger/