MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ein Überblick über Percona Backup für MongoDB

Die bekannte und beliebte Sicherungsmethode für MongoDB ist Mongodump. Es ist eine logische Sicherungsmethode, ähnlich wie mysqldump in MySQL oder pg_dump in der PostgreSQL-Datenbank. Es gibt ein weiteres Backup-Tool namens Percona Backup for MongoDB. Es bietet Unterstützung für Replikatsätze und Shard-Cluster sowie erweiterte Funktionen wie die Wiederherstellung zu einem bestimmten Zeitpunkt.

Es ist wichtig zu beachten, dass es ein konsistentes Backup für Ihren mongodb-Shard-Cluster durchführt und auch S3-kompatiblen Objektspeicher zum Speichern der Backups unterstützt. In diesem Blog werden wir die Architektur, Installation und Verwendung von Percona Backup for MongoDB besprechen.

Architektur

Percona Backup for MongoDB besteht aus zwei Komponenten, die erste ist ein Prozessdienstprogramm namens pbm-agent, das auf jedem MongoDB-Knoten installiert werden muss. Der pbm-Agent übernimmt die Koordination zwischen den Datenbankknoten und führt den Sicherungs- und Wiederherstellungsprozess aus. Es prüft auch, ob der Knoten der richtige Knoten ist, um die Sicherung zu übernehmen. Der pbm-Agent erfordert einen bestimmten Benutzer mit einigen Rollenberechtigungen; zB:readWrite, Backup, ClusterMonitor und Restore. Außerdem muss eine neue Rolle für pbm mit dem Aktionstyp „anyAction“ und dem Ressourcentyp „anyResource“ erstellt werden. Der Benutzer muss auf jedem Knoten im Replikatsatz und auch auf dem Konfigurationsserver vorhanden sein, wenn Sie eine Sharded-Cluster-Architektur verwenden. Percona Backup for MongoDB verwendet eine MongoDB-URI-Verbindungszeichenfolgenmethode, um eine Verbindung zur Datenbank herzustellen, weshalb beim ersten Mal ein Anmeldedatenzugriff erforderlich ist.

Die andere Komponente ist die Befehlszeilenschnittstelle namens pbm. Das Dienstprogramm pbm löst die sicherungsbezogenen Aktionen aus, z. B. Sicherung ausführen, wiederherstellen, Sicherung auflisten, löschen usw. Bevor Sie mit pbm arbeiten, müssen Sie Sicherungsoptionen, Wiederherstellungsoptionen und Point-in-Time-Wiederherstellungsoptionen konfigurieren.

Die Konfigurationsdatei selbst wird in einer YAML-Datei gespeichert, und der Befehl pbm config wird verwendet, um die Konfigurationsdatei zu laden. Einige der Befehle für das Dienstprogramm pbm sind unten aufgeführt:

  • pbm config, der Befehl zum Konfigurieren der Backup-Option vor der Ausführung.
  • pbm-Backup, wird verwendet, um ein Backup von MongoDB zu erstellen. Es unterstützt einige Komprimierungsmethoden wie gzip, pgzip, lz4, snappy.
  • pbm restore, der Befehl zum Wiederherstellen einer Sicherung auf einem Knoten.
  • pbm-Liste,  Auflistung der aktuellen Sicherungsdateien.
  • pbm cancel-backup, wird verwendet, um den laufenden Sicherungsvorgang abzubrechen.
  • pbm delete-backup, wird zum Löschen von Sicherungsdateien verwendet. Es gibt zwei Möglichkeiten; Sie können den Dateinamen der zu löschenden Sicherung angeben oder Sicherungsdateien löschen, die älter als ein bestimmtes Alter sind.

Installation von Percona Backup für MongoDB

Es gibt zwei Möglichkeiten, Percona Backup for MongoDB zu installieren, Sie können den Paketmanager des Betriebssystems verwenden und das offizielle Percona-Repository zum Installieren der Software verwenden, oder Sie können aus dem Quellcode erstellen.

Als Voraussetzung vor der Installation von pbm durch die yum/apt-Installation müssen Sie das Percona-Repository konfigurieren und danach das pbm-Repository aktivieren:

[[email protected] ~]# percona-release enable pbm release

* Enabling the Percona Backup MongoDB repository

<*> All done!

Installieren Sie dann Percona Backup for MongoDB. In diesem Fall verwende ich das CentOS-basierte Betriebssystem, also führen wir die Yum-Installation durch:

[[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!

Nach Abschluss können Sie den pbm-agent als Hintergrundprozess konfigurieren und mit der pbm-Befehlszeilenschnittstelle herumspielen:

[[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

Sicherung in Aktion

Bevor Sie ein Backup von MongoDB erstellen, stellen Sie sicher, dass der pbm-agent auf jedem Knoten ausgeführt wird und die Backup-Konfiguration wie unten gezeigt eingestellt wurde, legen Sie den Pfad des Backups fest:

[[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

Und testen Sie die Sicherung auf einem der sekundären Knoten:

[[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

Das ist alles für jetzt. In Kürze wird ClusterControl 1.8.1 Ihnen ermöglichen, Ihre MongoDB-Cluster mit Percona Backup for MongoDB zu planen und zu verwalten.