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

自己管理型セカンダリのアービタへの変換

項目一覧

  • セカンダリをアービタに変換し、ポート番号を再利用する
  • 新しいポート番号で実行中のセカンダリをアービタに変換

レプリカセット セカンダリ があり、データを保持する必要がなくなり、セットが プライマリ を選択 できるようにするにはセット内に残っている必要がある場合は、次のいずれかの手順を使用してセカンダリを アービタ に変換できます。チュートリアル。どちらの手順も操作上では同等です。

  • アービタは、以前のセカンダリと同じポートで動作できます。 この手順では、セカンダリをシャットダウンしてそのデータを削除してから、セカンダリを再起動してアービタとして再構成する必要があります。

    この手順については、「 セカンダリをアービタに変換し、ポート番号を再利用する 」を参照してください。

  • 新しいポートでアービタを実行します。 この手順では、セカンダリとして実行中の インスタンスをシャットダウンする前に、サーバーをアービタとして再構成することができます。

    この手順については、「新しいポート番号で実行されているセカンダリをアービタに変換 」を参照してください。

  1. アプリケーションがセカンダリに直接接続している場合は、アプリケーションを変更して、MongoDB クエリがセカンダリに到達しないようにします。

  2. セカンダリをシャットダウンします。

  3. メソッドを呼び出して、 レプリカセット からrs.remove() セカンダリ を削除します。の現在の プライマリ mongoshに接続している間にこの操作を実行します。

    rs.remove("<hostname><:port>")
  4. mongoshrs.conf() メソッドを呼び出して、レプリカセットにセカンダリが含まれなくなったことを確認します。

    rs.conf()
  5. セカンダリのデータ ディレクトリをアーカイブ フォルダーに移動します。 例:

    mv /data/db /data/db-old

    注意

    任意

    代わりにデータを削除できます。

  6. mongodインスタンスの再起動時にポイントする新しい空のデータディレクトリを作成します。 以前の名前を再利用できます。 例:

    mkdir /data/db
  7. ポート番号、空のデータディレクトリ、レプリカセットを指定して、セカンダリのmongodインスタンスを再起動します。 以前に使用していたポート番号を使用できます。 次のようなコマンドを発行します。

    警告

    非ローカルホスト(例: (一般にアクセス可能な)IP アドレスを使用して、クラスターを不正アクセスから保護していることを確認します。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

    mongod --port 27021 --dbpath /data/db --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  8. mongoshで、 rs.addArb()メソッドを使用してセカンダリをアービタに変換します。

    rs.addArb("<hostname><:port>")
  9. rs.conf()mongoshで メソッドを呼び出して、アービタがレプリカセットに属していることを確認します。

    rs.conf()

    アービタ ノードには以下を含める必要があります。

    "arbiterOnly" : true
  1. アプリケーションがセカンダリに直接接続している場合、またはセカンダリを参照する接続stringがある場合は、アプリケーションを変更して、 MongoDBクエリがセカンダリに到達しないようにします。

  2. 新しいポート番号で使用する新しい空のデータディレクトリを作成します。 例:

    mkdir /data/db-temp
  3. 新しいデータディレクトリと既存のレプリカセットを指定して、新しいポート番号で新しいmongodインスタンスを起動します。 次のようなコマンドを発行します。

    警告

    非ローカルホスト(例: (一般にアクセス可能な)IP アドレスを使用して、クラスターを不正アクセスから保護していることを確認します。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

    mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  4. mongosh現在のプライマリに接続されている で、 メソッドを使用して新しいmongod インスタンスをアービタに変換します。rs.addArb()

    rs.addArb("<hostname><:port>")
  5. rs.conf()mongoshで メソッドを呼び出して、アービタがレプリカセットに追加されていることを確認します。

    rs.conf()

    アービタ ノードには以下を含める必要があります。

    "arbiterOnly" : true
  6. セカンダリをシャットダウンします。

  7. レプリカセット から セカンダリ を削除するには、 で メソッドを呼び出します。rs.remove()mongosh

    rs.remove("<hostname><:port>")
  8. レプリカセットに古いセカンダリが含まれなくなったことを確認するには、rs.conf() mongoshで メソッドを呼び出します。

    rs.conf()
  9. セカンダリのデータ ディレクトリをアーカイブ フォルダーに移動します。 例:

    mv /data/db /data/db-old

    注意

    任意

    代わりにデータを削除できます。

戻る

ブロック セカンダリ 優先順位