Katastrofegendannelse fuldføres ikke uden et ordentligt backupsystem. Når der sker noget slemt, kan dataene gendannes ved at bruge sikkerhedskopien, helst med den nyeste. Vi ønsker måske at undgå at gendanne de data, der ikke er opdateret. Sandsynligvis kan der være nogle oplysninger, der mangler med den gamle backup. Det er grunden til, at det er afgørende for de fleste systemer at have en god sikkerhedskopieringspraksis i dag.
MongoDB er blevet mere populær år efter år. Der er mange virksomheder begyndt at bruge MongoDB som en af deres databaser. En af funktionerne og sandsynligvis grunden til, at MongoDB er populær, er på grund af dens hastighed, og MongoDB er let at skalere. MongoDB er en af de understøttede databaser i ClusterControl. Du kan implementere, importere, skalere og endda udføre sikkerhedskopieringen med ClusterControl. I dette blogindlæg vil vi gennemgå den avancerede sikkerhedskopieringsfunktion for MongoDB replikasættet og sharded cluster.
MongoDB-sikkerhedskopityper
MongoDB understøtter både logisk og fysisk backup. Ud over det understøtter MongoDB også Point In Time Recovery (PITR). Lad os se, hvad der er forskellen mellem alle 3 typer sikkerhedskopiering.
Logisk backup | mongodump | Dette værktøj vil oprette en binær eksport af indholdet af en database. Ikke nok med det, mongodump kunne eksportere data fra enten mongod- eller mongos-instanser, kan eksportere data fra selvstændige, replika-sæt og sharded cluster-implementeringer |
Fysisk backup | NA | Fysisk backup i MongoDB kunne kun udføres på systemniveau. På nuværende tidspunkt er der ingen fysisk backup tilgængelig i ClusterControl. Måden fysisk sikkerhedskopiering fungerer på, er ved at oprette et øjebliksbillede på LVM eller lagerenhed. |
PITR | Percona Backup til MongoDB | Percona Backup til MongoDB er arvet fra og erstatter mongodb_consistent_backup, som allerede er forældet. Det er en distribueret, lav-effekt løsning til at opnå ensartede sikkerhedskopier for både MongoDB sharded clusters og replika sæt. Denne type backup er logisk, men kan samtidig fungere som en PITR backup. |
Nu hvor vi ved, hvad der er forskellen mellem backup-typen.
MongoDB Backup Management
ClusterControl giver dig mulighed for at oprette sikkerhedskopien i realtid samt planlægge den til din ønskede tidsplan. En ting der er værd at nævne, hvis du gerne vil planlægge, vil ClusterControl bruge UTC-tidszone. Så du skal vælge det rigtige tidspunkt, der passer til din tidszone, så tidsplanen kører på den mindre travle tid.
Lad os gå videre og prøve at bruge backupfunktionen i ClusterControl. Ud over det vil vi også gennemgå en af de avancerede funktioner, som er at uploade sikkerhedskopien til skyen. Fra og med ClusterControl 1.9.0 understøtter MongoDB cloud-upload, der giver dig mulighed for at uploade sikkerhedskopien til din foretrukne cloud-lagringsudbyder.
MongoDB Logical Backup
Lad os starte med logisk backup. Før funktionen uploader sikkerhedskopien til skyen kan bruges, skal du integrere den med din foretrukne cloud-udbyder. I vores tilfælde vil vi integrere det med AWS cloud. For at udføre den komplette AWS-integration kan du følge følgende trin:
-
Brug din AWS-kontos e-mailadresse og adgangskode til at logge ind på AWS Management Console som AWS-kontos rodbruger .
-
Vælg dit kontonavn på navigationslinjen på IAM Dashboard-siden, og vælg derefter Mine sikkerhedsoplysninger.
-
Hvis du ser en advarsel om adgang til sikkerhedsoplysningerne for din AWS-konto, skal du vælge Fortsæt til sikkerhedsoplysningerne.
-
Udvid sektionen Adgangsnøgler (adgangsnøgle-id og hemmelig adgangsnøgle).
-
Vælg Opret ny adgangsnøgle. Vælg derefter Download nøglefil for at gemme adgangsnøgle-id'et og den hemmelige adgangsnøgle til en fil på din computer. Når du har lukket dialogboksen, kan du ikke hente denne hemmelige adgangsnøgle igen.
Forudsat at du allerede har MongoDB-klyngen klar, starter vi vores backup-proces. Gå først til MongoDB cluster -> Backup -> Create Backup
På næste side kan du angive enten, om du vil aktivere krypteringen eller ikke. Til kryptering vil ClusterControl bruge OpenSSL til at kryptere sikkerhedskopien ved hjælp af AES-256 CBC-algoritmen. Kryptering sker på backup-noden. Hvis du vælger at gemme sikkerhedskopien på controller-noden, streames backupfilerne over i krypteret format gennem socat eller netcat. Kryptering betragtes som en af de avancerede sikkerhedskopieringsfunktioner, der kunne bruges, så i vores tilfælde vil vi aktivere denne mulighed. Du kan også definere opbevaringsperioden for din backup på denne side. I vores tilfælde vil vi bruge standardindstillingen på 31 dage.
På den tredje side skal du angive login for cloud-udbyderen , vælg/opret bøtten. Du kan også angive opbevaringen for din cloud backup, standardindstillingen er 180 dage.
Når du klikker på knappen Opret sikkerhedskopi, startes jobbet med det samme og vil tage et stykke tid afhængigt af din databasestørrelse. Samtidig vil sikkerhedskopien blive uploadet til skylageret (AWS). Du vil muligvis bemærke, at "nøgle" og "sky"-ikonerne er fremhævet efter sikkerhedskopieringen er fuldført som følgende:
Nu hvor du har sikkerhedskopien klar, er trinnet for at gendanne sikkerhedskopien meget simpelt. Alt du skal gøre er at klikke på linket "Gendan" og klikke på knappen "Udfør" på gendannelsessiden som følgende:
MongoDB PITR Backup
Som tidligere nævnt er Percona Backup til MongoDB en PITR backup type. Før du kan bruge denne backup-type, skal du installere agenten (pbm-agent) på alle MongoDB-noder/forekomster. Før det skal du også montere en delt mappe på alle noder. Lad os komme i gang!
Først skal du konfigurere NFS-serveren. For at installere en NFS-server skal du vælge eller implementere en hvilken som helst virtuel maskine, i vores tilfælde installerer vi NFS-serveren i ClusterControl-noden (Centos):
[[email protected] ~]# dnf installer nfs-utils
Når NFS-værktøjet er installeret, kan du starte tjenesten og aktivere den ved systemstart:
[[email protected] ~]# # systemctl start nfs-server.service
[[email protected] ~]# # systemctl aktiver nfs-server.service
[[email protected] ~]# # systemctl status nfs-server.service
Det næste trin er at konfigurere /etc/exports-filen, så mappen er tilgængelig for NFS-klienterne:
[[email protected] ~]# vi /etc/exports
/mnt/backups 10.10.80.10(rw,sync,no_root_squash,no_subtree_check)
I klientknudepunktet, som er vores databasenoder, skal vi også installere de nødvendige NFS-pakker:
[[email protected] ~]# dnf installer nfs-utils nfs4-acl-tools
Når pakkerne er installeret, kan vi oprette mappen og montere den:
[[email protected] ~]# mkdir -p /mnt/backups
[[email protected] ~]# mount -t nfs 10.10.80.10:/mnt/backups /mnt/backups
Sørg for at montere på alle databasenoder, for at vi kan installere pbm-agenten. I betragtning af at alle noder allerede har den NFS-monterede mappe, vil vi fortsætte med at installere agenten nu. Gå til MongoDB cluster -> Backup -> Settings -> Percona Backup
Når du klikker på knappen Installer Percona Backup, vises følgende skærmbillede . Her skal du angive den delte mappe. Igen, sørg venligst for, at biblioteket er blevet monteret i alle dine MongoDB-noder. Når Backup Directory er blevet specificeret, kan du klikke på knappen Installer og vente på, at installationen er fuldført.
Den vellykkede installation skulle være som det følgende skærmbillede. Nu kunne vi fortsætte med backup-processen:
For at oprette sikkerhedskopien ved hjælp af Percona Backup er trinene enkle. Desværre kunne du ikke bruge muligheden for at kryptere sikkerhedskopien ved hjælp af denne metode. For at bruge funktionen til at uploade til skyen, skal du aktivere indstillingen, før du vælger backup-type, ellers bliver din backup ikke uploadet. Du vil bemærke, at upload-funktionen forsvinder, når du vælger "percona-backup-mongodb".
På den anden side kan du angive den lokale opbevaring:
Med hensyn til den sidste side kan du angive clouddetaljerne og opbevaring som f.eks. i det foregående eksempel. Gendannelsesprocessen er den samme som i det foregående eksempel, alt du skal gøre er at klikke på linket "Gendan" og følge trinene på gendannelsessiden:
Konklusion
Med ClusterControl kan du oprette og uploade din MongoDB-sikkerhedskopi til skyen. Upload til skyen er en af de nye og avancerede funktioner til MongoDB, der er blevet introduceret startende med ClusterControl 1.9.0, forudsat at integrationen til cloud-udbyderen er blevet gennemført med succes. Du kan også kryptere din sikkerhedskopi ved hjælp af ClusterControl, hvis du vil beskytte din sikkerhedskopi.