AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

sh.unshardCollection(mongoshメソッド)

sh.unshardCollection( namespace, shardID )

既存のシャーディングされたコレクションのシャーディングを解除し、コレクションデータを単一のシャードに移動します。コレクションをシャーディング解除すると、コレクションを複数のシャードに分割できなくなり、シャードキーが削除されます。

バージョン8.0の新機能。

重要

mongosh メソッド

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

データベースコマンドについては、unshardCollection コマンドを参照してください。

MongoDB API ドライバーについては、各言語の「MongoDB ドライバーのドキュメント」を参照してください。

sh.unshardCollectionメソッドでは、コレクションデータを受信するためのシャードを指定する必要があります。 unshardCollectionコマンドでは、宛先シャードを指定しない場合、クラスターは自動的にデータが最も少ないシャードを選択します。

If the collection uses zone sharding, you must first remove the range associations and shard from the zone before you unshard the collection. For more information, see Unshard Zones.

注意

コレクションのシャーディングを解除するには 書き込み集中型の操作であり、 oplogの増加率が増加する可能性があります。 これを軽減するには、次の構成変更を検討してください。

  • oplogの無制限の増加を防ぐには、固定のoplogサイズを設定します。

  • セカンダリが古くなる可能性を減らすには、 oplogサイズを増やします。

詳しくは、レプリカセットのoplogを参照してください。

sh.unshardCollection の構文は次のとおりです。

sh.unshardCollection( namespace, shardID )
Parameter
タイプ
説明

namespace

string

シャーディングを解除するデータベースとコレクションを指定します。

shardID

string

受信者シャードIDを指定します。 MongoDBがコレクションのシャーディングを解除すると 、コレクション データが現在のシャードからこの特定のシャードにコレクションデータが移動されます。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
  • sh.unshardCollection() は、シャーディングされたクラスターでのみ実行できます。

  • sh.unshardCollection() は、シャーディングされたコレクションでのみ動作できます。

  • sh.unshardCollection() は一度に 1 つのコレクションに対してのみ操作できます。

  • sh.unshardCollection() の最小期間は5分です。

  • MongoDB Search インデックスは、sh.unshardCollection() の実行後に 再構築する必要があります 。

  • writeConcernMajorityJournalDefaultはtrueである必要があります。

  • sh.unshardCollection()が完了するまで、シャードの追加や削除、埋め込みコンフィギュレーションサーバーと専用コンフィギュレーションサーバーの間の移行などのトポロジー変更を行うことはできません。

  • sh.unshardCollection()の進行中にシャーディングされていないコレクションに対して次の操作を実行することはできません。

  • unshardCollectionの進行中は、クラスターで次の操作を実行できません。

  • sh.unshardCollection()の進行中に発生するインデックスビルドは、メッセージが表示されずに失敗する可能性があります。

    • sh.unshardCollection()の進行中は、インデックスを作成しないでください。

    • インデックスビルドが進行中の場合は、 sh.unshardCollection()を呼び出しないでください。

  • エラーを回避するため、unshardCollection を実行するとMongoDB はコレクション内のゾーンを自動的に削除します。

  • If the collection you're unsharding uses MongoDB Search, the search index becomes unavailable when the unsharding operation completes. You need to manually rebuild the search index once the unsharding operation completes.

  • If the collection you're unsharding is archived in Atlas Online Archives, the online archive files are marked as Orphaned once the unsharding operation completes. You can create another online archive for the same database, collection, and fields as the orphaned archive as long as there is no other archive for that same combination in the Active state.

コレクションのシャーディングを解除する 前に、以下の要件を満たしていることを確認してください。

  • アプリケーションは、影響を受けるコレクションが書込みをブロックする期間を2 秒許容できます。 書込み (write) がブロックされている期間中、アプリケーションのレイテンシが増加します。

  • データベースが次のリソース要件を満たしている。

    • コレクションを移動するシャードに、コレクションとそのインデックス用の十分なストレージ領域があることを確認します。 宛先シャードでは少なくとも( Collection storage size + Index Size ) * 2バイトが使用可能である必要があります。

    • I/Oキャパシティーが50 % 未満であることを確認します。

    • CPU 負荷が80 % 未満であることを確認します。

ゾーンシャーディング を使用しているコレクションのシャーディングを解除するには、まずバランサーを停止し、次にゾーンから範囲とシャードを削除する必要があります。

この例では、 appデータベース上のinventoryという名前のコレクションのシャーディングを解除し、 shard02シャードにします。

sh.unshardCollection( "app.inventory", "shard02" )

使用可能なシャード ID のリストを取得するには、 sh.status()を実行します。 詳細についてはsh.status() 出力 を参照してください。