sql >> Database teknologi >  >> RDS >> Database

Backup Management Tips til TimescaleDB

Information er et af de mest værdifulde aktiver i en virksomhed, og det siger sig selv, at man bør have en Disaster Recovery Plan (DRP) for at forhindre tab af data i tilfælde af en ulykke eller hardwarefejl. En backup er den enkleste form for DR. Det er måske ikke altid nok til at garantere et acceptabelt Recovery Point Objective (RPO), men det er en god første tilgang.

Uanset om det er en 24x7 højt belastet server eller et miljø med lavt transaktionsvolumen, bliver du nødt til at lave sikkerhedskopier til en problemfri procedure uden at forstyrre serverens ydeevne i et produktionsmiljø.

Hvis vi taler om TimescaleDB, er der forskellige typer backup til denne nye motor til tidsseriedata. Den type backup, vi skal bruge, afhænger af mange faktorer, såsom miljø, infrastruktur, belastning osv.

I denne blog vil vi se disse forskellige typer sikkerhedskopier, der er tilgængelige, og hvordan ClusterControl kan hjælpe os med at centralisere vores sikkerhedskopieringsstyring til TimescaleDB.

Sikkerhedskopieringstyper

Der findes forskellige typer sikkerhedskopier til databaser. Lad os se på hver af dem i detaljer.

  • Logisk:Sikkerhedskopien er gemt i et menneskeligt læsbart format som SQL.
  • Fysisk:Sikkerhedskopien indeholder binære data.
  • Fuld/Inkrementel/Differentiel:Definitionen af ​​disse tre typer sikkerhedskopier er implicit i navnet. Den fulde backup er en fuld kopi af alle dine data. Inkrementel sikkerhedskopiering sikkerhedskopierer kun de data, der er ændret siden den forrige sikkerhedskopiering, og den differentielle sikkerhedskopiering indeholder kun de data, der er ændret siden den sidste fulde sikkerhedskopiering. De inkrementelle og differentielle sikkerhedskopier blev introduceret som en måde at reducere mængden af ​​tid og diskpladsforbrug, som det tager at udføre en fuld sikkerhedskopiering.
  • Point In Time Recovery-kompatibel:PITR Indebærer gendannelse af databasen på ethvert givet tidspunkt i fortiden. For at kunne gøre dette, bliver vi nødt til at gendanne en fuld sikkerhedskopi og derefter anvende alle de ændringer, der skete efter sikkerhedskopieringen, indtil lige før fejlen.

ClusterControl Backup Management-funktion

Lad os se, hvordan ClusterControl kan hjælpe os med at administrere forskellige typer sikkerhedskopier.

Oprettelse af en sikkerhedskopi

For denne opgave skal du gå til ClusterControl -> Vælg TimescaleDB Cluster -> Backup -> Create Backup .

Vi kan oprette en ny backup eller konfigurere en planlagt en. For vores eksempel vil vi oprette en enkelt sikkerhedskopi med det samme.

Her har vi én metode til hver type sikkerhedskopiering, som vi nævnte tidligere.

Sikkerhedskopieringstype Værktøj Definition
Logisk pg_dumpall Det er et værktøj til at udskrive alle TimescaleDB-databaser i en klynge til en scriptfil. Script-filen indeholder SQL-kommandoer, der kan bruges til at gendanne databaserne.
Fysisk pg_basebackup Den bruges til at lave en binær kopi af databaseklyngefilerne, mens man sørger for, at systemet automatisk sættes ind og ud af backuptilstand. Der tages altid sikkerhedskopier af hele databaseklyngen i en kørende TimescaleDB-databaseklynge. Disse tages uden at påvirke andre klienter til databasen.
Fuld/Incr/Diff pgryglæn Det er en enkel, pålidelig backup- og gendannelsesløsning, der problemfrit kan skalere op til de største databaser og arbejdsbelastninger ved at bruge algoritmer, der er optimeret til databasespecifikke krav. En af de vigtigste funktioner er understøttelsen af ​​fulde, trinvise og differentielle sikkerhedskopier.
PITR pg_basebackup+WALs For at oprette en PITR-kompatibel sikkerhedskopi vil ClusterControl bruge pg_basebackup og WAL-filerne for at kunne gendanne databasen på ethvert givet tidspunkt i fortiden.

Vi skal vælge én metode, den server, som sikkerhedskopien skal tages fra, og hvor vi vil gemme sikkerhedskopien. Vi kan også uploade vores backup til skyen (AWS, Google eller Azure) ved at aktivere den tilsvarende knap.

Husk, at hvis du vil oprette en sikkerhedskopi, der er kompatibel med PITR, skal vi bruge pg_basebackup i dette trin, og vi skal tage backup fra masterknudepunktet.

