ApsaraDB for MongoDB インスタンスの接続失敗は、診断して修正できます。まずは 一般的なエラー で素早く解決するか、または トラブルシューティングの手順 に従って根本原因を体系的に特定してください。
トラブルシューティングの手順
ステップ 1:ネットワーク接続の確認
トラブルシューティング方法
次のコマンドを使用して、ApsaraDB for MongoDB インスタンスへの接続をテストします。
-
ping <domain>コマンドを実行します。例:ping dds-xxxx.mongodb.rds.aliyuncs.comを実行します。ping dds-xxx.mongodb.rds.aliyuncs.com PING dds-xxx.mongodb.rds.aliyuncs.com (xxx): 56 data bytes 64 bytes from xxx: icmp_seq=0 ttl=90 time=7.698 ms 64 bytes from xxx: icmp_seq=1 ttl=90 time=7.085 ms 64 bytes from xxx: icmp_seq=2 ttl=90 time=11.006 ms 64 bytes from xxx: icmp_seq=3 ttl=90 time=12.154 ms 64 bytes from xxx: icmp_seq=4 ttl=90 time=9.149 msこの出力は、クライアントが ApsaraDB for MongoDB インスタンスに到達できることを示します。
-
telnet <domain> <port>コマンドを実行します。例:telnet dds-xxxx.mongodb.rds.aliyuncs.com 3717を実行します。root@mongotest:~# telnet xxx.mongodb.rds.aliyuncs.com 3717 Trying xxx... Connected to xxx.mongodb.rds.aliyuncs.com. Escape character is '^]'.この出力は、DNS 名前解決とポート 3717 へのアクセスが可能であることを示します。
チェックリスト
ネットワーク テストに失敗した場合は、次の項目を確認してください。
ステップ 2:認可と認証
ステップ 3:その他の確認
一般的なエラー
|
エラーメッセージ |
原因と解決策 |
|
|
|
|
インスタンスが接続上限に達した可能性があります。 解決策:
|
|
|
MongoDB ドライバーの待機キューが満杯です。これは、接続プールのサイズが小さいか、高い同時実行性が原因である可能性があります。 解決策:
|
|
|
過剰な同時接続により、利用可能なセッションが枯渇する可能性があります。 解決策:
|
|
インスタンスのエンドポイントが正しいことを確認します: |
|
ECS インスタンスがプライベートネットワーク経由で ApsaraDB for MongoDB インスタンスに接続できません。 解決策:
|
|
|
|
|
データが書き込まれているノードがプライマリーノードではありません。 原因:書き込み操作はプライマリーノードでのみ実行できます。アプリケーションが以前にプライマリーノードのエンドポイントを使用して接続していた場合、フェイルオーバーによって接続先ノードがセカンダリーノードに変わり、書き込み操作が失敗する可能性があります。 解決策:
アプリケーションに再接続メカニズムと例外処理を実装し、一時的な切断から自動的に回復できるようにしてください。 |
|
|
ディスク領域が枯渇したため、インスタンスがロックされています。 解決策:「ディスク領域の枯渇によるインスタンスのロックまたは書き込みの失敗の解決」をご参照ください。 |
|
|
|
|
データベースアカウントのパスワードに、 解決策:「ユーザー名またはパスワードの特殊文字が原因で発生する接続障害を解決する方法」をご参照ください。 |
|
|
ApsaraDB for MongoDB は |