sql >> データベース >  >> NoSQL >> MongoDB

最新のMongoDBバージョンにアップグレードするためのヒント

    MongoDBの最新バージョンは、以前のバージョンの新機能または改善された機能を統合するように構築されています。このため、最大のパフォーマンスと追加機能を実現するには、最新バージョンを実行することをお勧めします。さらに、最新バージョンは、MongoDBのバージョン管理によってはバグが修正された結果である可能性があります。

    MongoDBのバージョン管理

    MongoDBのバージョンはX.Y.Zの形式です。

    • Yが偶数の場合、つまり4.0または4.2の場合、これは安定しているため本番環境に推奨されるリリースシリーズを指します。この場合、新しい機能が統合されているため、後方互換性が失われる可能性があります。
    • Yが奇数の場合、つまり4.1または4.3の場合、これは安定していない開発シリーズを指しているため、テストのみに推奨されます。
    • Zはリビジョン/パッチ番号を指します。バグ修正と下位互換性のある変更が含まれます。

    また、MongoDBドライバーのバージョンを検討することは、データベースのパフォーマンスを向上させるために重要です。

    アップグレード前の考慮事項
    1. バックアップ :アップグレードの途中でクラッシュが発生し、最終的にデータベースが保持していたデータの整合性が損なわれる可能性があります。したがって、特定のバージョンにアップグレードする前に、常にデータのバックアップを作成することをお勧めします。
    2. メンテナンスウィンドウ :レプリカセットが含まれている場合、一部のバージョンにアップグレードするときに複雑になる可能性があります。高いダウンタイムが発生しないように、このプロセスに十分な時間をスケジュールする必要があります。
    3. バージョンの互換性 :リリースノートを確認し、システムセットアップがアップグレード先のバージョンと互換性があるかどうかを確認してください。また、アップグレード先のMongoDBバージョンと連携できる場合は、[ドライバーの互換性]ページでドライバーの互換性に関するドキュメントを確認してください。たとえば、MongoDB 4.2以降では、Ubuntu16.04PPCLEシステムはサポートされていません。
    4. ストリームの変更 :変更ストリームは、アプリケーションが必ずしもoplogを調整せずにリアルタイムのデータ変更にアクセスできるように設計されています。 4.0.7より前のMongoDBバージョンの場合、変更ストリームはバージョン0 v0再開トークンを使用しますが、このバージョンと後続バージョンはバージョン1v1再開トークンを使用します。バージョン4.0.7にアップグレードする場合は、クライアントがアップグレードの完了を待ってから変更ストリームを再開することをお勧めします。
    5. ステージング環境チェック :実稼働環境をアップグレードする前に、すべての構成が適切にセットアップされていること、およびアップグレード先の新しいバージョンと互換性があることを確認してください。
    6. プライマリ -セカンダリ -アービター(PSA)アーキテクチャ :MongoDBバージョン3.6以降では、デフォルトで「多数派」の読み取りに関する懸念事項のサポートが有効になっています。ただし、この構成ではストレージキャッシュに負荷がかかる可能性があり、これを防ぐ唯一の方法は、このパラメーターを無効にすることです。それでも、このパラメータを無効にすると、さらに懸念が生じる可能性があります。
      1. シャードクラスターでのトランザクションのサポートは、次の点で影響を受けます。
        1. シャードが懸念事項「マジョリティ」を無効にした場合、複数のシャードに書き込むトランザクションでエラーがスローされます。
        2. 読み取り懸念「スナップショット」は、読み取り懸念「マジョリティ」が無効になっているシャードを含むトランザクションには使用できません
      2. ロールバックからインデックスを変更する役割を担うcollModコマンドは機能しません。これは、操作をロールバックする必要がある場合、影響を受けるノードを再同期するためにプライマリノードを使用する必要があることを示しています。
      3. MongoDB4.0以前のバージョンの変更ストリームのサポートも無効になります。
      4. レプリカセットトランザクションは、このパラメーターを無効にしても影響を受けません。
    アップグレードの手順
    1. データのバックアップを作成します。
    2. 公式のMongoDBパッケージと一緒にシステムパッケージ管理ツールを使用して、mongod/mongosバイナリを個別にアップグレードします。次の手順を使用して、既存のバイナリを新しいバイナリに置き換えることにより、モンゴをアップグレードすることもできます。
      1. アップグレードするリビジョンのMongoDBバイナリをダウンロードし、ダウンロードした圧縮ファイルを一時的な場所に保存します。
      2. インスタンスをシャットダウンします。
      3. ダウンロードしたバイナリを使用して、既存のMongoDBバイナリを置き換えます。
      4. インスタンスを再起動します。
    3. レプリカセットをアップグレードする場合は、セカンダリとプライマリの最後から始めて、各メンバーを個別にアップグレードします。セカンダリをアップグレードするには:
      1. mongodバイナリをアップグレードする
      2. セカンダリがSECONDARY状態に回復するのを待ち、終了したら次のインスタンスをアップグレードします。 rs.status()は、mongoシェルでメンバーの状態を確認するために使用されます。 RECOVERINGおよびSTARTUP状態が表示される場合がありますが、SECONDARYに回復するまで待つ必要があります。
    4. プライマリをアップグレードする場合:
      1. mongoシェルでは、通常のフェイルオーバーを開始する方法として、rs.stepDown()を使用してプライマリをステップダウンします。期間中は書き込みを受け付けないため、最短時間でアップグレードすることをお勧めします。
      2. 別のメンバーがプライマリとして選出されていることがわかるまで、シャットダウンプライマリのバイナリをアップグレードします。
      3. アップグレードの完了後にプライマリを再起動しますが、ステータスrs.status()を確認すると、セカンダリのラベルが付けられている場合があります。
    5. MongoDB 4.4シャードクラスターにアップグレードするには:
      1. バランサーが無効になっていることを確認してください。
      2. レプリカセットをアップグレードしたのと同じ方法で、構成サーバーをアップグレードします。
      3. 対応する手順、つまりレプリカセットまたはスタンドアロンを使用してシャードをアップグレードします。
      4. 各mongosインスタンスを順番にアップグレードします。
      5. バランサーを再度有効にします。
    結論

    時間の経過とともにデータはより複雑になるため、データベース管理者の仕様を満たすことができる高度なデータベース機能が必要になります。 MongoDBは、バグが修正された、または新しく統合された機能を備えたデータベースバージョンを常にリリースするため、これに頼ることはありません。パフォーマンスを最大化するには、常に最新のMongoDBバージョンにアップグレードすることをお勧めします。それでも、アップグレードを行う前に、システムと互換性があるかどうかをアップグレードするバージョンのリリースノートを確認する必要があります。対応するMongoDBドライバーをアップグレードすることもお勧めします。


    1. ノードマングースはループ内のクエリが機能しないことを検出します

    2. エラー:mongooseを使用してMongoDbAtlasに接続するときのqueryTxtETIMEOUT

    3. お誕生日おめでとうApacheHBase! 10年間の回復力、安定性、パフォーマンス

    4. Redisからセッションを保存および取得する方法