Percona Backup MongoDB For Lazy Sysadmin
Percona Backup MongoDB ini sangat memudahkan kita agar bisa langsung menyimpan hasil backup ke DigitalOcean Spaces/Amazon S3, (ga usah repot bikin script manual backup, di kompresi ke .tar.gz lalu di upload ke S3).
Percona juga menyediakan versi docker dari Percona Backup MongoDB biar tidak usah repot dalam urusan instalasi.
How To Configure It
Berikut cara konfigurasinya:
- Buat docker-compose.yml
version: "3.3"
services:
pbm:
image: percona/percona-backup-mongodb:latest
container_name: pbm-ctr
environment:
PBM_MONGODB_URI: mongodb://UsernameMongo:PasswordMongo@192.168.1.2:27017/?authSource=admin
volumes:
- ./pbm_config.yaml:/tmp/pbm_config.yaml
network_mode: host
- Buat file config agar Percona Backup MongoDB bisa membaca lokasi Spaces. Beri nama pbm_config.yaml:
storage:
type: s3
s3:
# endpoint is a must if you use other than amazon s3
endpointUrl: "sgp1.digitaloceanspaces.com"
region: sgp1.digitaloceanspaces.com
bucket: namabucket
# this prefix mean folder location, not name prefix
prefix: production/
credentials:
access-key-id: accesskeydigitalocean
secret-access-key: secretaccesskeydigitalocean
-
Jalankan
docker-compose up -d
. Setelah jalan, apply config dengan caradocker exec -it pbm-ctr pbm config --file /tmp/pbm_config.yaml
Output Setelah Apply Config
-
Jalankan
docker exec -it pbm-ctr pbm backup --compression=gzip
Backup ke Spaces Sukses!
-
Untuk retention nya, kita bisa setup melalui
s3cmd
. Bagi yang belum tahu cara configs3cmd
, silahkan kunjungi setup s3cmd . Selanjutnya buat file xml beri nama rule-retention-policy.xml
<?xml version="1.0" ?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>3 days retention</ID>
<Filter/>
<Status>Enabled</Status>
<Expiration>
<ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays>3</NoncurrentDays>
</NoncurrentVersionExpiration>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
Jalankan perintah untuk set retention/lifecycle 3 Hari Hapus Otomatiss3cmd setlifecycle rule-mongodb-retention.xml s3://backup-mongodb