MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Una panoramica di Percona Backup per MongoDB

Il metodo di backup noto e popolare per MongoDB è mongodump. È un metodo di backup logico, simile a mysqldump in MySQL o pg_dump nel database PostgreSQL. C'è un altro strumento di backup chiamato Percona Backup for MongoDB. Supporta set di repliche e cluster di shard, oltre a funzionalità più avanzate come il ripristino point-in-time.

È importante notare che esegue un backup coerente per il cluster sharded mongodb e supporta anche lo storage di oggetti compatibile con S3 per archiviare i backup. In questo blog parleremo dell'architettura, dell'installazione e dell'utilizzo di Percona Backup for MongoDB.

Architettura

Percona Backup for MongoDB è costituito da due componenti, il primo è un'utilità di processo che deve essere installata su ciascun nodo MongoDB, denominata pbm-agent. L'agente pbm agisce per coordinare tra i nodi del database, eseguendo il processo di backup e ripristino. Verifica inoltre se il nodo è il nodo corretto per eseguire il backup. L'agente pbm richiede un utente specifico con alcuni privilegi di ruolo; ad esempio:readWrite, backup, clusterMonitor e ripristino. È inoltre necessario creare un nuovo ruolo per pbm con il tipo di azione anyAction e il tipo di risorsa anyResource. L'utente deve esistere su ogni nodo nel set di repliche e anche nel server di configurazione se si utilizza l'architettura del cluster partizionato. Percona Backup for MongoDB utilizza un metodo della stringa di connessione URI MongoDB per connettersi al database, motivo per cui richiede l'accesso alle credenziali la prima volta.

L'altro componente è l'interfaccia a riga di comando chiamata pbm. L'utilità pbm attiva le azioni relative al backup, ad esempio, eseguire il backup, ripristinare, elencare il backup, eliminare e così via. Prima di lavorare con pbm, è necessario configurare le opzioni di backup, le opzioni di ripristino e le opzioni di ripristino temporizzato.

Il file di configurazione stesso è memorizzato in un file YAML e il comando pbm config viene utilizzato per caricare il file di configurazione. Alcuni dei comandi per l'utilità pbm sono mostrati di seguito:

  • pbm config, il comando utilizzato per configurare l'opzione di backup prima dell'esecuzione.
  • backup pbm, utilizzato per eseguire un backup di MongoDB. Supporta alcuni metodi di compressione come gzip, pgzip, lz4, snappy.
  • pbm restore, il comando utilizzato per ripristinare un backup su un nodo.
  • elenco pbm, elenco dei file di backup correnti.
  • pbm cancel-backup, utilizzato per annullare il processo di backup in esecuzione.
  • pbm delete-backup, utilizzato per eliminare i file di backup. Ci sono due opzioni; puoi specificare il nome del file di backup per eliminare o eliminare i file di backup che sono più vecchi di una certa età.

Installazione di Percona Backup per MongoDB

Ci sono due modi per installare Percona Backup for MongoDB, puoi usare il gestore di pacchetti dal sistema operativo e usare il Percona Repository ufficiale per installare il software, oppure puoi costruire dal codice sorgente.

Come prerequisiti prima di installare il pbm tramite l'installazione yum/apt, è necessario configurare il repository Percona e, successivamente, abilitare il repository pbm:

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

* Enabling the Percona Backup MongoDB repository

<*> All done!

Quindi, installa Percona Backup per MongoDB. In questo caso, sto usando il sistema operativo basato su CentOS, quindi eseguiremo l'installazione yum:

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

Una volta completato, puoi configurare pbm-agent come processo in background e giocare con l'interfaccia della riga di comando 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

Backup in azione

Prima di eseguire un backup di MongoDB, assicurati che pbm-agent sia in esecuzione su ciascun nodo e che la configurazione di backup sia stata impostata come mostrato di seguito, imposta il percorso del backup:

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

E prova a eseguire il backup su uno dei nodi secondari:

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

È tutto per ora. Prossimamente, ClusterControl 1.8.1 ti consentirà di pianificare e gestire i tuoi cluster MongoDB utilizzando Percona Backup for MongoDB.