Vraag Beste methode voor incrementele back-up van PostgreSQL


Ik gebruik op dit moment pg_dump doorgesluisd naar gzip doorgesluisd naar split. Maar het probleem hiermee is dat alle uitvoerbestanden altijd worden gewijzigd. Dus op checksum-gebaseerde back-up kopieert altijd alle gegevens.

Zijn er nog andere goede manieren om een ​​incrementele back-up van een PostgreSQL-database uit te voeren, waarbij een volledige database kan worden hersteld van de back-upgegevens?

Bijvoorbeeld, als pg_dump kan alles absoluut geordend maken, dus alle wijzigingen worden alleen toegepast aan het einde van de stortplaats of iets dergelijks.


52
2018-04-03 12:36


oorsprong


antwoorden:


Bijwerken:  Bekijk Barman voor een eenvoudigere manier om WAL-archivering voor back-up in te stellen.

Je kunt gebruiken PostgreSQL's continue WAL-archivering methode. Eerst moet je instellen wal_level=archive, doe dan een volledige backup op bestandssysteemniveau (tussen uitgifte pg_start_backup() en pg_stop_backup() opdrachten) en kopieer vervolgens de nieuwere WAL-bestanden door de archive_command keuze.

voordelen:

  • Incrementeel bevatten de WAL-archieven alles wat nodig is om de huidige status van de database te herstellen
  • Bijna geen overhead, het kopiëren van WAL-bestanden is goedkoop
  • U kunt de database herstellen op ieder tijdstip (deze functie wordt PITR genoemd of herstel op een later tijdstip)

nadelen:

  • Meer ingewikkeld om in te stellen dan pg_dump
  • De volledige back-up is veel groter dan een pg_dump omdat alle interne tabelstructuren en indexen zijn opgenomen
  • Werkt niet goed voor zware databases, omdat het herstel lang zal duren.

Er zijn enkele hulpmiddelen zoals pitrtools en omnipitr dat kan het instellen en herstellen van deze configuraties vereenvoudigen. Maar ik heb ze zelf niet gebruikt.


52
2018-04-03 13:40



Bekijk ook eens http://www.pgbackrest.org

pgBackrest is een andere back-uptool voor PostgreSQL, die u zou moeten evalueren omdat het ondersteunt:

  • parallelle back-up (getest om bijna lineair te schalen tot 32 kernen maar kan waarschijnlijk veel verder gaan ..)
  • gecomprimeerde-in-rust-back-ups
  • incrementele en differentiële (gecomprimeerde!) back-ups
  • streaming compressie (gegevens worden slechts eenmaal aan de bron gecomprimeerd en vervolgens over het netwerk overgedragen en opgeslagen)
  • parallel, delta restore (mogelijkheid om een ​​oudere kopie naar de laatste versie bij te werken)
  • Ondersteunt volledig tablespaces
  • Back-uprotatie en archivering verlopen
  • Mogelijkheid om back-ups te hervatten die om de een of andere reden faalden
  • Etc etc..

6
2017-11-14 15:34



Een andere methode is om een ​​backup te maken naar platte tekst en rdiff te gebruiken om incrementele diff's te maken.


1
2018-04-04 09:06