ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

LinuxでMongoDBレプリカセットを構成する方法

編集済み 3 数か月前 によって ExtremeHow 編集チーム

設定レプリカセットリナックスモンゴDBデータベースセットアップ開発可用性の高いクラスター同期

LinuxでMongoDBレプリカセットを構成する方法

翻訳が更新されました 3 数か月前

MongoDBレプリカセットを作成することは、MongoDBに依存するアプリケーションにおいて高可用性とデータ冗長性を確保するための重要な部分です。このガイドでは、LinuxベースのシステムでMongoDBレプリカセットを構成する方法を詳しく説明します。この説明は、レプリカセットとは何か、前提条件、インストール、構成、テストなど、複数のトピックにわたって展開されます。この詳細なガイドでは、シンプルな英語でスクラッチからレプリカセットをセットアップするために知っておくべきすべてのことをカバーしています。

MongoDBレプリカセットの理解

技術的な構成に入る前に、MongoDBレプリカセットが何であるかを理解することが重要です。MongoDBのレプリカセットは、同じデータセットを維持するMongoDBデータベースノードのグループであり、データ冗長性と高可用性を提供します。典型的なレプリカセットは、少なくとも3つのMongoDBインスタンス(ノード)で構成されます。

レプリカセットはシームレスなフェイルオーバーを可能にし、プライマリノードがダウンした場合でも、セカンダリのどれかがプライマリに昇格され、最小限の中断でアプリケーションを継続して実行できます。

前提条件

MongoDBレプリカセットをセットアップするには、以下の前提条件が必要です。

MongoDBレプリカセット構成のステップバイステップガイド

1. すべてのノードにMongoDBをインストールする

最初のステップは、すべてのLinuxマシンにMongoDBをインストールすることです。Linuxディストリビューションによってインストールコマンドは異なる場合があります。

Ubuntuの場合(aptを使用):

sudo apt update 
sudo apt install -y mongodb

CentOSの場合(yumを使用):

sudo yum install -y mongodb-org

各マシンでMongoDBが実行されていることを確認します:

sudo systemctl start mongod 
sudo systemctl enable mongod

2. 各MongoDBインスタンスを構成する

MongoDBが各ノードにインストールされて実行されたら、それぞれのインスタンスをレプリカセットの一部として構成する必要があります。お気に入りのテキストエディタで通常/etc/mongod.confにあるMongoDB構成ファイルを編集します。

replication:で始まる行を見つけ、replSetNameを設定します。レプリカセット内のすべてのノードで名前が同じであることを確認してください。次のようにセクションを追加または修正します:

replication: 
  replSetName: "myReplicaSet"

ファイルを保存して閉じます。その後、すべてのノードで変更を適用するためにMongoDBサービスを再起動します:

sudo systemctl restart mongod

3. レプリカセットを初期化する

MongoDBインスタンスが構成されたら、プライマリとして指定したいサーバーに行きます。
MongoDBシェルを実行します:

mongo

MongoDBシェルで、次のコマンドを使用してレプリカセットを初期化します:

rs.initiate()

上記のコマンドは、プライマリサーバー上のレプリカセットを初期化します。

4. 他のノードをレプリカセットに追加する

レプリカセットが初期化されたら、rs.add()コマンドを使用して他のノード(セカンダリ、およびオプションでアービター)をレプリカセットに追加できます。

たとえば、セカンダリノードを追加するには:

rs.add("hostname2:27017")

hostname2:27017をセカンダリノードの実際のアドレスとポートに置き換えてください。

追加のセカンダリノードがある場合は、プロセスを繰り返します:

rs.add("hostname3:27017")

アービターノードを追加したい場合:

rs.addArb("hostname4:27017")

5. レプリカセットの状態を確認する

次のコマンドを使用してレプリカセットの状態を確認します:

rs.status()

このコマンドは、レプリカセット内の各ノードの状態を詳しく示すレポートを提供します。各ノードが予想される状態(プライマリ、セカンダリ、アービター)にあることを確認してください。

レプリカセット構成のテスト

レプリカセットが構成された後、その機能性をテストして、失敗時に正しく動作することを確認することが重要です。ここでは、実行できるいくつかのテストを紹介します。

テスト1: プライマリエレクション

現在のプライマリノードのMongoDBサービスを停止します:

sudo systemctl stop mongod

いずれかのセカンダリノードでレプリカセットの状態を確認します:

mongo

その後、MongoDBシェル内で実行します:

rs.status()

現在のプライマリノードを停止すると、セカンダリノードの1つが新しいプライマリノードになります。元のプライマリノードでMongoDBを再起動し、それがセカンダリノードとして再度ジョインされたことを確認します。

テスト2: データの一貫性

新しいプライマリノードが選択されると、それにデータを挿入し、そのデータがセカンダリノードにレプリケートされるかどうかを確認します。

use testDB 
db.testCollection.insert({"name": "Replication Test"})

その後、次のコマンドを実行して、セカンダリノードのいずれかにデータが存在するかどうかを確認します:

rs.slaveOk() 
db.testCollection.find()

テスト3: アービターの機能

アービターがある場合は、意図的にノードを停止し、アービターが新しいプライマリの選出に役立つかどうかを確認して、その機能をテストできます。

セカンダリMongoDBサービスの1つを停止・再起動します:

rs.status()

アービターが存在し、投票が必要なときに適切な役割を果たしていることを確認します。

一般的な問題のトラブルシューティング

ネットワーク構成

問題はネットワーク構成が不適切なために発生することがよくあります。すべてのノードが互いに通信できること、およびすべてのファイアウォールがポート27017(またはMongoDBが使用するポート)での通信を許可するように構成されていることを確認してください。

アクセス制御

認証が有効になっている場合、レプリカセット内のノードが互いに認証できるようにする適切なユーザーロールと資格情報を作成することを確認してください。

読み取りおよび書き込みの懸念

MongoDBの読み取りおよび書き込みの懸念レベルがどのように機能するかを理解し、特にレプリカセットのシナリオでアプリケーションのニーズに合わせて構成できるようにします。

結論

LinuxシステムでのMongoDBレプリカセットの構成は、高可用性と信頼性を求めるアプリケーションにとって重要です。この包括的なガイドに従うことで、それぞれのステップの重要性を認識しながらレプリカセットを効果的に設定することができるはずです。レプリカセットを実行することで、データが複数のノードにレプリケートされるようになり、データベースシステムがよりフォールトトレラントになり、実世界のアプリケーションの需要に対応できるようになります。

常にMongoDBレプリカセットのヘルスとパフォーマンスを監視し、アプリケーション要求の変化に応じて構成を調整することを覚えておいてください。適切なセットアップとメンテナンスを行うことで、MongoDBレプリカセットは、ミッションクリティカルなアプリケーションに対して堅牢なデータベースソリューションを提供できます。

記事の内容に誤りがある場合, あなたは


コメント