sql >> Database >  >> RDS >> Database

Tips voor back-upbeheer voor TimescaleDB

Informatie is een van de meest waardevolle activa in een bedrijf en het spreekt voor zich dat men een Disaster Recovery Plan (DRP) moet hebben om gegevensverlies bij een ongeval of hardwarestoring te voorkomen. Een back-up is de eenvoudigste vorm van DR. Het is misschien niet altijd voldoende om een ​​acceptabele Recovery Point Objective (RPO) te garanderen, maar het is een goede eerste benadering.

Of het nu een 24x7 zwaarbelaste server is of een omgeving met een laag transactievolume, u zult een naadloze procedure moeten maken om back-ups te maken zonder de prestaties van de server in een productieomgeving te verstoren.

Als we het hebben over TimescaleDB, zijn er verschillende soorten back-up voor deze nieuwe engine voor tijdreeksgegevens. Het type back-up dat we moeten gebruiken, hangt af van veel factoren, zoals de omgeving, infrastructuur, belasting, enz.

In deze blog zullen we zien welke verschillende soorten back-ups beschikbaar zijn en hoe ClusterControl ons kan helpen ons back-upbeheer voor TimescaleDB te centraliseren.

Back-uptypes

Er zijn verschillende soorten back-ups voor databases. Laten we ze allemaal in detail bekijken.

  • Logisch:de back-up wordt opgeslagen in een voor mensen leesbare indeling zoals SQL.
  • Fysiek:de back-up bevat binaire gegevens.
  • Volledig/Incrementeel/Differentieel:De definitie van deze drie soorten back-ups zit impliciet in de naam. De volledige back-up is een volledige kopie van al uw gegevens. Incrementele back-up maakt alleen een back-up van de gegevens die zijn gewijzigd sinds de vorige back-up en de differentiële back-up bevat alleen de gegevens die zijn gewijzigd sinds de laatste volledige back-up is uitgevoerd. De incrementele en differentiële back-ups zijn geïntroduceerd als een manier om de hoeveelheid tijd en schijfruimte die nodig is om een ​​volledige back-up uit te voeren te verminderen.
  • Compatibel met Point In Time Recovery:PITR omvat het herstellen van de database op elk willekeurig moment in het verleden. Om dit te kunnen doen, moeten we een volledige back-up terugzetten en vervolgens alle wijzigingen toepassen die na de back-up zijn aangebracht tot vlak voor de fout.

ClusterControl-functie voor back-upbeheer

Laten we eens kijken hoe ClusterControl ons kan helpen bij het beheren van verschillende soorten back-ups.

Een back-up maken

Ga voor deze taak naar ClusterControl -> Selecteer TimescaleDB Cluster -> Back-up -> Back-up maken .

We kunnen een nieuwe back-up maken of een geplande back-up configureren. Voor ons voorbeeld zullen we direct een enkele back-up maken.

Hier hebben we één methode voor elk type back-up dat we eerder noemden.

Back-uptype Hulpprogramma Definitie
Logisch pg_dumpall Het is een hulpprogramma voor het wegschrijven van alle TimescaleDB-databases van een cluster in één scriptbestand. Het scriptbestand bevat SQL-commando's die kunnen worden gebruikt om de databases te herstellen.
Fysiek pg_basebackup Het wordt gebruikt om een ​​binaire kopie te maken van de databaseclusterbestanden, terwijl ervoor wordt gezorgd dat het systeem automatisch in en uit de back-upmodus wordt gezet. Er worden altijd back-ups gemaakt van het gehele databasecluster van een draaiend TimescaleDB-databasecluster. Deze worden genomen zonder dat dit gevolgen heeft voor andere klanten naar de database.
Volledig/Verhogen/Verschil pgrugleuning Het is een eenvoudige, betrouwbare back-up- en hersteloplossing die naadloos kan worden opgeschaald naar de grootste databases en workloads door gebruik te maken van algoritmen die zijn geoptimaliseerd voor databasespecifieke vereisten. Een van de belangrijkste functies is de ondersteuning voor volledige, incrementele en differentiële back-ups.
PITR pg_basebackup+WAL's Om een ​​PITR-compatibele back-up te maken, gebruikt ClusterControl pg_basebackup en de WAL-bestanden om de database op elk willekeurig moment in het verleden te kunnen herstellen.

We moeten één methode kiezen, de server waarvan de back-up wordt genomen en waar we de back-up willen opslaan. We kunnen onze back-up ook uploaden naar de cloud (AWS, Google of Azure) door de bijbehorende knop in te schakelen.

Houd er rekening mee dat als u een back-up wilt maken die compatibel is met PITR, we in deze stap pg_basebackup moeten gebruiken en dat we de back-up van het hoofdknooppunt moeten nemen.

