1

MongoDB 使用多粒度锁定 [1],允许操作在全局、数据库或集合级别锁定,并允许各个存储引擎在集合之下(即,在 WiredTiger 中的文档级别)实现自己的并发控制。

此外,我读过 MongoDB 有两种可能的存储引擎:MMAPv1(默认)和 WiredTiger。从 MongoDB 3.0 开始,第一个使用集合级锁定,第二个使用文档级锁定。MongoDB 允许在 GLOBAL、DATABASE 或 COLLECTION 级别锁定操作是什么意思?意思是我可以选择锁粒度?如果是,我该怎么做?这是否与所选存储引擎的锁定粒度(例如 WiredTiger 中的文档级别)形成对比?如何将我的存储引擎从 MMAPv1 更改为 WiredTiger?提前致谢。

4

1 回答 1

1

回答

如何将我的存储引擎从 MMAPv1 更改为 WiredTiger?

这个页面解释它:

启动 3.0 mongod。确保 3.0 mongod 使用默认的 MMAPv1 引擎运行。

使用 mongodump 导出数据。 mongodump --out <exportDataDestination> 根据需要指定其他选项,例如在启用授权的情况下运行时的用户名和密码。有关可用选项,请参阅 mongodump。

为 WiredTiger 创建数据目录。为 WiredTiger 创建一个新的数据目录。确保运行 mongod 的用户帐户对新目录具有读写权限。

带有 WiredTiger 的 mongod 不会从使用不同存储引擎创建的数据文件开始。

使用 WiredTiger 重新启动 mongod。重新启动 3.0 mongod,将wiredTiger 指定为 ,--storageEngine并将为WiredTiger 新创建的数据目录指定为--dbpath. 根据需要指定其他选项。

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> 您还可以在配置文件中指定选项。要指定存储引擎,请使用新的 storage.engine 设置。

于 2015-05-29T12:37:56.480 回答