sql >> Databasteknik >  >> NoSQL >> MongoDB

En översikt av Percona Backup för MongoDB

Den kända och populära säkerhetskopieringsmetoden för MongoDB är mongodump. Det är en logisk säkerhetskopieringsmetod, liknande mysqldump i MySQL eller pg_dump i PostgreSQL-databasen. Det finns ett annat verktyg för säkerhetskopiering som heter Percona Backup för MongoDB. Den har stöd för replikuppsättningar och shard-kluster, såväl som mer avancerade funktioner som punktåterställning.

Det är viktigt att notera att det utför en konsekvent säkerhetskopiering för ditt mongodb sharded-kluster och stöder även S3-kompatibel objektlagring för att lagra säkerhetskopiorna. I den här bloggen kommer vi att diskutera arkitektur, installation och användning av Percona Backup för MongoDB.

Arkitektur

Percona Backup för MongoDB består av två komponenter, den första är ett processverktyg som måste installeras på varje MongoDB-nod, kallat pbm-agent. Pbm-agenten fungerar för att koordinera mellan databasnoderna och kör säkerhetskopiering och återställning. Den kontrollerar också om noden är rätt nod för att ta säkerhetskopian. Pbm-agenten kräver en specifik användare med vissa rollbehörigheter; t.ex.:readWrite, backup, clusterMonitor och restore. Den behöver också skapa en ny roll för pbm med åtgärdstyp anyAction och resurstyp anyResource. Användaren måste finnas på varje nod i replikuppsättningen och även i konfigurationsservern om du använder sharded cluster-arkitektur. Percona Backup för MongoDB använder en MongoDB URI-anslutningssträngmetod för att ansluta till databasen, vilket är anledningen till att den kräver autentiseringsåtkomst vid första gången.

Den andra komponenten är kommandoradsgränssnittet som kallas pbm. pbm-verktyget utlöser säkerhetskopieringsrelaterade åtgärder, t.ex. köra säkerhetskopiering, återställning, lista säkerhetskopiering, radering och så vidare. Innan du arbetar med pbm måste du konfigurera alternativ för säkerhetskopiering, återställningsalternativ och alternativ för punktåterställning.

Själva konfigurationsfilen lagras i en YAML-fil, och kommandot pbm config används för att ladda konfigurationsfilen. Några av kommandona för pbm-verktyget visas nedan:

  • pbm config, kommandot som används för att konfigurera säkerhetskopieringsalternativet innan det körs.
  • pbm backup,  används för att ta en säkerhetskopia av MongoDB. Den stöder vissa komprimeringsmetoder som gzip, pgzip, lz4, snappy.
  • pbm restore, kommandot som används för att återställa en säkerhetskopia till en nod.
  • pbm-lista, lista över aktuella säkerhetskopior.
  • pbm cancel-backup, används för att avbryta pågående säkerhetskopiering.
  • pbm delete-backup, används för att ta bort säkerhetskopior. Det finns två alternativ; du kan ange filnamnet för säkerhetskopian för att radera eller ta bort säkerhetskopior som är äldre än en viss ålder.

Installation av Percona Backup för MongoDB

Det finns två sätt att installera Percona Backup för MongoDB, du kan använda pakethanteraren från operativsystemet och använda det officiella Percona Repository för att installera programvaran, eller så kan du bygga från källkod.

Som förutsättningar innan du installerar pbm via yum/apt-installationen måste du konfigurera Percona-förvaret och sedan aktivera pbm-förvaret:

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

* Enabling the Percona Backup MongoDB repository

<*> All done!

Installera sedan Percona Backup för MongoDB. I det här fallet använder jag det CentOS-baserade operativsystemet så vi kommer att göra yum installation:

[[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 är klar kan du konfigurera pbm-agenten som en bakgrundsprocess och leka med pbm kommandoradsgränssnitt:

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

Säkerhetskopiering på gång

Innan du tar en säkerhetskopia av MongoDB, se till att pbm-agenten körs på varje nod och att säkerhetskopieringskonfigurationen har ställts in enligt nedan, ange sökvägen för säkerhetskopian:

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

Och testkör säkerhetskopieringen på en av de sekundära noderna:

[[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 var allt tills vidare. Kommer snart, ClusterControl 1.8.1 låter dig schemalägga och hantera dina MongoDB-kluster med Percona Backup för MongoDB.


  1. Mongodb Öka värde inuti kapslad array

  2. redis kluster kontinuerligt skriva ut logg WSA_IO_PENDING

  3. Hur infogar man ett element i MongoDB intern lista?

  4. Hur man tar bort ett fält från ett MongoDB-dokument ($unset)