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

自己管理型レプリカセット ノードのメンテナンスの実行

項目一覧

  • Overview
  • 手順

レプリカセットにより、メンテナンスウィンドウの大部分が MongoDB 配置を利用可能な状態に保つことができます。

このドキュメントでは、レプリカセットの各ノードのメンテナンスを実行するための基本的な手順について説明します。 さらに、この特定のシーケンスは、プライマリが使用できない時間を最小限に抑え、配置全体への影響を制御するようにします。

これらの手順は、特に MongoDB の最新バージョンへのアップグレードなどの手順の一般的なレプリカセット操作の基準として使用します。

レプリカセットの各ノードに対して、セカンダリ ノードから始まり、プライマリで終了するまでに次の一連のイベントが実行されます。

1

mongoshで、 mongodインスタンスをシャットダウンします。

db.shutdownServer()
2

オペレーティング システムの shell プロンプトで、 mongodをスタンドアロン インスタンスとして再起動します。

構成ファイルを使用している場合は、次の構成を更新します。

たとえば、メンテナンスのためにシャード/コンフィギュレーションサーバーのレプリカセット ノードのメンテナンスを実行する場合、更新された構成ファイルには次の例のような内容が含まれます。

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

コマンドライン オプションを使用する場合は、次の構成更新を行って再起動します。

たとえば、シャーディングされたクラスターの一部ではないレプリカセット ノードを再起動するには、次のようにします。

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

たとえば、メンテナンスのためにシャード/コンフィギュレーションサーバーのレプリカセット ノードを再起動するには、次の手順を実行します。

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

警告

インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

レプリカセット メンバーをスタンドアロン インスタンスとして再起動する場合でも、常に同じユーザーでmongodを起動します。

3

ノードがスタンドアロンである間は、 mongoshを使用してメンテナンスを実行します。

mongo --port 27218

重要

ノードがスタンドアロンである間は、このノードに書込み (write) は複製されず、このノードへの書込み (write) はレプリカセットの他のノードに複製されることもありません。

このスタンドアロンでの書込みが、レプリカセットに再び追加されたときにノードに適用される oplog の書込みと競合しないことを確認します。

4

すべてのメンテナンス タスクを実行した後、次の手順で、 mongodをレプリカセットのノードとして通常のポートで再起動します。

mongoshから、メンテナンス完了後にスタンドアロン サーバーをシャットダウンします。

use admin
db.shutdownServer()

mongodインスタンスを元の構成のレプリカセット メンバーとして再起動します。つまり、スタンドアロンとして起動する際に行った構成変更を元に戻します。

Tip

disableLogicalSessionCacheRefresh パラメーターは必ず削除してください。

シャード ノードまたはコンフィギュレーションサーバー ノードの場合は、 skipShardingConfigurationChecksパラメータを必ず削除してください。

起動したら、 mongoshを再起動されたインスタンスに接続します。

セカンダリがプライマリ に追いつくのに時間がかかります。 mongoshから、次のコマンドを使用して、ノードがRECOVERING状態からSECONDARY状態に追いついたことを確認します。

rs.status()
5
  1. すべてのセカンダリのメンテナンス タスクが完了した後にプライマリのメンテナンスを実行するには、 mongoshをプライマリに接続し、 rs.stepDown()を使用してプライマリを降格し、セカンダリの 1 つが新しいプライマリに選出されるようにします。 5 分間、ノードが再度プライマリに選出されないようにするには、 300秒の待機期間を指定します。

    rs.stepDown(300)

    プライマリが降格すると、レプリカセットは新しいプライマリを選択します。

  2. mongodをスタンドアロン インスタンスとして再起動し、次の構成更新を行います。

構成ファイルを使用している場合は、次の構成を更新します。

たとえば、メンテナンスのためにシャード/コンフィギュレーションサーバーのレプリカセット ノードのメンテナンスを実行する場合、更新された構成ファイルには次の例のような内容が含まれます。

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

警告

インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

コマンドライン オプションを使用する場合は、次の構成更新を行います。

たとえば、シャーディングされたクラスターの一部ではないレプリカセット ノードを再起動するには、次のようにします。

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

たとえば、メンテナンスのためにシャード/コンフィギュレーションサーバーのレプリカセット ノードを再起動するには、次の手順を実行します。

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

警告

インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

  1. スタンドアロンになった でメンテナンス タスクを実行します。

    重要

    ノードがスタンドアロンである間は、このノードに書込み (write) は複製されず、このノードへの書込み (write) はレプリカセットの他のノードに複製されることもありません。

    このスタンドアロンでの書込みが、レプリカセットに再び追加されたときにノードに適用される oplog の書込みと競合しないことを確認します。

  2. すべてのメンテナンス タスクを実行した後、 mongodインスタンスを元の構成のレプリカセット メンバーとして再起動します。つまり、スタンドアロンとして起動する際に行った構成変更を元に戻します。

    Tip

    disableLogicalSessionCacheRefresh パラメーターは必ず削除してください。

    シャード ノードまたはコンフィギュレーションサーバー ノードの場合は、 skipShardingConfigurationChecksパラメータを必ず削除してください。

戻る

oplogサイズの変更

項目一覧