参考 > 存储 > 储存引擎 > WiredTiger存储引擎 > 将副本集更改为WiredTiger
注意
从4.2版开始,MongoDB删除不推荐使用的MMAPv1存储引擎。如果从使用MMAPv1的MongoDB 4.0部署升级到MongoDB 4.2,则必须升级到WiredTiger。
使用本教程将更新副本集以使用WiredTiger。该过程以滚动方式更新副本集,以避免停机。
副本集可以具有具有不同存储引擎的成员。这样,您可以更新成员以滚动方式使用WiredTiger存储引擎。
从MongoDB 3.6开始,"majority"
默认情况下启用了WiredTiger可用的读取关注。但是,对于MongoDB 4.0.3+,如果您具有具有主要-次要仲裁器(PSA)体系结构的三成员副本集,则可以禁用
"majority"
读取关注。禁用
"majority"
三成员PSA体系结构可避免可能的缓存压力增加。
以下过程"majority"
通过包含禁用了对MongoDB 4.0.3 PSA体系结构的读取关注
。如果您正在运行MongoDB 4.0.1或4.0.2 PSA体系结构,请首先升级到最新的4.0版本,以禁用此读取问题。--enableMajorityReadConcern false
注意
禁用"majority"
读取关注会禁用对MongoDB 4.0及更早版本的变更流的支持。对于MongoDB 4.2+,禁用读取关注"majority"
不会影响更改流的可用性。
有关PSA架构和阅读关注的更多信息
"majority"
,请参阅禁用多数阅读关注。
mongod
和开始
mongos
,localhost
默认情况下绑定到。从MongoDB 2.6到3.4版本localhost
,默认情况下仅绑定来自正式MongoDB RPM(Red Hat,CentOS,Fedora Linux和衍生产品)和DEB(Debian,Ubuntu和衍生产品)的二进制文件
。要了解有关此更改的更多信息,请参阅
Localhost绑定兼容性更改。一旦升级到WiredTiger,你WiredTiger部署是不是 受以下MMAPv1,唯一的限制:
MMAPv1限制 | 简短的介绍 |
---|---|
命名空间数 | 对于MMAPv1,名称空间的数量限制为名称空间文件的大小除以628。 |
命名空间文件的大小 | 对于MMAPv1,名称空间文件不能大于2047兆字节。 |
数据库大小 | MMAPv1存储引擎将每个数据库限制为不超过16000个数据文件。 |
资料大小 | 对于MMAPv1,单个mongod 实例无法管理超出基础操作系统提供的最大虚拟内存地址空间的数据集。 |
数据库中的集合数 | 对于MMAPv1存储引擎,数据库中最大集合数是名称空间文件大小和数据库中集合索引数的函数。 |
以下过程以滚动方式更新副本集。该过程首先更新次要成员,然后降级主要成员,并更新已降级的成员。
要将成员更新为WiredTiger,该过程将删除成员的数据,从mongod
WiredTiger 开始,然后执行
初始sync。
一次更新一个辅助成员:
从
实例配置中删除所有MMAPv1特定配置选项mongod
。
mongod
WiredTiger 开始。¶开始mongod
,将指定wiredTiger
为,--storageEngine
并将WiredTiger的准备好的数据目录指定为
--dbpath
。
适当指定其他选项,例如
--bind_ip
。
重要
如果您正在运行三成员PSA体系结构和MongoDB 4.0.3+版本,请使用include
禁用读取关注。请参阅PSA 3成员体系结构。--enableMajorityReadConcern false
majority
由于中没有数据--dbpath
,mongod
会执行
初始同步。初始同步过程的长度取决于数据库的大小以及副本集成员之间的网络连接。
您还可以在配置文件中指定选项。要指定存储引擎,请使用storage.engine
设置。
对其余的次要成员重复这些步骤,一次更新一次。
重要
如果将副本集的所有成员更新为使用WiredTiger,请确保在更新主副本之前先更新所有辅助副本。
一旦所有辅助成员都升级到WiredTiger,将mongo
外壳连接到主要节点,并用于
rs.stepDown()
降低主要节点并强制选举新的主要节点。
当主节点降级并成为辅助节点后,请像以前一样更新辅助节点以使用WiredTiger:
从
实例配置中删除所有MMAPv1特定配置选项mongod
。
mongod
WiredTiger 开始。¶开始mongod
,将指定wiredTiger
为,--storageEngine
并将WiredTiger的准备好的数据目录指定为
--dbpath
。
适当指定其他选项,例如
--bind_ip
。
重要
如果您正在运行三成员PSA体系结构和MongoDB 4.0.3+版本,请使用include
禁用读取关注。请参阅PSA 3成员体系结构。--enableMajorityReadConcern false
majority
由于中没有数据--dbpath
,mongod
会执行
初始同步。初始同步过程的长度取决于数据库的大小以及副本集成员之间的网络连接。
您还可以在配置文件中指定选项。要指定存储引擎,请使用storage.engine
设置。