De bekende en populaire back-upmethode voor MongoDB is mongodump. Het is een logische back-upmethode, vergelijkbaar met mysqldump in MySQL of pg_dump in de PostgreSQL-database. Er is nog een back-uptool genaamd Percona Backup voor MongoDB. Het biedt ondersteuning voor replicasets en shardclusters, evenals meer geavanceerde functies zoals herstel op een bepaald tijdstip.
Het is belangrijk op te merken dat het een consistente back-up uitvoert voor uw mongodb shard-cluster en ook S3-compatibele objectopslag ondersteunt om de back-ups op te slaan. In deze blog bespreken we architectuur, installatie en gebruik van Percona Backup for MongoDB.
Architectuur
Percona Backup voor MongoDB bestaat uit twee componenten, de eerste is een proceshulpprogramma dat op elk MongoDB-knooppunt moet worden geïnstalleerd, pbm-agent genaamd. De pbm-agent coördineert tussen de databaseknooppunten en voert het back-up- en herstelproces uit. Het controleert ook of het knooppunt het juiste knooppunt is om de back-up te maken. De pbm-agent vereist een specifieke gebruiker met enkele rolrechten; bijvoorbeeld:readWrite, back-up, clusterMonitor en restore. Het moet ook een nieuwe rol maken voor pbm met actietype anyAction en resourcetype anyResource. De gebruiker moet aanwezig zijn op elk knoop punt in de replicaset en ook in de configuratieserver als u Sharded-clusterarchitectuur gebruikt. Percona Backup voor MongoDB gebruikt een MongoDB URI-verbindingsreeksmethode om verbinding te maken met de database. Daarom is voor de eerste keer referentietoegang vereist.
Het andere onderdeel is de opdrachtregelinterface genaamd pbm. pbm-hulpprogramma activeert de back-upgerelateerde acties, bijvoorbeeld back-up uitvoeren, herstellen, back-up weergeven, verwijderen, enzovoort. Voordat u met pbm gaat werken, moet u back-upopties, herstelopties en herstelopties op een bepaald tijdstip configureren.
Het configuratiebestand zelf wordt opgeslagen in een YAML-bestand, en het pbm config-commando wordt gebruikt om het configuratiebestand te laden. Enkele opdrachten voor het pbm-hulpprogramma worden hieronder weergegeven:
- pbm config, de opdracht die wordt gebruikt om de back-upoptie te configureren voordat deze wordt uitgevoerd.
- pbm-back-up, gebruikt om een back-up van MongoDB te maken. Het ondersteunt enkele compressiemethoden zoals gzip, pgzip, lz4, snappy.
- pbm restore, de opdracht die wordt gebruikt voor het terugzetten van een back-up naar een node.
- PBM-lijst, lijst met de huidige back-upbestanden.
- pbm cancel-backup, gebruikt om het actieve back-upproces te annuleren.
- pbm delete-backup, gebruikt om back-upbestanden te verwijderen. Er zijn twee opties; u kunt de bestandsnaam van de back-up specificeren om back-upbestanden die ouder zijn dan een bepaalde leeftijd te verwijderen of te verwijderen.
Installatie van Percona Backup voor MongoDB
Er zijn twee manieren waarop u Percona Backup for MongoDB kunt installeren:u kunt de pakketbeheerder van het besturingssysteem gebruiken en de officiële Percona-repository gebruiken voor het installeren van de software, of u kunt bouwen vanuit de broncode.
/P>
Als vereisten voordat u de pbm via de yum/apt-installatie installeert, moet u de Percona-repository configureren en daarna pbm-repository inschakelen:
[[email protected] ~]# percona-release enable pbm release
* Enabling the Percona Backup MongoDB repository
<*> All done!
Installeer vervolgens Percona Backup voor MongoDB. In dit geval gebruik ik het op CentOS gebaseerde besturingssysteem, dus we zullen de installatie uitvoeren:
[[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!
Nadat het is voltooid, kunt u de pbm-agent configureren als een achtergrondproces en spelen met de pbm-opdrachtregelinterface:
[[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
Back-up in actie
Voordat u een back-up van MongoDB maakt, moet u ervoor zorgen dat de pbm-agent op elk knooppunt draait en dat de back-upconfiguratie is ingesteld zoals hieronder wordt weergegeven, het pad van de back-up instellen:
[[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
En test de back-up op een van de secundaire knooppunten:
[[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
Dat is het voor nu. Binnenkort kunt u met ClusterControl 1.8.1 uw MongoDB-clusters plannen en beheren met Percona Backup for MongoDB.