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

En oversigt over Percona Backup til MongoDB

Den kendte og populære backupmetode til MongoDB er mongodump. Det er en logisk backupmetode, der ligner mysqldump i MySQL eller pg_dump i PostgreSQL-databasen. Der er et andet backupværktøj kaldet Percona Backup for MongoDB. Den har understøttelse af replikasæt og shard-klynger samt mere avancerede funktioner som punkt-i-tidsgendannelse.

Det er vigtigt at bemærke, at det udfører en konsekvent sikkerhedskopiering af din mongodb sharded cluster, og understøtter også S3-kompatibel objektlagring til at gemme sikkerhedskopierne. I denne blog vil vi diskutere arkitektur, installation og brug af Percona Backup til MongoDB.

Arkitektur

Percona Backup for MongoDB består af to komponenter, den første er et procesværktøj, der skal installeres på hver MongoDB-node, kaldet pbm-agent. Pbm-agenten fungerer for at koordinere mellem databasenoderne og kører backup- og gendannelsesprocessen. Den kontrollerer også, om noden er den rigtige node til at tage backup af. Pbm-agenten kræver en specifik bruger med nogle rolleprivilegier; f.eks.:readWrite, backup, clusterMonitor og gendannelse. Det skal også oprette en ny rolle for pbm med handlingstype anyAction og ressourcetype anyResource. Brugeren skal eksistere på hver node i replikasættet og også i konfigurationsserveren, hvis du bruger sharded cluster-arkitektur. Percona Backup til MongoDB bruger en MongoDB URI-forbindelsesstrengmetode til at oprette forbindelse til databasen, hvorfor den kræver legitimationsadgang første gang.

Den anden komponent er kommandolinjegrænsefladen kaldet pbm. pbm-værktøjet udløser de backup-relaterede handlinger, f.eks. udføre backup, gendannelse, liste backup, slet og så videre. Før du arbejder med pbm, skal du konfigurere sikkerhedskopieringsmuligheder, gendannelsesmuligheder og gendannelsesmuligheder for tidspunkt.

Konfigurationsfilen i sig selv er gemt i en YAML-fil, og kommandoen pbm config bruges til at indlæse konfigurationsfilen. Nogle af kommandoerne til pbm-værktøjet er vist nedenfor:

  • pbm config, kommandoen brugt til at konfigurere sikkerhedskopieringsindstillingen, før den blev udført.
  • pbm backup,  bruges til at tage en sikkerhedskopi af MongoDB. Det understøtter nogle komprimeringsmetoder såsom gzip, pgzip, lz4, snappy.
  • pbm restore, kommandoen, der bruges til at gendanne en sikkerhedskopi til en node.
  • pbm-liste, liste over de aktuelle backupfiler.
  • pbm cancel-backup, bruges til at annullere den kørende backupproces.
  • pbm delete-backup, bruges til at slette backup-filer. Der er to muligheder; du kan angive filnavnet på backup for at slette eller slette backup-filer, der er ældre end en vis alder.

Installation af Percona Backup til MongoDB

Der er to måder, du kan installere Percona Backup til MongoDB på, du kan bruge pakkehåndteringen fra operativsystemet og bruge det officielle Percona Repository til at installere softwaren, eller du kan bygge fra kildekoden.

Som forudsætninger, før du installerer pbm'en gennem yum/apt installationen, skal du konfigurere Percona Repository, og derefter aktivere pbm repository:

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

* Enabling the Percona Backup MongoDB repository

<*> All done!

Installer derefter Percona Backup til MongoDB. I dette tilfælde bruger jeg det CentOS-baserede operativsystem, så vi vil installere 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!

Når den er færdig, kan du konfigurere pbm-agenten som en baggrundsproces og lege med pbm kommandolinjegrænsefladen:

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

Sikkerhedskopiering i aktion

Før du tager en sikkerhedskopi af MongoDB, skal du sikre dig, at pbm-agenten kører på hver node, og at sikkerhedskopieringskonfigurationen er indstillet som vist nedenfor. Indstil stien til sikkerhedskopien:

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

Og testkør sikkerhedskopien på en af ​​de sekundære noder:

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

Det er alt for nu. ClusterControl 1.8.1 kommer snart og giver dig mulighed for at planlægge og administrere dine MongoDB-klynger ved hjælp af Percona Backup for MongoDB.


  1. MongoDB Analytics-serien:SlamData – Kør SQL og byg rapporter direkte på MongoDB

  2. Node mongoose find forespørgsel i loop virker ikke

  3. Multipel brug af positionsoperatoren `$` til at opdatere indlejrede arrays

  4. Mongodb - aggregering $push hvis betinget