Zpět na domů

Open source zálohy PostgreSQL na Go

Open source nástroj Postgresus automatizuje zálohy PostgreSQL s pg_dump, upozorněními a monitorováním. Vyvinut po incidentu ztráty dat v production. Podporuje S3, WAL PITR, upozornění na zátěž pro senior vývojáře.

Postgresus: zálohy a monitorování PostgreSQL bez cloudu
Advertisement 728x90

# Vývoj open source nástroje pro zálohování PostgreSQL: od incidentu po production-ready řešení

Vývojář vytvořil self-hosted webovou aplikaci pro zálohování PostgreSQL, zaměřenou na middle/senior specialisty. Projekt používá pg_dump jako základ, přidává plánovač, integrace s úložišti a monitorování dostupnosti. Stack: Go (přepsán z Java), Gin, GORM, React + TypeScript, PostgreSQL, Docker Compose. Podporuje verze PostgreSQL 13–17.

Klíčové funkce:

  • Plánované zálohy (plánovač podobný cron) s ukládáním na lokální disk, S3, Google Drive.
  • Oznámení o selháních v Telegramu, emailem, Slack po N pokusech (filtr falešných spuštění).
  • Health checky s grafy dostupnosti DB.

Projekt řeší úlohy primární zálohy pro VPS projekty a sekundární pro cloud DBaaS jako plán B.

Google AdInline article slot

Skutečný incident: ztráta dat v produkci

V roce 2023 pet-projekt (~1500 $/měsíc) utrpěl lidskou chybu. V produkci přes psql proveden dotaz:

UPDATE users SET email = '[email protected]' WHERE email ILIKE '%%';

Vymazáno ~10k záznamů. Poslední záloha – měsíc zpět (konsolová utilita typu PgBackRest). Obnoveno 65 % skripty podle ID, ostatním vráceny peníze. Ztráty ~30 % zisku + downtime.

Incident odhalil mezery: absence čerstvých záloh, ignorování SAVEPOINT/SELECT, vzácné testy obnovy.

Google AdInline article slot

Architektura a vývoj

První verze na Java za měsíc, pak migrace na Go pro výkon. UI obal nad pg_dump s:

  • Komprese záloh (custom compression).
  • Volitelná oznámení o úspěchu.
  • API endpoint pro health checky.

Aktuální použití:

  • Primární záloha pro small-scale projekty na VPS.
  • Záloha pro cloud DBaaS (duplicita pro případ outage/smazání).

Projekt MIT licence, self-hosted, s webovým rozhraním.

Google AdInline article slot

Plány rozvoje: monitorování a alerting

Roadmap se zaměřuje na PostgreSQL-specifické monitorování:

  • Analýza pg_stat_activity, pg_stat_sys, pg_locks s UI vizualizací (alternativa k postgres_exporter + Grafana).
  • Alerting na zpomalení dotazů (threshold >100ms na INSERT).
  • Statistiky CPU time a frekvence provedení pro detekci bottlenecků.
  • Rozšíření storage (Yandex Disk, NFS, FTP) a notifications (Discord, Mattermost).

Inkrementální zálohy + WAL streaming s PITR již implementovány (UPD 2025).

Pravidla práce s produkční DB

Po incidentu zavedeny přísné praktiky:

  • Před UPDATE: povinný SELECT s LIMIT 1–2 pro validaci.
  • Pro bulk operace: manuální SAVEPOINT.
  • Recovery drill každé čtvrtletí (cloud + lokální zálohy).
BEGIN;
SAVEPOINT sp1;
SELECT * FROM users WHERE email ILIKE '%old%' LIMIT 2;
-- OK? UPDATE...
RELEASE SAVEPOINT sp1;
COMMIT;

Za 2 roky recovery z Postgresus a cloud záloh probíhal bez selhání.

Co je důležité

  • Nástroj řeší skutečný problém: automatizace + oznámení zabraňují ztrátě dat v 0.01 % případech.
  • Go implementace zajišťuje low overhead pro VPS.
  • Monitorování zátěže se integruje se zálohami out-of-box.
  • Testujte recovery pravidelně – zálohy jsou bezcenné bez ověření.
  • Open source alternativa k zálohám cloud DBaaS jako fault-tolerant vrstva.

— Editorial Team

Advertisement 728x90

Číst dál