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

自己管理型シャーディングされたクラスターのレプリカセットへの変換

項目一覧

  • 始める前に
  • 単一シャードを含むクラスターのレプリカセットへの変換
  • シャーディングされたクラスターのレプリカセットへの変換

このチュートリアルでは、 シャーディングされたクラスターをシャーディングされていないレプリカセットに変換するプロセスについて説明します。 レプリカセットをシャーディングされたクラスターに変換するには、 自己管理型レプリカセットをシャーディングされたクラスターに変換 します。 シャーディングされたクラスターの詳細については、シャーディングに関するドキュメントを参照してください。

MongoDB 8.0 以降では、 directShardOperations ロールを使用して、メンテナンス操作を実行できます。その操作では、シャードに対してコマンドを直接実行する必要があります。

警告

directShardOperationsロールを使用して コマンドを実行すると、クラスターが正しく動作しなくなり、データが破損する可能性があります。 directShardOperationsロールは、メンテナンス目的で、または MongoDB サポートのガイダンスに必ず従う必要があります。 メンテナンス操作を実行したら、 directShardOperationsロールの使用を停止します。

シャードが 1 つしかないシャーディングされたクラスターの場合、そのシャードには完全なデータセットが含まれます。 次の手順を使用して、そのクラスターをシャーディングされていないレプリカセットに変換します。

  1. システムが新しいレプリカセットとなる単一シャードをホストしているレプリカセットのプライマリ ノードに接続するようにアプリケーションを再構成します。

  2. --shardsvrmongodから オプションを削除します。

    Tip

    --shardsvrオプションを変更すると、 mongodが着信接続をリッスンするポートが変更されます。

単一シャード クラスターは、データセットに対する読み取りおよび書込み (write) 操作を受け入れる非シャーディングのレプリカセットになりました。

残りのシャーディング インフラストラクチャを廃止します。

複数のシャードを持つシャーディングされたクラスターから完全に新しいレプリカセットに移行するには、次の手順に従います。

  1. シャーディングされたクラスターが実行中の状態で、シャーディングされたクラスターに加えて新しい レプリカセット を配置します。 レプリカセットには、現在のすべてのシャードからのすべてのデータファイルを組み合わせて保持できる十分な容量が必要です。 データ転送が完了するまで、アプリケーションを新しいレプリカセットに接続するように構成しないでください。

  2. シャーディングされたクラスターへの書き込みをすべて停止します。 アプリケーションを再構成するか、すべてのmongosインスタンスを停止してください。 すべてのmongosインスタンスを停止すると、アプリケーションはデータベースから読み取れなくなります。 すべてのmongosインスタンスを停止する場合は、データ移行手順のためにアプリケーションがアクセスできない一時的なmongosインスタンスを開始します。

  3. mongodump と mongorestoreを使用して、 mongosインスタンスから新しいレプリカセットにデータを移行します。

    注意

    必ずしもすべてのデータベースのすべてのコレクションがシャーディングされているわけではありません。 シャーディングされたコレクションのみを移行しないでください。 すべてのデータベースとすべてのコレクションが正しく移行されていることを確認します。

  4. インスタンスの代わりに、シャーディングされていない レプリカセット mongosを使用するようにアプリケーションを再構成します。

    シャーディングされたクラスターをレプリカセットに変換した後、アプリケーションで使用される 接続文字string stringをレプリカセットの に更新します。次に、アプリケーションを再起動します。

アプリケーションは、読み取りと書込みにシャーディングされていないレプリカセットを使用するようになりました。 残りの未使用のシャーディングされたクラスター インフラストラクチャを廃止できるようになりました。

戻る

クラスターメタデータのバックアップ