sep
PostgreSQL is een opensource relationele database met een actieve community en daarmee een concurrent voor de gevestigde closed source databases als Oracle en SQL Server. Door de eenvoud van installatie en opzet wordt het bij projecten snel ingezet, zonder dat men vooraf een duidelijk beeld heeft van het beheer dat bij een PostgreSQL-omgeving komt kijken.
Versies
PostgreSQL komt elk jaar met een nieuwe versie (major release) en deze wordt 5 jaar lang elk kwartaal ondersteund met security en bug fixes (minor release). Momenteel is versie 9.6 de major versie en zijn de kwartaal patches terug te vinden als 9.6.1, 9.6.2 etc.
Vanaf versie 10 (september 2017) zal de nummering van versies en patches worden aangepast. We beginnen dan met versie 10 als de major versie en alle kwartaal patches zullen de minor versie ophogen. We krijgen dan versie 10.1 en daarna 10.2. De nieuwe major versie in 2018 zal versie 11.0 zijn.
Voor het juiste beheer van een PostgreSQL omgeving is het van belang om bij te blijven met de juiste major en minor patches. Mochten er issues zijn, dan kunnen deze door de community worden opgelost. Bij de standaard repostory’s van Linux-distributies worden vaak oude versies van PostgreSQL meegeleverd. Het advies is dan ook om niet deze, maar de officiële PostgreSQL repository’s te gebruiken.
Backup en recovery
Backup en recovery worden in het begin van projecten vaak over het hoofd gezien. Uiteindelijk zal er even snel een backupstrategie worden ingericht met behulp van dumps, die door pg_dump worden gemaakt. Deze dumps zijn van een specifiek tijdstip en bij een eventuele restore zal er daarom data verloren gaan. De doorlooptijd van pg_dump kan ook vrij lang zijn met grote databases. Op de lange termijn is dit niet wenselijk.
PostgreSQL ondersteunt point-in-time-recovery en met de juiste backup tools kan er een recoverystrategie worden gemaakt, waarbij de kans op dataverlies zeer klein wordt. Dit kan gedaan worden door zelf te scripten en gebruik te maken van de default pg_basebackup tool. Een betere optie is om gebruik te maken van een van de vele opensource backup- en recoveryprojecten voor PostgreSQL. Hierbij kan gedacht worden aan pgbackrest, barman of WAL-E.
Performance
Zoals op elke database kan er een performance issue ontstaan, waarbij er in de database gezocht moet worden naar de bottleneck of waar het binnen het proces specifiek mis gaat. Binnen PostgreSQL zijn er allerlei views te bekijken voor het vinden van relevante informatie, zoals bijvoorbeeld pg_stat_activity. Dit betreft alleen real-time informatie, die bovendien niet erg inzichtelijk is. Zonder vooraf ingerichte tools kan het oplossen van een performance issue veel tijd kosten.
De PostgreSQL community zit niet stil en heeft meerdere actieve projecten voor ondersteuning bij performance issues. Het meest gebruikte is pgbadger. Deze genereert duidelijke HTML-rapporten over langere perioden, zodat er vergelijkingen gedaan kunnen worden met andere momenten of ingezoomd kan worden op specifieke tijden of processen.
High Availability
De PostgreSQL omgeving kan een centrale of zelfs bedrijfskritische rol krijgen. Het wegvallen van de omgeving kan dan grote gevolgen hebben. Is het recoveryscenario met de backups voldoende?
PostgreSQL ondersteunt standaard replicatie en levert tevens ondersteuning van standby servers. Mocht de primaire server wegvallen, dan kan een standby server worden geactiveerd. Welke techniek de beste oplossing levert, hangt af van de situatie en de eisen die worden gesteld aan performance en aan mogelijk data verlies.
Conclusie
PostgreSQL is een betrouwbaar database-platform, maar goed beheer is essentieel voor het benutten van alle mogelijkheden die het biedt.
20 februari 2024 • Fabio Vrolijk
12 januari 2024 • Phil Lowe Press Officer at Soudal Quick-Step