Marvin Pascale

[B.Log]

29 Agosto 2021

Percona Server per MongoDB

PSMDB Uno dei punti di forza dell’opensource è di certo la possibilità di prendere un progetto che funziona e aggiungere quelle che, a nostro avviso, sono delle migliorie.

Percona LLC. ha fatto proprio questo con MongoDB Community Edition. La società statunitense non è nuova a manovre del genere ma oggi vi parlerò di “Percona Server for MongoDB”.

Ho già parlato di MongoDB che con le sue prestazioni, resilienza e alta affidabilità, è il database più discusso nel recente presente. Percona Server for MongoDB è un sostituto drop-in gratuito; il che significa che è possibile sostutuirlo a MongoDB in maniera trasparente e aggiunge interessanti funzionalità. Ma Percona Server per MongoDB non si ferma qui: con Percona Memory Engine, l’integrazione con HashiCorp Vault, la crittografia dei dati a riposo, la registrazione degli audit, l’autenticazione LDAP esterna con SASL e i backup a caldo (hot backup) offre una soluzione completa che massimizza le prestazioni e ottimizza l’efficienza del database.

Installazione

Percona rilascia i software in comodi repository e vedremo come installarlo su RHEL 8 e derivate quali Rocky Linux, Alma Linux, CentOS, ecc.

Per aggiungere i repo è sufficiente scaricare/installare il pacchetto RPM e abilitare il repo.

# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# percona-release enable psmdb-50 release

Nel nostro caso installeremo la versione basata su MongoDB 5.0 .

# yum install percona-server-mongodb

Valgono tutte le considerazioni (avvio,spegnimento, configurazione) fatte per MongoDB per cui mi soffermerò sulle altre funzionalità.

Hot Backup

Una delle funzionalità più utili è di certo hot backup che permette di eseguire un backup consistente senza interrompere il servizio. E’ possibile creare il backup in una cartella oppure archiviare il tutto in un tar. Per prima cosa creiamo una cartella che conterrà in nostri backup:

# mkdir /var/backup/mongo
# chown mongod.mongod /var/backup/mongo

ora collegiamoci alla shell mongo e lanciamo il backup

# mongo
> use admin;
switched to db admin
db.runCommand({createBackup: 1, backupDir: "/var/backup/mongo"})
{ "ok" : 1 }

Se invece volessimo creare un tar il comando è leggermente differente

...
db.runCommand({createBackup: 1, archive: /var/backup/mongo/oggi.tar })

Ultimo ma non meno importante è il backup su uno storage S3 compatibile (Min.IO, Amazon S3, Wasabi, …).

...
db.runCommand({createBackup: 1, s3: {bucket: "MongoBackup", path: "/backupOggi" } })

E’ ovviamente possibile crere un replicaset come descritto nell’articolo per MongoDB .

Da non sottovalutare se vogliamo migliorare la sicurezza, la tracciabilità, la cifratura dei dati e l’audit.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: