Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

unshardコレクション

項目一覧

  • 定義
  • 互換性
  • 制限事項
  • 構文
  • コマンドフィールド
  • Considerations
  • 要件
unshardCollection

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

バージョン8.0の新機能

Tip

mongoshでは、このコマンドはsh.unshardCollection()を通じて実行することもできます。

ヘルパー メソッドはmongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。

このコマンドはadminデータベースで実行する必要があります。

注意

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

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

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

詳細については、「レプリカセット Oplog 」を参照してください。

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

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

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

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドは、共有インスタンスまたはサーバーレスインスタンスでは実行できません。詳細については、「サポートされていないコマンド 」を参照してください。

次の場合は、 unshardCollectionは使用できません。

db.adminCommand( {
unshardCollection: "<database>.<collection>",
toShard: "<shard-id>"
} )
フィールド
タイプ
必要性
説明
unshardCollection
string
必須
シャーディングを解除するデータベースとコレクションを指定します。
toShard
string
任意

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

指定されていない場合、クラスターはデータ量が最も少ないシャードを選択します。

  • unshardCollection は、シャーディングされたクラスターでのみ実行できます。

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

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

  • unshardCollection の最小期間は5分です。

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

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

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

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

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

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

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

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

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

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

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

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

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

次の例では、 sales.eu_accountsコレクションのシャーディングを解除します。

db.adminCommand( {
unshardCollection: "sales.eu_accounts"
} )

次の例では、 sales.us_accountsコレクションのシャーディングを解除し、そのコレクションデータをshard1に配置します。

db.adminCommand( {
unshardCollection: "sales.eu_accounts",
toShard: "shard1"
} )

戻る

unsetSharding