Deze blog is een onderdeel van een drieluik serie. Lees hieronder de vorige blogposts.
Basis replicatie met behulp van een pre-built project
PostgreSQL beschikt sinds versie 9.0 over streamingreplicatie, waarbij de WAL-logs worden overgedragen tussen de masterdatabase en de read-only slave (meer informatie vind je hier). Het is vrij eenvoudig in te stellen, dus wat Docker toevoegt? Je kunt de docker-compose-opdracht en het bestand docker-compose.yml gebruiken om een aantal docker-containers te besturen. De master- en slave-database wordt dus als één eenheid behandeld.
Ik ga hiervoor Hamed Momeni’s Medium post, gebruiken maar met een aantal veranderingen.
Ten eerste moet er een dockernetwerk worden gecreëerd zodat onze containers met elkaar kunnen communiceren:
docker network create bridge-docker
Vervolgens halen wij de bestanden en directories uit BitBucket:
git clone https://bitbucket.org/CraigOptimaData/docker-pg-cluster.git
Verander directory naar de nieuw gecreëerde directory die docker-pg-cluster heet.
cd docker-pg-cluster
Daarna kun je gewoon de docker-compose up command gebruiken:
docker-compose up
Je moet nu even geduld hebben, want er moeten een aantal zaken gebeuren tijden het bouwen van de master- en slave-images. Je ziet een paar rode signalen die waarschuwen dat de pakketconfiguratie moet worden vertraagd. Dat is normaal. Uiteindelijk zijn de images klaar en worden ze daadwerkelijk uitgevoerd. Op dit punt moeten de logs van pg_master_1 en pg_slave_1 worden weergegeven terwijl ze worden geïnitialiseerd. Als alles goed is gegaan, zullen de logs niet meer omhoog scrollen.