レプリカセット 内に セカンダリ があり、データを保持する必要がなくなり、セットが プライマリ を選択 できるようにするにはセット内に残っている必要がある場合は、このチュートリアルのいずれかの手順を使用してセカンダリを アービタ に変換できます。どちらの手順も操作上では同等です。
アービタは、以前のセカンダリと同じポートで動作できます。 この手順では、セカンダリをシャットダウンしてそのデータを削除してから、セカンダリを再起動してアービタとして再構成する必要があります。
この手順については、「セカンダリをArbiterに変換し、ポート番号を再利用する」を参照してください。
新しいポートでアービタを実行します。 この手順では、セカンダリとして実行中の インスタンスをシャットダウンする前に、サーバーをアービタとして再構成することができます。
この手順については、「新しいポート番号で実行されているセカンダリをArbiterに変換」を参照してください。
セカンダリをアービタに変換し、ポート番号を再利用する
アプリケーションがセカンダリに直接接続している場合は、アプリケーションを変更して、MongoDB クエリがセカンダリに到達しないようにします。
セカンダリをシャットダウンします。
Remove the secondary from the replica set by calling the
rs.remove()method. Perform this operation while connected to the current primary inmongosh:rs.remove("<hostname><:port>") セカンダリのデータ ディレクトリをアーカイブ フォルダーに移動します。 例:
mv /data/db /data/db-old 注意
任意
代わりにデータを削除できます。
mongodインスタンスの再起動時にポイントする新しい空のデータディレクトリを作成します。 以前の名前を再利用できます。 例:mkdir /data/db ポート番号、空のデータディレクトリ、レプリカセットを指定して、セカンダリの
mongodインスタンスを再起動します。 以前に使用していたポート番号を使用できます。 次のようなコマンドを発行します。警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
mongod --port 27021 --dbpath /data/db --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)> In
mongoshconvert the secondary to an arbiter using thers.addArb()method:rs.addArb("<hostname><:port>")
新しいポート番号で実行中のセカンダリをアービタに変換
アプリケーションがセカンダリに直接接続している場合、またはセカンダリを参照する接続stringがある場合は、アプリケーションを変更して、 MongoDBクエリがセカンダリに到達しないようにします。
新しいポート番号で使用する新しい空のデータディレクトリを作成します。 例:
mkdir /data/db-temp 新しいデータディレクトリと既存のレプリカセットを指定して、新しいポート番号で新しい
mongodインスタンスを起動します。 次のようなコマンドを発行します。警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)> In
mongoshconnected to the current primary, convert the newmongodinstance to an arbiter using thers.addArb()method:rs.addArb("<hostname><:port>") セカンダリをシャットダウンします。
Remove the secondary from the replica set by calling the
rs.remove()method inmongosh:rs.remove("<hostname><:port>") セカンダリのデータ ディレクトリをアーカイブ フォルダーに移動します。 例:
mv /data/db /data/db-old 注意
任意
代わりにデータを削除できます。