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

MongoDBのPerconaバックアップの概要

    MongoDBの既知の一般的なバックアップ方法は、mongodumpです。これは論理的なバックアップ方法であり、MySQLのmysqldumpやPostgreSQLデータベースのpg_dumpに似ています。 Percona BackupforMongoDBと呼ばれる別のバックアップツールがあります。レプリカセットとシャードクラスターのほか、ポイントインタイムリカバリなどのより高度な機能をサポートしています。

    mongodbシャードクラスターの一貫したバックアップを実行し、バックアップを保存するためのS3互換オブジェクトストレージもサポートしていることに注意してください。このブログでは、Percona Backup for MongoDBのアーキテクチャ、インストール、および使用法について説明します。

    アーキテクチャ

    Percona Backup for MongoDBは2つのコンポーネントで構成されています。最初のコンポーネントは、pbm-agentと呼ばれる各MongoDBノードにインストールする必要のあるプロセスユーティリティです。 pbm-agentは、データベースノード間で調整を行い、バックアップと復元のプロセスを実行します。また、ノードがバックアップを取るのに正しいノードであるかどうかもチェックします。 pbm-agentには、いくつかの役割権限を持つ特定のユーザーが必要です。例:readWrite、backup、clusterMonitor、およびrestore。また、アクションタイプanyActionおよびリソースタイプanyResourceでpbmの新しいロールを作成する必要があります。ユーザーは、レプリカセットの各ノードに存在する必要があります。また、シャードクラスターアーキテクチャを使用する場合は、構成サーバーにも存在する必要があります。 Percona Backup for MongoDBは、MongoDB URI接続文字列方式を使用してデータベースに接続します。そのため、最初に資格情報へのアクセスが必要になります。

    もう1つのコンポーネントは、pbmと呼ばれるコマンドラインインターフェイスです。 pbmユーティリティは、バックアップ関連のアクションをトリガーします。たとえば、バックアップの実行、復元、バックアップの一覧表示、削除などです。 pbmを使用する前に、バックアップオプション、復元オプション、およびポイントインタイムリカバリオプションを構成する必要があります。

    構成ファイル自体はYAMLファイルに保存され、pbmconfigコマンドを使用して構成ファイルをロードします。 pbmユーティリティのコマンドの一部を以下に示します。

    • pbm config、実行前にバックアップオプションを構成するために使用されるコマンド。
    • pbmバックアップ。MongoDBのバックアップを取るために使用されます。 gzip、pgzip、lz4、snappyなどのいくつかの圧縮方法をサポートしています。
    • pbm restore、バックアップをノードに復元するために使用されるコマンド。
    • pbmリスト、現在のバックアップファイルのリスト。
    • pbm cancel-backup、実行中のバックアッププロセスをキャンセルするために使用されます。
    • pbmdelete-backup。バックアップファイルの削除に使用されます。 2つのオプションがあります。バックアップのファイル名を指定して、特定の経過時間より古いバックアップファイルを削除または削除できます。

    MongoDB用のPerconaバックアップのインストール

    Percona Backup for MongoDBをインストールする方法は、オペレーティングシステムからパッケージマネージャーを使用してソフトウェアのインストールに公式のPerconaリポジトリを使用する方法と、ソースコードからビルドする方法の2つです。

    yum / aptインストールを介してpbmをインストールする前の前提条件として、Perconaリポジトリを構成し、その後、pbmリポジトリを有効にする必要があります。

    [[email protected] ~]# percona-release enable pbm release
    
    * Enabling the Percona Backup MongoDB repository
    
    <*> All done!

    次に、Percona BackupforMongoDBをインストールします。この場合、CentOSベースのオペレーティングシステムを使用しているので、yuminstallを実行します。

    [[email protected] ~]# yum install percona-backup-mongodb
    
    Loaded plugins: fastestmirror
    
    Repository percona-release-noarch is listed more than once in the configuration
    
    Repository percona-release is listed more than once in the configuration
    
    Repository percona-release-noarch is listed more than once in the configuration
    
    Repository percona-release-source is listed more than once in the configuration
    
    (1/10): extras/7/x86_64/primary_db                                                                                                         | 222 kB  00:00:00
    
    (2/10): pbm-release-x86_64/7/primary_db                                                                                                    | 4.2 kB  00:00:02
    
    (3/10): percona-tools-release/7/x86_64/primary_db                                                                                          |  84 kB  00:00:00
    
    (4/10): tools-release-x86_64/7/primary_db                                                                                                  |  84 kB  00:00:00
    
    (5/10): percona-release-x86_64/7/primary_db                                                                                                | 1.1 MB  00:00:06
    
    (6/10): percona-release/7/x86_64/primary_db                                                                                                | 1.1 MB  00:00:08
    
    (7/10): base/7/x86_64/primary_db                                                                                                           | 6.1 MB  00:00:11
    
    (8/10): updates/7/x86_64/primary_db                                                                                                        | 2.5 MB  00:00:08
    
    (9/10): epel/x86_64/updateinfo                                                                                                             | 1.0 MB  00:00:13
    
    (10/10): epel/x86_64/primary_db                                                                                                            | 6.9 MB  00:00:07
    
    Loading mirror speeds from cached hostfile
    
     * base: mirror.telkomuniversity.ac.id
    
     * epel: ftp.jaist.ac.jp
    
     * extras: mirror.telkomuniversity.ac.id
    
     * updates: mirror.telkomuniversity.ac.id
    
    Resolving Dependencies
    
    --> Running transaction check
    
    ---> Package percona-backup-mongodb.x86_64 0:1.3.3-1.el7 will be installed
    
    --> Finished Dependency Resolution
    
    
    
    Dependencies Resolved
    
    
    
    ==================================================================================================================================================================
    
     Package                                       Arch                          Version                              Repository                                 Size
    
    ==================================================================================================================================================================
    
    Installing:
    
     percona-backup-mongodb                        x86_64                        1.3.3-1.el7                          pbm-release-x86_64                         16 M
    
    
    
    Transaction Summary
    
    ==================================================================================================================================================================
    
    Install  1 Package
    
    
    
    Total download size: 16 M
    
    Installed size: 61 M
    
    Is this ok [y/d/N]: y
    
    Downloading packages:
    
    percona-backup-mongodb-1.3.3-1.el7.x86_64.rpm                                                                                              |  16 MB  00:00:55
    
    Running transaction check
    
    Running transaction test
    
    Transaction test succeeded
    
    Running transaction
    
      Installing : percona-backup-mongodb-1.3.3-1.el7.x86_64                                                                                                      1/1
    
      Verifying  : percona-backup-mongodb-1.3.3-1.el7.x86_64                                                                                                      1/1
    
    
    
    Installed:
    
      percona-backup-mongodb.x86_64 0:1.3.3-1.el7
    
    
    
    Complete!

    完了したら、pbm-agentをバックグラウンドプロセスとして構成し、pbmコマンドラインインターフェイスを試してみることができます。

    [[email protected] ~]# pbm
    
    usage: pbm [<flags>] <command> [<args> ...]
    
    
    
    Percona Backup for MongoDB
    
    
    
    Flags:
    
      --help                     Show context-sensitive help (also try
    
                                 --help-long and --help-man).
    
      --mongodb-uri=MONGODB-URI  MongoDB connection string (Default =
    
                                 PBM_MONGODB_URI environment variable)
    
      --compression=s2           Compression type
    
                                 <none>/<gzip>/<snappy>/<lz4>/<s2>/<pgzip>
    
    
    
    Commands:
    
      help [<command>...]
    
        Show help.
    
    
    
      config [<flags>] [<key>]
    
        Set, change or list the config
    
    
    
      backup
    
        Make backup
    
    
    
      restore [<flags>] [<backup_name>]
    
        Restore backup
    
    
    
      cancel-backup
    
        Restore backup
    
    
    
      list [<flags>]
    
        Backup list
    
    
    
      delete-backup [<flags>] [<name>]
    
        Delete a backup
    
    
    
      version [<flags>]
    
        PBM version info
    バックアップの実行

    MongoDBのバックアップを作成する前に、pbm-agentが各ノードで実行され、バックアップ構成が次のように設定されていることを確認し、バックアップのパスを設定します。

    [[email protected] ~]# pbm config --file=/root/config.yaml --mongodb-uri "mongodb://pbmuser:***@localhost:27017/"
    
    [Config set]
    
    ------
    
    pitr:
    
      enabled: false
    
    storage:
    
      type: filesystem
    
      filesystem:
    
        path: /data/backups

    そして、セカンダリノードの1つでバックアップをテスト実行します。

    [[email protected] ~]# pbm backup --mongodb-uri "mongodb://pbmuser:*****@localhost:27017/" --compression=pgzip
    
    Starting backup '2020-11-13T15:28:49Z'...................
    
    Backup '2020-11-13T15:28:49Z' to remote store '/data/backups' has started

    それは今のところすべてです。間もなく、ClusterControl 1.8.1で、Percona BackupforMongoDBを使用してMongoDBクラスターをスケジュールおよび管理できるようになります。


    1. Ubuntu 16.04systemdredisのulimitに関する問題

    2. ハウツー:HBase Thriftインターフェースの使用、パート1

    3. Laravel 4:未定義のメソッドRedis ::connection()の呼び出し

    4. KubernetesクラスターのNodeJSでECONNREFUSEDを再接続します