MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Преглед на Percona Backup за MongoDB

Познатият и популярен метод за архивиране за MongoDB е mongodump. Това е логически метод за архивиране, подобен на mysqldump в MySQL или pg_dump в базата данни PostgreSQL. Има друг инструмент за архивиране, наречен Percona Backup за MongoDB. Той има поддръжка за набори от реплики и клъстери от фрагменти, както и по-усъвършенствани функции като възстановяване в момент.

Важно е да се отбележи, че той извършва последователно архивиране за вашия mongodb разчленен клъстер и също така поддържа S3 съвместимо съхранение на обекти за съхраняване на резервните копия. В този блог ще обсъдим архитектурата, инсталирането и използването на Percona Backup за MongoDB.

Архитектура

Percona Backup за MongoDB се състои от два компонента, първият е процесна помощна програма, която трябва да бъде инсталирана на всеки възел на MongoDB, наречена pbm-agent. pbm-агентът действа за координиране между възлите на базата данни, като изпълнява процеса на архивиране и възстановяване. Той също така проверява дали възелът е правилният възел за вземане на резервно копие. pbm-агентът изисква конкретен потребител с някои ролеви привилегии; например:readWrite, архивиране, clusterMonitor и възстановяване. Той също така трябва да създаде нова роля за pbm с тип действие anyAction и тип ресурс anyResource. Потребителят трябва да съществува на всеки възел в набора от реплики, а също и в конфигурационния сървър, ако използвате архитектура на разчленен клъстер. Percona Backup за MongoDB използва метод за свързване на MongoDB URI за свързване с базата данни, поради което изисква достъп с идентификационни данни за първи път.

Другият компонент е интерфейсът на командния ред, наречен pbm. Помощната програма pbm задейства действията, свързани с архивирането, например, изпълняване на архивиране, възстановяване, архивиране на списък, изтриване и т.н. Преди да работите с pbm, ще трябва да конфигурирате опции за архивиране, опции за възстановяване и опции за възстановяване в даден момент.

Самият конфигурационен файл се съхранява в YAML файл, а командата pbm config се използва за зареждане на конфигурационния файл. Някои от командите за pbm помощната програма са показани по-долу:

  • pbm config, командата, използвана за конфигуриране на опцията за архивиране, преди да бъде изпълнена.
  • pbm архивиране,  се използва за вземане на резервно копие на MongoDB. Той поддържа някои методи за компресиране като gzip, pgzip, lz4, snappy.
  • pbm възстановяване, командата, използвана за възстановяване на резервно копие на възел.
  • pbm списък,  списък на текущите архивни файлове.
  • pbm cancel-backup, използва се за отмяна на текущия процес на архивиране.
  • pbm delete-backup, използва се за изтриване на архивни файлове. Има две възможности; можете да посочите името на файла за архивиране, за да изтриете или изтриете архивни файлове, които са по-стари от определена възраст.

Инсталиране на Percona Backup за MongoDB

Има два начина, по които можете да инсталирате Percona Backup за MongoDB, можете да използвате мениджъра на пакети от операционната система и да използвате официалното хранилище на Percona за инсталиране на софтуера, или можете да изградите от изходен код.

Като предварителни условия, преди да инсталирате pbm чрез инсталацията yum/apt, трябва да конфигурирате Percona Repository и след това да активирате pbm хранилището:

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

* Enabling the Percona Backup MongoDB repository

<*> All done!

След това инсталирайте Percona Backup за MongoDB. В този случай използвам базираната на CentOS операционна система, така че ще направим yum install:

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

И пробно стартирайте архивирането на един от вторичните възли:

[[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 ще ви позволи да планирате и управлявате вашите MongoDB клъстери с помощта на Percona Backup за MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да намерите името на полето в MongoDB на произволна дълбочина

  2. Mongodb задаване на уникално поле

  3. Изтрийте всички символи, различни от utf-8 от низа

  4. Поддържане на комплекти реплики на MongoDB в облака с помощта на Ansible

  5. Как да актуализирате стойности с помощта на pymongo?