Vervolgens specificeren we het gebruik van compressie, encryptie en het bewaren van onze back-up.

In het back-upgedeelte kunnen we de voortgang van de back-up zien en informatie zoals de methode, grootte, locatie en meer.

Tijdsherstel inschakelen

Als we de PITR-functie willen gebruiken, moeten we de WAL-archivering hebben ingeschakeld. Hiervoor kunnen we naar ClusterControl -> Selecteer TimescaleDB Cluster -> Knooppuntacties -> WAL-archivering inschakelen , of ga gewoon naar ClusterControl -> Selecteer TimescaleDB Cluster -> Back-up -> Instellingen en activeer de optie “Enable Point-In-Time Recovery (WAL Archiving) ” zoals we zullen zien in de volgende afbeelding.

We moeten er rekening mee houden dat we onze database opnieuw moeten opstarten om WAL-archivering mogelijk te maken. ClusterControl kan dit ook voor ons doen.

Naast de opties die voor alle back-ups gelden, zoals de “Backup Directory ” en de “Bewaarperiode voor reservekopieën ”, kunnen we hier ook de WAL Bewaartermijn specificeren. Standaard is 0, wat voor altijd betekent.

Om te bevestigen dat WAL-archivering is ingeschakeld, kunnen we ons hoofdknooppunt selecteren in ClusterControl -> Select TimescaleDB Cluster -> Nodes , en we zouden het bericht WAL Archiving Enabled moeten zien, zoals we kunnen zien in de volgende afbeelding.

Een back-up herstellen

Zodra de back-up is voltooid, kunnen we deze herstellen met behulp van ClusterControl. Hiervoor, in onze back-up sectie (ClusterControl -> Selecteer TimescaleDB Cluster -> Back-up ), kunnen we "Back-up herstellen" selecteren of direct "Herstellen" op de back-up die we willen herstellen.

We hebben drie opties om de back-up te herstellen. We kunnen de back-up herstellen in een bestaand databaseknooppunt, de back-up herstellen en verifiëren op een zelfstandige host of een nieuw cluster maken van de back-up.

Als we een PITR-compatibele back-up proberen te herstellen, moeten we ook de tijd specificeren.

De gegevens worden hersteld zoals ze waren op het opgegeven tijdstip. Houd er rekening mee dat de UTC-tijdzone wordt gebruikt en dat onze TimescaleDB-service in de master opnieuw wordt gestart.

We kunnen de voortgang van ons herstel volgen vanuit het gedeelte Activiteit in onze ClusterControl.

Automatische back-upverificatie

Een back-up is geen back-up als deze niet herstelbaar is. Het verifiëren van back-ups is iets dat meestal door velen wordt verwaarloosd. Laten we eens kijken hoe ClusterControl de verificatie van TimescaleDB-back-ups kan automatiseren en verrassingen kan voorkomen.

Selecteer in ClusterControl uw cluster en ga naar de "Backup " sectie en selecteer vervolgens "Back-up maken ”.

De functie voor automatische verificatie van back-ups is beschikbaar voor de geplande back-ups. Laten we dus de optie "Back-up plannen . kiezen ” optie.

Bij het plannen van een back-up moeten we naast het selecteren van de algemene opties zoals methode of opslag ook de planning/frequentie specificeren.

In de volgende stap kunnen we onze back-up comprimeren en versleutelen en de bewaarperiode specificeren. Hier hebben we ook de "Back-up verifiëren ”-functie.

Om deze functie te gebruiken, hebben we een speciale host (of VM) nodig die geen deel uitmaakt van het cluster.

ClusterControl installeert de software en herstelt de back-up in deze host. Na het herstellen kunnen we het verificatiepictogram zien in het gedeelte ClusterControl Backup.

Conclusie

Tegenwoordig zijn back-ups verplicht in elke omgeving. Ze helpen u uw gegevens te beschermen. Incrementele back-ups kunnen helpen de hoeveelheid tijd en opslagruimte te verminderen die voor het back-upproces wordt gebruikt. Transactielogboeken zijn belangrijk voor Point-in-Time-Recovery. ClusterControl kan helpen het back-upproces voor uw TimescaleDB-databases te automatiseren en, in geval van storing, met een paar klikken te herstellen. U kunt de RPO ook minimaliseren door de PITR-compatibele back-up te gebruiken en uw Disaster Recovery Plan te verbeteren.


  1. Werken uw medewerkers op afstand? Hier leest u hoe u uw gegevens veilig kunt houden.

  2. Een MariaDB-cluster implementeren voor hoge beschikbaarheid

  3. Waarom zou je PostgreSQL leren?

  4. Hoe zorgen dat gegevens niet worden gesorteerd?