PostgreSQL
Contents
HA Cluster
In PostgreSQL spreekt men altijd van een cluster, omdat serieuze toepassingen voor ononderbroken werking een terugval op een kopie van de database nodig hebben. Een cluster bestaat in dat geval uit tenminste één Primary en één Standby node. De standby neemt de taak van primary op zich als de primary stopt.
Een High Availability Cluster (HA) gaat verder en voldoet aan de volgende criteria:
- Het cluster bestaat uit één primary node en twee standby nodes
- Automatische failover met minimale downtime, met beveiliging tegen een terugkomende node die primary claimt
- Efficiënte afhandeling van connection met behulp van pooling
- Afscherming van de database nodes door middel van een proxy
- Afsplitsing van zware lees queries met load balancing op de standby nodes
Het Webhuis PostgreSQL Cluster is opgezet met Patroni, HAProxy, etcd en PGBouncer.
Toepassingen
MySQL is op het moment de meest gebruikte database voor Mediawiki. Webhuis is de wiki in het verleden begonnen met een MySQL backend, maar is overgestapt PostgreSQL als standaard database backend.
Mediawiki
Installatie
De installatie procedure met de PostgreSQL backend is een beetje gammel, maar als je eenmaal een PostgreSQL database hebt gaat het soepel.
Webserver
# apt-get install mediawiki php-pgsql
In /etc/php/7.3/apache2/php.ini uncomment:
extension=pdo_pgsql extension=pgsql
PostgreSQL Server
Als de database is geïnstalleerd is de volgende voorbereiding op de import uit MySQL noodzakelijk, vanwege andere afhandeling van de autoincrement op keys in tabllen. In PostgreSQL doen we dat met een sequence.
create sequence page_id_seq owned by page.page_id; alter table page alter page_id set default nextval('page_id_seq'); create sequence pagecontent_old_id_seq owned by pagecontent.old_id; alter table pagecontent alter old_id set default nextval('pagecontent_old_id_seq'); create sequence revision_rev_id_seq owned by revision.rev_id; alter table revision alter rev_id set default nextval('revision_rev_id_seq'); create sequence job_job_id_seq owned by job.job_id; alter table job alter job_id set default nextval('job_job_id_seq');
Migratie
php importDump.php --conf /etc/mediawiki/LocalSettings.php ~/tmp/mediawiki-dump.xml --username-prefix='wiki_database_rolename'
Terug naar: Voorpagina