MongoDBレプリケーション:ステップバイステップのレプリカセット包括的なガイド

公開: 2020-02-27

MongoDBには多くの機能があります。 そして、複製はそれらの中で顕著な機能です。 レプリケーションを実行することには多くの利点があります。 MongoDBを使用すると、配列オブジェクトと埋め込み配列を含む大規模なデータセットを操作できます。 配列オブジェクトと埋め込み配列を操作するときは、データ処理速度を高速に保つ必要があります。 MongoDBの実際のユースケースについて読んで、その重要性を理解してください。

また、そのプロセスの速度を高速に保つには、データの可用性が高いままであることを確認する必要があります。 高いデータ可用性を確保するための優れた方法は、レプリケーションを実行することです。 レプリケーションは、バックアップの作成にも役立ち、データの損失を防ぎます。

この記事では、MongoDBでのレプリケーションとは何か、それがどのように機能するか、そしてどのようにそれを行うことができるかを学びます。 また、MongoDBでレプリケーションを実行する利点と、このタスクの実行中にエラーが発生した場合の修正方法についても説明します。

始めましょう。

目次

レプリケーションとは何ですか?

サーバーを使用している間は、複数のMongoDBサーバーでデータを同期する必要があります。 レプリケーションのプロセスは、この点で役立ちます。 これにより、さまざまなサーバーに同じデータが保存されます。

レプリケーションにより、データの可用性が向上します。 データの損失は組織にとって重大な懸念事項であり、レプリケーションは同じことについての心配を軽減するのに役立ちます。 高いデータ可用性と冗長性により、単一のサーバーを失ってもデータベースは安全に保たれます。 データベースを保存している唯一のサーバーがダウンすると、データベースにアクセスできなくなります。

レプリケーションにより、これらの問題に直面することはありません。 MongoDBレプリケーションは、データのアクセシビリティを向上させる効果的な方法でもあります。 データの追加コピーを持つことは常に有益です。 レプリケーションは、サーバーメンテナンスのダウンタイムを減らすこともできます。

サーバー全体をレポート、バックアップ、または障害復旧専用にするオプションがあります。

MongoDBにはレプリケーションの長所がたくさんあります。 それらを見つけましょう。

レプリケーションの利点

これらは、レプリケーションが広く行われている理由のいくつかです。

  • レプリケーションは、災害が発生した場合にデータを回復するのに役立ちます。 データのバックアップがあり、そこから失われたファイルをすばやく回復できます。
  • データはいつでも利用できます。 これは、レプリケーションによって24時間365日のアクセスが保証されることを意味します。
  • レプリケーションを定期的に実行すると、サーバーメンテナンスのダウンタイムが短縮されます。
  • レプリケーションにより、読み取りのスケーラビリティが向上します。 複数のコピーがあると、データの読み取りをスケーリングするのに役立ちます。

ここで説明した利点とは別に、レプリケーションにも欠点があります。 データのコピーを保存するため、より多くのストレージスペースが必要になります。 これは重要な問題ではありませんが、注目に値します。 サーバーのストレージ機能を増やす必要がある場合があります。

MongoDBレプリケーションの仕組み

レプリケーションを実行するには、MongoDBレプリカセットを使用する必要があります。 同じデータをホストするmongodインスタンスのグループは、レプリカセットと呼ばれます。 レプリカセットには、1つのプライマリノードが含まれています。 プライマリノードはすべての書き込み操作を受け取ります。

レプリカセットには、プライマリノードが1つだけあります。 他のインスタンスは、セカンダリノードを含むセットのプライマリノードからの機能を適用します。 このように、それらはすべて同じデータセットを持っています。 MongoDBレプリカセットの仕組みは次のとおりです。

  • レプリカセットには最低3つのノードがあります
  • レプリカセットの1つのノードがプライマリノードです。 グループに存在する他のすべてのノードはセカンダリです。
  • レプリカセットでは、データはプライマリノードからセカンダリノードに複製されます
  • 自動フェイルオーバーが発生した場合(またはメンテナンス中に)、プライマリを決定するための選択が行われます。 次に、ノードは新しいプライマリを選択します。

MongoDBでのレプリケーションの基本概念について説明したので、そのプロセスから始めることができます。

ステップ1:最初のメンバーを追加する

これで、レプリケーションを実行するには、レプリカセットが必要になることがわかりました。 したがって、MongoDBでのレプリケーションの最初のステップは、そのインスタンスのレプリカセットを作成することです。 サーバーX、サーバーY、およびサーバーZの3つのサーバーがあるとします。これらの3つのうち、サーバーXがプライマリサーバーであり、サーバーXとYがセカンダリです。

レプリケーションがプライマリサーバーからセカンダリサーバーに行われることはすでにご存知でしょう。 まず、すべてのmongodインスタンス(レプリカセットに追加する)がさまざまなサーバーにインストールされていることを確認する必要があります。 このようにすると、サーバーの1つがダウンした場合でも複数のサーバーを使用できるため、MongoDBの他のインスタンスが存在することになります。

