1

Azure で MongoDB を使用するために、MongoDB ワーカー ロール プロジェクトを使用しています私は 2 つの個別のクラウド サービスを持っています。そのうちの 1 つはすべて正常に動作しますが、もう 1 つは MongoDB ワーカー ロールが停止したままBusy (Waiting for role to start... Calling OnRoleStartです。

MongoDB ワーカー ロールの 1 つに接続し、MongoDB ログ ファイルにアクセスしたところ、次のエラーが見つかりました。

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

これを正常に修正する方法についてはスレッドがありますが、Windows Azure では修正できません。MongoDB ワーカー ロール (Azure ストレージ接続文字列を除く) については何も構成していません。別のサービスで動作するため、このサービスで動作しない理由がわかりません。何か案が?

4

1 に答える 1

0

しばらく前に、Azure で RavenDB を Worker Role としてホストしようとしましたが、それにも多くの問題がありました。

今日、私は、この「Windows に MongoDB をインストールする」ガイドに従って、ターゲット プラットフォームで Windows サービスとしてデータベースを「推奨される」方法で実行する方がよいと考えています。これにより、Azure 固有の問題に対処する必要がなくなります。これを達成するには、次のことができます。

  1. CsPack.exeと共にAzure CmdLetsを使用して、MondoDB のパッケージを作成します。
  2. GitHub に投稿した Azure の RavenDB Master-Slave 読み取りに類似したソリューション。
  3. Azure で仮想マシン (ベータ) にサインアップし、マシンを起動して、そこに MongoDB を手動でインストールします。

しかし、DB をホストする際の最も重要な質問は、実際の DB をどこに格納する予定かということだと思います。

  • Cloud Storage に格納された VHD である Azure の CloudDrive は、可能な限り最悪の IO パフォーマンスを示します。通常の DB の使用には不十分です。
  • クラウド サービスのローカル ディスク領域であるエフェメラル ストレージには完全な IO がありますが、VM が削除されるとすべてのデータが失われます。これは通常、おそらく CloudDrive を介して、Cloud Storage に継続的または少なくとも定期的なバックアップを作成する必要があることを意味します。
  • Azure VM 接続ディスク- CloudDrive よりも優れた IO を備えていますが、エフェメラル ストレージほど優れていません。

あなたの問題に対する実際のトラブルシューティングについて。OnRoleStart を try-catch でラップし、ログに書き込み、RDP をボックスに有効にしてから、接続して実際の問題をその場で調べることをお勧めします。もう 1 つの方法は IntelliTrace を使用することですが、そのためには VS Ultimate が必要です。また、アプリでディスクへの書き込みが必要な場合、Azure ではローカル リソースを使用する必要があることを忘れないでください。

于 2013-04-07T09:05:11.113 に答える