ApsaraDB for MongoDBインスタンスのディスク容量が使い果たされた場合、インスタンスはロックされ、インスタンスへのデータの書き込みやインスタンスからのデータの削除はできません。 このトピックでは、ディスク容量の枯渇による書き込み失敗のトラブルシューティング方法について説明します。
症状
アプリケーションはインスタンスからデータを読み取ることはできますが、インスタンスにデータを書き込むことはできません。
管理者がトラブルシューティングのためにmongoシェルを使用してインスタンスに接続すると、管理者はデータの書き込みを試み、次のエラーメッセージを受け取ります。
not authorized on xxxx to execute
例:db.customer.insert({"name":"zhangsan"}) WriteCommandError({ "operationTime": タイムスタンプ (1563437183、1) 、 "ok" : 0、 "errmsg" : "db1でコマンドを実行する権限がありません {insert: \" customer\"、ordered: true、lsid: { id: UUID(\" 8d43461c-5c51-49ef-b9b3-9xxxxxxxxf\") } 、$clusterTime: { clusterTime: Timestamp(1563437183、1) 、署名: { hash: BinData(0、0C3FAAE747xxxxxx)) 、keyId: 668293399xxxx } } 、$。\" db1\" }", "code" : 13、 "codeName" : "Unauthorized" 、 "$clusterTime" : { "clusterTime": タイムスタンプ (1563437183、1) 、 "signature" : { "hash" : BinData(0,"DD + q50dPTuIQKTzytT5SiTPYX4Q=") 、 "keyId" : NumberLong("66xxxxxxxx") } } })
管理者は、ApsaraDB for MongoDBコンソールでインスタンスのステータスが [ロック済み] であることを確認します。
説明シャードクラスタインスタンスのディスク容量が使い果たされた場合、インスタンスは [ロック済み] 状態になりません。
ディスク容量が使い果たされているかどうかを確認する
ApsaraDB for MongoDBコンソールにログインします。
ページの左上隅で、インスタンスが属するリソースグループとリージョンを選択します。
左側のナビゲーションウィンドウで、インスタンスタイプに基づいて レプリカセットインスタンスまたはシャードクラスターインスタンス をクリックします。
表示されるページで、管理するインスタンスを見つけ、そのIDをクリックします。
ディスク容量が不足しているかどうかを確認するには、インスタンスのアーキテクチャに基づいて次の操作を実行します。
説明ディスク領域の使用量に関するデータを5分間隔で収集します。
スタンドアロンまたはレプリカセットインスタンス
基本情報 ページで、インスタンスのステータスとインスタンスのディスク領域使用量を表示します。 この例では、インスタンスのステータスはLockedで、インスタンスのディスク領域使用量が100% を超えています。 これは、ディスクスペースが使い果たされたことを示します。
シャードクラスターインスタンス
左側のナビゲーションウィンドウで、監視情報 をクリックします。
監視情報 ページで、モニタリングするシャードを選択します。
説明d
で始まるノードIDはシャードノードのIDを示し、s
で始まるノードIDはmongosノードのIDを示します。ディスク領域の使用量を表示します。 この例では、シャードノードのディスク領域使用量が100% を超えています。 これは、ディスクスペースが使い果たされたことを示します。
解決策
インスタンス設定を変更して、インスタンスのディスク領域を拡張します。 詳細については、「概要」をご参照ください。
説明インスタンスの最大ディスク領域サイズは、インスタンスの仕様によって異なります。 詳細については、「概要」をご参照ください。
レプリカセットインスタンスは、最大3,000 GBのディスク容量をサポートします。 より大きなディスク容量が必要な場合は、シャードを追加してディスク容量を最大96,000 GBに拡張できるシャードクラスターインスタンスをデプロイすることを推奨します。
説明ソースインスタンスのデータは、data Transmission Service (DTS) を使用して新しいシャードクラスタインスタンスに移行できます。 詳細については、「ApsaraDB For MongoDBレプリカセットインスタンスからApsaraDB for MongoDBシャードクラスターインスタンスへのデータの移行」をご参照ください。
最適化の提案
db.collection.remove
コマンドを実行してインスタンスから大量のデータを削除する場合、またはディスクを最適化していない場合は、ディスクフラグメントをリサイクルしてディスクの使用率を向上させることができます。 詳細については、「ディスクのデフラグメントによるディスク使用率の向上」をご参照ください。