Derefter specificerer vi brugen af ​​komprimering, kryptering og opbevaring af vores backup.

På sikkerhedskopieringssektionen kan vi se sikkerhedskopieringens fremskridt og information som metode, størrelse, placering og mere.

Aktivering af punkt i tid gendannelse

Hvis vi vil bruge PITR-funktionen, skal vi have WAL-arkivering aktiveret. Til dette kan vi gå til ClusterControl -> Vælg TimescaleDB Cluster -> Nodehandlinger -> Aktiver WAL-arkivering , eller bare gå til ClusterControl -> Vælg TimescaleDB Cluster -> Backup -> Indstillinger og aktiver indstillingen "Enable Point-In-Time Recovery (WAL Archiving) ” som vi vil se på det følgende billede.

Vi skal huske på, at for at aktivere WAL-arkivering skal vi genstarte vores database. ClusterControl kan også gøre dette for os.

Ud over de muligheder, der er fælles for alle sikkerhedskopier, såsom "Backup Directory " og "Backup-opbevaringsperiode ”, her kan vi også angive WAL-opbevaringsperioden. Som standard er 0, hvilket betyder for evigt.

For at bekræfte, at vi har aktiveret WAL-arkivering, kan vi vælge vores masterknude i ClusterControl -> Vælg TimescaleDB Cluster -> Noder , og vi skulle se meddelelsen WAL Archiving Enabled, som vi kan se på det følgende billede.

Gendannelse af en sikkerhedskopi

Når sikkerhedskopieringen er færdig, kan vi gendanne den ved at bruge ClusterControl. Til dette, i vores sikkerhedskopieringssektion (ClusterControl -> Vælg TimescaleDB Cluster -> Backup ), kan vi vælge "Gendan sikkerhedskopi" eller direkte "Gendan" på den sikkerhedskopi, som vi vil gendanne.

Vi har tre muligheder for at gendanne sikkerhedskopien. Vi kan gendanne sikkerhedskopien i en eksisterende databaseknude, gendanne og verificere sikkerhedskopien på en selvstændig vært eller oprette en ny klynge fra sikkerhedskopien.

Hvis vi forsøger at gendanne en PITR-kompatibel sikkerhedskopi, skal vi også angive tidspunktet.

Dataene vil blive gendannet, som de var på det angivne tidspunkt. Tag højde for, at UTC-tidszonen bruges, og at vores TimescaleDB-tjeneste i masteren genstartes.

Vi kan overvåge forløbet af vores gendannelse fra aktivitetssektionen i vores ClusterControl.

Automatisk sikkerhedskopiering

En sikkerhedskopi er ikke en sikkerhedskopi, hvis den ikke kan gendannes. Bekræftelse af sikkerhedskopier er noget, der normalt forsømmes af mange. Lad os se, hvordan ClusterControl kan automatisere verificeringen af ​​TimescaleDB-sikkerhedskopier og hjælpe med at undgå overraskelser.

I ClusterControl skal du vælge din klynge og gå til "Backup ", og vælg derefter "Opret sikkerhedskopi ”.

Funktionen til automatisk bekræftelse af sikkerhedskopiering er tilgængelig for de planlagte sikkerhedskopier. Så lad os vælge "Schedule Backup " mulighed.

Når vi planlægger en sikkerhedskopiering, skal vi ud over at vælge de almindelige muligheder som metode eller lagring også specificere tidsplan/hyppighed.

I næste trin kan vi komprimere og kryptere vores backup og angive opbevaringsperioden. Her har vi også "Bekræft sikkerhedskopiering ”-funktion.

For at bruge denne funktion har vi brug for en dedikeret vært (eller VM), der ikke er en del af klyngen.

ClusterControl installerer softwaren, og den gendanner sikkerhedskopien i denne vært. Efter gendannelse kan vi se bekræftelsesikonet i afsnittet ClusterControl Backup.

Konklusion

I dag er sikkerhedskopiering obligatorisk i ethvert miljø. De hjælper dig med at beskytte dine data. Inkrementelle sikkerhedskopier kan hjælpe med at reducere mængden af ​​tid og lagerplads, der bruges til sikkerhedskopieringsprocessen. Transaktionslogfiler er vigtige for Point-in-Time-Recovery. ClusterControl kan hjælpe med at automatisere backup-processen for dine TimescaleDB-databaser og, i tilfælde af fejl, genskabe den med et par klik. Du kan også minimere RPO ved at bruge den PITR-kompatible sikkerhedskopiering og forbedre din Disaster Recovery Plan.


  1. Hvad gør anførselstegn omkring tabelnavnet helt præcist?

  2. Er det muligt at slette fra flere tabeller i samme SQL-sætning?

  3. ZDLRA – RMAN-20035 ugyldig høj RECID

  4. To-do liste applikation ved hjælp af PHP og MySQL database