我在 MongoDB 中执行 fsync() 操作,但它只是立即返回。它似乎没有做任何事情。如何验证数据是否确实已刷新到磁盘?
注意:我将 syncdelay 设置为 0,这意味着写入不会每 60 秒自动 fsync 一次。
我的实际命令是使用 perl 驱动程序:
$connection->fsync({async=>1});
谢谢。
如果您不想fsync
立即返回,则可以删除该async
选项,它将成为阻塞操作。
但是如果你不希望它被阻塞,你可以使用shell 中的db.currentOp来查询 fsync 的当前状态。
如果您想从 Perl 获取该信息,可以使用我在此答案中概述的技术。不幸的是,没有方便的方法可以直接通过run_command
.