我已经在 Ubuntu 14.04 中安装了 MongoDB,但我无法将其存储引擎更改为 WiredTiger。
我已在 /etc/mongod.conf 文件中添加了必要的更改,如下所示:
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
我已经使用以下命令启动了 mongod 进程:
mongod -f /etc/mongod.conf
服务器启动了,但是当我连接到我的 shell 时仍然收到警告:
2017-01-10T15:36:54.866+0530 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
我在这里错过了什么吗?这些更改似乎没有效果。
根据您描述中包含的警告消息,您已经在使用 WiredTiger 存储引擎,但您
dbPath
正在使用 ext 文件系统(理论上是 ext4,但 Linux文件系统幻数不区分 ext2/ext3/ext4)。注意:WiredTiger 是 MongoDB 3.2+ 的默认存储引擎,因此无需在配置文件中指定。此警告是为每个 SERVER-22606 的 MongoDB 3.4 生产版本添加的:如果 ext4 与 WiredTiger 一起使用,则启动警告。ext4 存在一些已知的性能问题(特别是周期性停顿),因此此警告旨在主动确保管理员收到有关可能有问题的配置的警报。文件系统和其他生产注意事项也包含在MongoDB 手册的生产说明中。
要抑制此警告,您可以:
dbPath
的文件(推荐使用 XFS)mongo
shell--quiet
(这可能会抑制其他有趣的启动信息/警告)您当然可以选择忽略启动警告(特别是对于开发环境),但如果这是生产环境,则应考虑将 XFS 与 WiredTiger 一起使用。
您可能想要观看/投票SERVER-19790:提供机制来清除/确认启动警告,这可能允许启动警告被确认,因此它们不会出现在每个新
mongo
会话中。将 Ubuntu Linux 上 Mongo DB 中的存储引擎从 WiredTiger 更改为 MMAPv1(反之亦然)
假设您没有需要备份的数据,当您遇到这个问题时,您可能有一个 WiredTiger 难以处理的 EXT4 文件系统,而不是 XFS。如果这样做,请先导出/备份数据,然后重新导入。
要检查您当前的文件系统,请使用:
重命名文件夹
/data/db
,其中包含旧的 WireTiger 存储数据。我建议您将旧文件夹重命名为,/dataWiredT
以便在需要还原时拥有它。创建一个新
/data/db
的您现在可以尝试通过以下方式更改存储引擎:
有关如何更改存储引擎的更多信息(对于 MVAPP,请使用您刚刚完成的反向操作)
您可能会在新的
/data/db
只读文件夹上遇到权限问题“锁定”,然后使用:(请注意,这将允许任何人编写 - 如果生产数据库考虑安全性 - 更多信息在这里: https ://stackoverflow.com/questions/42446931/mongodb-exception-in-initandlisten-20-attempted-to-create-a-锁定文件区域
请注意,可能会有关于访问控制和读/写访问权限的常见警告,一旦启动 MongoDB 就无法修复