Стратегии за резервни копии (Backup Strategies)
Оваа тема е критична кога зборуваме за администрирање на системи со бази на податоци. Резервните копии претставуваат основен механизам за заштита од губење на податоци. Ова може да биде предизвикано од хардверски дефекти, софтверски грешки, сајбер напади... Стратегиите за резервни копии имаат цел да овозможат флексибилност и минимален downtime.
Full backup претставува целосна копија на целата база на податоци во одреден момент.
Карактеристики:
- ги содржи сите табели, индекси, податоци и метаподатоци
- најлесен за restore
- зафаќа најмногу простор и време
Предности:
- едноставно опоравување
- низок ризик од неконзистентност
Недостатоци:
- голем storage простор
- подолго време за извршување кај големи бази
createdb transfermarkt_restore pg_restore -U postgres -d transfermarkt_restore transfermarkt_full_2026_02_04.dump
Incremental backup ги зачувува само промените направени од последниот backup (full или incremental).
Карактеристики:
- многу помал простор
- брзо извршување
Недостатоци:
- за restore потребни се сите претходни backup-и
- поголем ризик ако недостасува еден backup
Logical vs Physical Backup во PostgreSQL
Logical Backup – pg_dump
Logical backup работи на логичко ниво и ги извлекува податоците како SQL инструкции.
Карактеристики:
- Backup во .sql или .dump формат
- може да се restore-не на различна верзија на PostgreSQL
- не го блокира нормалното работење на базата
Предности:
- флексибилен
- погоден за миграции
Недостатоци:
- побавен кај големи бази
- не содржи low-level storage информации
pg_dump -U postgres -F c -f transfermarkt_logical.dump transfermarkt createdb transfermarkt_new pg_restore -U postgres -d transfermarkt_new transfermarkt_logical.dump
Physical Backup – pg_basebackup
Physical backup прави копија од целата data directory структура.
Карактеристики:
- многу помал простор
- брзо извршување
Недостатоци:
- за restore потребни се сите претходни backup-и
- поголем ризик ако недостасува еден backup
Logical vs Physical Backup во PostgreSQL
Logical Backup – pg_dump
Logical backup работи на логичко ниво и ги извлекува податоците како SQL инструкции.
Карактеристики:
- многу брз restore
- се користи за репликација и disaster recovery
- зависи од иста PostgreSQL верзија
Предности:
- најбрзо опоравување
- погоден за production системи
Недостатоци:
- помала флексибилност
- потребна е конфигурација на WAL
pg_basebackup -U replication_user \ -D /backups/transfermarkt_base \ -Fp -Xs –P systemctl start postgresql При restore(server crash)
Предложена стратегија за нашата база е да правиме дневен full backup и hourly WAL backup.
Point In Time Recovery (PITR)
Во реални информациски системи, најчестата причина за губење на податоци не е хардверски дефект, туку човечка грешка, како што се погрешни UPDATE, DELETE или DROP TABLE операции. Point-In-Time Recovery (PITR) претставува напреден механизам за опоравување кој овозможува базата на податоци да се врати во точно дефиниран момент во времето, непосредно пред да се случи грешката. Овој пристап е карактеристичен за enterprise системи и е широко користен во production околини.
Write-Ahead Logging (WAL)
PostgreSQL користи Write-Ahead Logging (WAL) како механизам за обезбедување на конзистентност и опоравување. Основното правило е дека секоја промена прво се запишува во WAL лог, а дури потоа се применува во самите data фајлови.
Зошто WAL е критичен за PITR?
- овозможува репродукција на сите промени
- гарантира дека ниту една трансакција нема да биде „изгубена“
- служи како основа за репликација и recovery
Со помош на WAL, PostgreSQL може точно да знае што се случило и по кој редослед во базата.
Процес на Point-In-Time Recovery
- се прави base backup (physical)
- се овозможува WAL archiving
- во случај на грешка базата се враќа од последниот backup
- се запира recovery процесот во точно дефинирано време
Предности на PITR:
- прецизно опоравување
- минимална загуба на податоци
Недостатоци:
- потребен дополнителен storage
- комплексна конфигурација
Point-In-Time Recovery претставува еден од најмоќните механизми за заштита на податоци во PostgreSQL. Комбинирањето на physical backup со continuous WAL archiving овозможува системот да се врати во стабилна состојба по било каква логичка грешка.
