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

自己管理型レプリカセットを WiredTiger に変更

注意

  • collModコマンドの noPaddingusePowerOf2Sizes MMAPv 1オプションが削除されます。

  • WiredTiger にアップグレードする必要があります。 MongoDB は バージョン4.2 700} で非推奨の MMAPv 1ストレージ エンジンを削除しました。

このチュートリアルを使用して、 WiredTigerを使用するようにレプリカセットを更新します。 この手順では、ダウンタイムを回避するために、レプリカセットを順次更新します。

レプリカセットには、異なるストレージエンジンを持つノードを含めることができます。 そのため、WiredTiger ストレージ エンジンを使用するようにメンバーをローリング方式で更新できます。

The "majority" read concern, available for WiredTiger, is enabled by default. ただし、プライマリ セカンダリ アービタ(PSA)アーキテクチャを持つ 3 ノードのレプリカセットでは、 "majority"読み取り保証(read concern)を無効にできます。 3 ノードの PSA アーキテクチャで"majority"読み取り保証(read concern)を無効にすると、キャッシュ負荷が増大する可能性が回避されます。

以下の 手順--enableMajorityReadConcern false では、 "majority"を含めることで PSA アーキテクチャの 読み取り保証を無効にします。

注意

"majority"読み取り保証(read concern)を無効にしても、変更ストリームの可用性には影響しません。

PSA アーキテクチャと読み取り保証(read concern) "majority"の詳細については、「プライマリとセカンダリ、アービタ レプリカセット 」を参照してください。

MongoDB バイナリ(mongodmongos)は、デフォルトで localhost にバインドされます。

WiredTiger storage engine では、データを保持するノードに XFS を使用することが Linux で推奨されます。 詳細については、「カーネルとファイル システム 」を参照してください。

WiredTiger にアップグレードすると、WiredTiger の配置次の MMAPv1 のみの制限の対象となります。

MMAPv1 の制限
簡単な説明
名前空間の数
MMAPv1 の場合、名前空間の数は名前空間ファイルのサイズを 628 で割った値に制限されます。
名前空間ファイルのサイズ
MMAPv1 の場合、名前空間ファイルは 2047 メガバイトを超えることはできません。
データベース サイズ
MMAPv1 ストレージ エンジンにより、各データベースのデータファイル数は 16000 以下に制限されます。
dataSize
MMAPv1 の場合、単一のmongodインスタンスでは、基礎のオペレーティング システムが提供する最大仮想メモリ アドレス領域を超えるデータセットを管理できません。
データベース内のコレクションの数
MMAPv1 storage engine の場合、データベース内のコレクションの最大数は、名前空間ファイルのサイズとデータベース内のコレクションのインデックス数の関数です。

次の手順では、レプリカセットをローリング方式で更新します。 この手順では、最初にセカンダリメンバーを更新し、次にプライマリを降格させ、降格させたメンバーを更新します。

メンバーを WiredTiger に更新するには、手順によってメンバーのデータが削除され、WiredTiger でmongodが開始され、最初の同期 が実行されます。

セカンダリ ノードを一度に 1 つずつ更新します。

1

mongoshで、セカンダリをシャットダウンします。

use admin
db.shutdownServer()
2

WiredTiger ストレージ エンジンで実行される新しいmongodインスタンス用のデータディレクトリを準備します。 mongodには、このディレクトリに対する読み取りと書込みの権限が必要です。 停止したセカンダリ ノードの現在のデータ ディレクトリの内容を削除するか、新しいディレクトリを完全に作成できます。

mongod では、WiredTiger は、別のストレージ エンジンで作成されたデータ ファイルでは起動しません。

3

MMAPv 1構成オプションをmongodインスタンス構成から削除します。

4

mongod} として を指定し、wiredTiger として--storageEngine WiredTiger 用に準備されたデータ ディレクトリを指定して、--dbpath を起動します。

必要に応じて、 --bind_ipなどの追加オプションを指定します。

警告

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

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

3 メンバーの PSA アーキテクチャを実行している場合は、読み取り保証majorityを無効にするために--enableMajorityReadConcern falseを含めます。 「 PSA 3ノードのアーキテクチャ」を参照してください。

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)> --enableMajorityReadConcern false

--dbpathにデータが存在しないため、 mongod最初の同期を実行します。 最初の同期の長さは、データベースのサイズとレプリカセットのノード間のネットワーク接続によって異なります。

構成ファイルでオプションを指定することもできます。 ストレージ エンジンを指定するには、 storage.engine設定を使用します。

残りのセカンダリ ノードに対して手順を繰り返し、一度に 1 つずつ更新します。

重要

WiredTiger を使用するようにレプリカセットのすべてのノードを更新する場合は、プライマリを更新する前に、まずすべてのセカンダリ メンバーが更新されていることを確認してください。

すべてのセカンダリ ノードが WiredTiger にアップグレードされたら、 mongoshをプライマリに接続し、 rs.stepDown()を使用してプライマリを降格し、新しいプライマリ選挙を強制します。

rs.stepDown()

プライマリが降格してセカンダリになったら、セカンダリを更新して、以前のように WiredTiger を使用します。

1

mongoshで、セカンダリをシャットダウンします。

use admin
db.shutdownServer()
2

WiredTiger ストレージ エンジンで実行される新しいmongodインスタンス用のデータディレクトリを準備します。 mongodには、このディレクトリに対する読み取りと書込みの権限が必要です。 停止したセカンダリ ノードの現在のデータ ディレクトリの内容を削除するか、新しいディレクトリを完全に作成できます。

mongod では、WiredTiger は、別のストレージ エンジンで作成されたデータ ファイルでは起動しません。

3

MMAPv 1構成オプションをmongodインスタンス構成から削除します。

4

mongod} として を指定し、wiredTiger として--storageEngine WiredTiger 用に準備されたデータ ディレクトリを指定して、--dbpath を起動します。

必要に応じて、 --bind_ipなどの追加オプションを指定します。

警告

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

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

3 メンバーの PSA アーキテクチャを実行している場合は、読み取り保証majorityを無効にするために--enableMajorityReadConcern falseを含めます。 「 PSA 3ノードのアーキテクチャ」を参照してください。

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)> --enableMajorityReadConcern false

--dbpathにデータが存在しないため、 mongod最初の同期を実行します。 最初の同期の長さは、データベースのサイズとレプリカセットのノード間のネットワーク接続によって異なります。

構成ファイルでオプションを指定することもできます。 ストレージ エンジンを指定するには、 storage.engine設定を使用します。

戻る

自己管理型スタンドアロンを WiredTiger に変更