Metode pencadangan yang terkenal dan populer untuk MongoDB adalah mongodump. Ini adalah metode pencadangan logis, mirip dengan mysqldump di MySQL atau pg_dump di database PostgreSQL. Ada alat cadangan lain yang disebut Percona Backup for MongoDB. Ini memiliki dukungan untuk set replika dan kluster pecahan, serta fitur yang lebih canggih seperti pemulihan titik waktu.
Penting untuk dicatat bahwa ia melakukan pencadangan yang konsisten untuk klaster pecahan mongodb Anda, dan juga mendukung penyimpanan objek yang kompatibel dengan S3 untuk menyimpan cadangan. Di blog ini, kita akan membahas arsitektur, instalasi, dan penggunaan Percona Backup untuk MongoDB.
Arsitektur
Percona Backup for MongoDB terdiri dari dua komponen, yang pertama adalah utilitas proses yang perlu diinstal pada setiap node MongoDB, yang disebut pbm-agent. Pbm-agent bertindak untuk mengkoordinasikan antara node database, menjalankan proses backup dan restore. Itu juga memeriksa apakah node adalah node yang benar untuk mengambil cadangan. Pbm-agent membutuhkan pengguna tertentu dengan beberapa hak peran; misalnya:readWrite, backup, clusterMonitor, dan restore. Itu juga perlu membuat peran baru untuk pbm dengan jenis tindakan anyAction dan jenis sumber daya anyResource. Pengguna harus ada di setiap node di kumpulan replika dan juga di server konfigurasi jika Anda menggunakan arsitektur sharded cluster. Pencadangan Percona untuk MongoDB menggunakan metode string koneksi URI MongoDB untuk terhubung ke database, oleh karena itu pertama kali memerlukan akses kredensial.
Komponen lainnya adalah antarmuka baris perintah yang disebut pbm. utilitas pbm memicu tindakan terkait pencadangan, misalnya, menjalankan pencadangan, pemulihan, pencadangan daftar, penghapusan, dan sebagainya. Sebelum Anda bekerja dengan pbm, Anda perlu mengonfigurasi opsi pencadangan, opsi pemulihan, dan opsi pemulihan titik waktu.
File konfigurasi itu sendiri disimpan dalam file YAML, dan perintah pbm config digunakan untuk memuat file konfigurasi. Beberapa perintah untuk utilitas pbm ditunjukkan di bawah ini:
- pbm config, perintah yang digunakan untuk mengonfigurasi opsi pencadangan sebelum dijalankan.
- pbm backup, digunakan untuk mengambil backup MongoDB. Ini mendukung beberapa metode kompresi seperti gzip, pgzip, lz4, tajam.
- pbm restore, perintah yang digunakan untuk memulihkan cadangan ke node.
- daftar pbm, daftar file cadangan saat ini.
- pbm cancel-backup, digunakan untuk membatalkan proses backup yang sedang berjalan.
- pbm delete-backup, digunakan untuk menghapus file backup. Ada dua pilihan; Anda dapat menentukan nama file cadangan untuk menghapus atau menghapus file cadangan yang lebih tua dari usia tertentu.
Instalasi Percona Backup untuk MongoDB
Ada dua cara Anda dapat menginstal Percona Backup untuk MongoDB, Anda dapat menggunakan manajer paket dari sistem operasi dan menggunakan Repositori Percona resmi untuk menginstal perangkat lunak, atau Anda dapat membangun dari kode sumber.
Sebagai prasyarat sebelum menginstal pbm melalui yum/apt install, Anda perlu mengkonfigurasi Repositori Percona, dan kemudian setelah itu, aktifkan repositori pbm:
[[email protected] ~]# percona-release enable pbm release
* Enabling the Percona Backup MongoDB repository
<*> All done!
Kemudian, instal Percona Backup untuk MongoDB. Dalam hal ini, saya menggunakan sistem operasi berbasis CentOS jadi kami akan melakukan 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!
Setelah selesai, Anda dapat mengkonfigurasi pbm-agent sebagai proses latar belakang dan bermain-main dengan antarmuka baris perintah 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
Beraksi Pencadangan
Sebelum mengambil cadangan MongoDB, pastikan pbm-agent berjalan di setiap node dan konfigurasi cadangan telah diatur seperti gambar di bawah ini, atur jalur pencadangan:
[[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
Dan uji jalankan pencadangan di salah satu node sekunder:
[[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
Itu saja untuk saat ini. Segera hadir, ClusterControl 1.8.1 akan memungkinkan Anda untuk menjadwalkan dan mengelola cluster MongoDB Anda menggunakan Percona Backup for MongoDB.