次に、すべてのインスタンスが接続できることを確認する必要があります。 サーバーXから指定されたコマンドを発行します。

mongo –host ServerY –port 27017

mongo –host ServerZ –port 27017

サーバーXから発行した後、残りのサーバーから発行します。 次に、replSetオプションを使用して最初のインスタンスを開始します。 replSetオプションは、このプロセスに参加するすべてのサーバーのコレクションを提供します。

mongo –replSet“ ReplicaA”

ここで、ReplicaAはレプリカセットの名前です。 任意の名前を選択できますが、この例ではこの用語を使用します。 レプリカセットに1台のサーバーを追加した後、レプリカセットを開始するためにコマンドrs.initiate()を発行する必要があります。 その後、レプリカセットを確認する必要があります。

これを行うには、コマンドrs.conf()を発行します。 この手順は、レプリカが問題なく最適にセットアップされていることを確認するのに役立ちます。

読む:MongoDBインタビューの質問と回答

手順2:セカンダリサーバーを追加する

プライマリサーバーを追加したら、2番目のサーバーの追加に集中できます。 この目的でrs.addコマンドを使用できます。 このコマンドには、追加するセカンダリサーバーの名前を入力する必要があります。 それらは自動的に追加されます。

この例では、サーバーX、サーバーY、およびサーバーZがありました。これら3つのサーバーのうち、サーバーXがレプリカセットのプライマリサーバーでした。 残りのサーバーをセカンダリとして追加する必要があります。 そのために、次のコマンドを発行します。

rs.add( "ServerY")

rs.add( "ServerZ")

以上です。 これで、レプリカセットに2つのセカンダリが正常に追加されました。

ステップ3:再構成(または削除)

サーバーの確立と追加は、コインのほんの一面です。 構成グループからサーバーを削除する必要がある場合もあります。 そのためには、rs.removeコマンドを使用する必要があります。

サーバーを削除する前に、サーバーをシャットダウンする必要があります。 必要なサーバーをシャットダウンするには、mongoシェルからdb.shutdownserverコマンドを使用します。 その後、プライマリに接続し、rs.removeを使用して、削除する必要のあるサーバーを削除します。 このコマンドは、必要なサーバーをレプリカセットから削除します。

したがって、レプリカセットにサーバーX、サーバーY、およびサーバーZがあり、そのうちサーバーZを削除する必要がある場合は、次のコマンドを使用します。

rs.remove( "ServerZ")

レプリカセットエラーを修正する方法

MongoDBでレプリケーションを実行しているときに、エラーが発生する場合があります。 これらのエラーのトラブルシューティングを行うには、次の方法を利用する必要があります。

  • まず、すべてのmongoインスタンスが接続されていることを確認します。 したがって、サーバーX、サーバーY、サーバーZの3つのサーバーがある場合、これら3つのサーバーの中で、サーバーXがプライマリサーバーになります。 次のコマンドを発行します。

mongo -host ServerY -port 27017

mongo -host ServerZ -port 27017

上記の2つのコマンドを実行すると、それらが接続されていることを確認するのに役立ちます。

次に、ステータスコマンド(rs.status)を実行します。 rs.statusコマンドは、レプリカセットのステータスを提供します。 レプリカセットのメンバーは、いくつかのメッセージを相互に送信します。 これらのメッセージを「ハートビート」と呼びます。 これらのメッセージはメンバーが機能している(つまり生きている)ことを示しているため、これらをハートビートと呼びます。

rs.statusコマンドはこれらのメッセージをチェックし、レプリカセットのメンバーに問題が発生しているかどうかを通知します。

  • あなたはoplogを調べることができます。 MongoDBでは、oplogはデータベースで実行した書き込みの履歴を保存します。 MongoDBは、Oplogを利用して、レプリカセットの他のすべてのメンバーへの書き込みを複製します。
  • 必要なメンバーに接続した後、rs.printReplicationinfoコマンドを使用してOplogを確認できます。 rs.printReplicationinfoコマンドは、Oplogのサイズと、いっぱいになるまでトランザクションを保持する制限を表示します。

以上です。 これで、MongoDBレプリカセットの問題をトラブルシューティングする方法がわかりました。 この知識があれば、面倒なことなくMongoDBでレプリケーションの実行を開始できます。

最終的な考え

レプリケーションは、MongoDBで実行できる多くのことの1つにすぎません。 このデータベースプログラムの使い方を学ぶのは簡単ではありません。 ただし、適切な実践とリソースがあれば、すぐに使いこなせるようになります。

MongoDBとそれに存在するさまざまな関数について詳しく知りたい場合は、ブログにアクセスしてください。 このトピックに関する知識を広げるのに役立つ役立つ記事がたくさんあります。

ビッグデータについて詳しく知りたい場合は、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンをカバーしています。ワークショップ、トップ企業との400時間以上の厳格な学習と就職支援。

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

自分をスキルアップして未来に備える

400時間以上の学習。 14言語とツール。 IIIT-B同窓生ステータス。
IIITバンガロアからのビッグデータの高度な証明書プログラム