2016-10-07 6 views
0

私は2つのスタンドアロンノードを持っていますが、それらにはmongodbが実行されています。どちらもレプリカセット構成rs0を持ち、 rs.initiate()で始まります。しかし、いくつかのシナリオでは、それらを個々のノードとして実行したいと思っていますが、場合によっては、プライマリにする必要があり、セカンダリにすることもできます。しかし、両方で rs.initiate()を行ったので、私はセカンダリとしてノードを追加することはできません。レプリカセットの設定を元に戻して、セカンダリノードを追加できるようにする方法があります。レプリカセットの設定を元に戻したり元に戻したりする方法はありますか

+0

なぜこの設定が必要なのか説明できますか?あなたの要件はむしろ奇妙に聞こえる。たぶんもっと適切な解決策を見つけることができます。 –

+0

ちょっと@MarkusWMahlbergのでmongodbと一緒にnginx、これらのノードで実行されている金庫などの他のサービスがあります。スタンドアロンモードまたはクラスタモードで実行できるセットアップを作成したかったのです。だから私はセットアップで柔軟性を望んでいました。スタンドアロンからクラスタモードに簡単に移行することができます。クラスタモードでは、すべてのサービスはプライマリノードでのみ実行されますが、プライマリがダウンしてセカンダリが引き継ぐ場合、プライマリからセカンダリにデータがレプリケートされるため、mongodbだけがセカンダリノードで実行されます。 –

+0

この設定は問題があります:a)マシン上のMongoDBノード以外は実行しないでください。多くのRAMが必要です。同時に多数のユーザーがいる場合は、この貴重なリソースと競合します。 b)レプリケーションは、キャップ付きコレクションであるoplogを利用した連続的なプロセスです。あなたの変更がoplogを超えた場合、あなたのプライマリがダウンしている場合、あなたは再同期 - 悪いアイデアを強制されます。 c)フロントエンド(いくつかのノード上で負荷に基づいて動的にいくつかを追加する)のフロントエンド用にいくつかのHAセットアップを行い、MongoDBごとに標準のレプリケートセットを用意することです。 –

答えて

0

新しい設定文書を準備して、複製を再設定するだけです。

rs.reconfig(new_config_file)

+2

プライマリは 'rs.add'コマンドを使ってセカンダリを追加する必要がありますが、セカンダリもrs0で' rs.initiate'を使って設定されていれば、再構成を行う@satishはこのシナリオでは役に立ちません。プライマリノードにセカンダリノードを追加します。私はrs.initiate構成を元に戻す何かを探していたので、セカンダリのreconfigがどのように動作するのか分かりません –

関連する問題