自己管理型シャーディングされたクラスターのレプリカセットへの変換
このチュートリアルでは、 のシャーディングされたクラスターをシャーディングされていないレプリカセットに変換するプロセスについて説明します。 レプリカセットをシャーディングされたクラスターに変換するには、 自己管理型レプリカセットをシャーディングされたクラスターに変換 します。 シャーディングされたクラスターの詳細については、シャーディングに関するドキュメントを参照してください。
単一シャードを含むクラスターのレプリカセットへの変換
シャードが 1 つしかないシャーディングされたクラスターの場合、そのシャードには完全なデータセットが含まれます。 次の手順を使用して、そのクラスターをシャーディングされていないレプリカセットに変換します。
システムが新しいレプリカセットとなる単一シャードをホストしているレプリカセットのプライマリ ノードに接続するようにアプリケーションを再構成します。
mongod
から--shardsvr
オプションを削除しますTip
--shardsvr
オプションを変更すると、mongod
が着信接続をリッスンするポートが変更されます。
単一シャード クラスターは、データセットに対する読み取りおよび書込み (write) 操作を受け入れる非シャーディングのレプリカセットになりました。
残りのシャーディング インフラストラクチャを廃止します。
シャーディングされたクラスターのレプリカセットへの変換
複数のシャードを持つシャーディングされたクラスターから完全に新しいレプリカセットに移行するには、次の手順に従います。
シャーディングされたクラスターが実行中の状態で、シャーディングされたクラスターに加えて新しい レプリカセット を配置します。 レプリカセットには、現在のすべてのシャードからのすべてのデータファイルを組み合わせて保持できる十分な容量が必要です。 データ転送が完了するまで、アプリケーションを新しいレプリカセットに接続するように構成しないでください。
シャーディングされたクラスターへの書き込みをすべて停止します。 アプリケーションを再構成するか、すべての
mongos
インスタンスを停止してください。 すべてのmongos
インスタンスを停止すると、アプリケーションはデータベースから読み取れなくなります。 すべてのmongos
インスタンスを停止する場合は、データ移行手順のためにアプリケーションがアクセスできない一時的なmongos
インスタンスを開始します。mongodump と mongorestoreを使用して、
mongos
インスタンスから新しいレプリカセットにデータを移行します。注意
必ずしもすべてのデータベースのすべてのコレクションがシャーディングされているわけではありません。 シャーディングされたコレクションのみを移行しないでください。 すべてのデータベースとすべてのコレクションが正しく移行されていることを確認します。
インスタンスの代わりに、シャーディングされていない レプリカセット
mongos
を使用するようにアプリケーションを再構成します。
アプリケーションは、読み取りと書込みにシャーディングされていないレプリカセットを使用するようになりました。 残りの未使用のシャーディングされたクラスター インフラストラクチャを廃止できるようになりました。