gpt4 book ai didi

c# - Azure 上的 MongoDB : replSet can't get local. system.replset 配置

转载 作者:行者123 更新时间:2023-12-03 04:38:11 27 4
gpt4 key购买 nike

我正在使用MongoDB worker role project在 Azure 上使用 MongoDB。我有两个独立的云服务,其中一个一切正常,但在另一个中,MongoDB 辅助角色陷入 Busy (Waiting for role to start... Calling OnRoleStart状态。

我连接到 MongoDB 辅助角色之一并访问 MongoDB 日志文件,发现以下错误:

[rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)

有一些线程介绍了如何正常修复此问题,但没有使用 Windows Azure。我没有为 MongoDB 辅助角色配置任何内容(除了 Azure 存储连接字符串),它在另一个服务中工作,所以我不知道为什么它不能用于该服务。有什么想法吗?

最佳答案

不久前,我尝试在 Azure 中托管 RavenDB 作为辅助角色,但也遇到了很多问题。

今天,我相信最好在目标平台上以“建议”的方式运行数据库,即根据此 "Install MongoDB on Windows" 作为 Windows 服务指导。这样您就不必处理 Azure 特定的问题。要实现这一目标,您可以:

  1. 使用Azure CmdLets与 CsPack.exe 一起为 MondoDB 创建包。
  2. 类似于 RavenDB Master-Slave reads on Azure 的解决方案我将其发布在 GitHub 上。
  3. 在 Azure 上注册虚拟机(测试版),启动计算机并在其中手动安装 MongoDB。

但我认为托管数据库时最重要的问题是:您计划将实际数据库存储在哪里?

  • Azure 的 CloudDrive 是存储在云存储中的 VHD,其 IO 性能可能最差。我想说这对于正常的数据库使用来说是不够的。
  • 临时存储,一种云服务本地磁盘空间,具有完美的IO,但一旦虚拟机被删除,您就会丢失所有数据。这意味着您通常希望对云存储进行连续或至少定期备份(可能是通过 CloudDrive)。
  • Azure VM attached disk - 具有比 CloudDrive 更好的 IO,但仍然不如临时存储。

至于您的问题的实际故障排除。我建议用 try-catch 包装 OnRoleStart,将其写入日志,启用 RDP,然后连接并就地调查实际问题。另一种选择是使用 IntelliTrace,但您需要 VS Ultimate。另外,不要忘记,如果您的应用需要写入磁盘,Azure 需要使用本地资源。

关于c# - Azure 上的 MongoDB : replSet can't get local. system.replset 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com