我在尝试将 mongodb 副本集实现为 Windows Azure 中的辅助角色实例时遇到问题。在 Windows Azure 门户中,其中一个实例显示为忙碌状态:
Waiting for role to start... Calling OnRoleStart()
我已经检查了所有设置,一切似乎都很好,请问可能是什么问题?
Denis Markelov 的博客文章帮助我解决了这个问题。解决方案主要是他的,但是我不得不采取额外的步骤才能让它工作,并认为其他人可能会觉得它有用。
来自博客的解决方案:
Windows Azure 为角色重用虚拟机,因此在硬盘驱动器上进行全新部署后,您可以找到在先前会话期间创建的文件。如果 MongoDB 被不正确地终止 - 可能有一个锁定文件(“持久互斥体”类似物),因此 MongoDB 拒绝启动。它位于带有标签“WindowsAzureDrive”的驱动器(假设它是 F:),路径为:
F:\data\mongod.lock
在生产使用的情况下,这种情况可能需要恢复过程,但如果您只是在初始设置过程中 - 删除此文件是安全的,让 MongoDB 重新启动。
我遇到了这个问题并按照建议做了,但是我仍然遇到同样的问题。所以我看了一下日志文件
C:\Resources\Directory\.MongoDB.WindowsAzure.MongoDBRole.MongodLogDir\mongod.txt
并看到另一个文件也给出了错误。为了解决问题,您还必须删除local.ns
与mongod.lock
.