Difference between revisions of "PostgreSQL"
Martin admin (talk | contribs) m (Martin admin moved page PostgreSQL wiki:PostgreSQL to PostgreSQL over redirect) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | * Configuraties |
||
− | [[Frank Heikens]] werkt samen met [[Martin Simons]] Webhuis op het gebied van PostgreSQL, hij levert een belangrijke bijdrage aan de PostgreSQL configuratie en documentatie. |
||
− | * [[ |
+ | ** [[Stand Alone]] |
+ | ** [[Primary en Standby]] |
||
+ | ** [[HA Cluster]] |
||
* [[Toepassingen]] |
* [[Toepassingen]] |
||
* [[Standaard opzet onderdelen PostgreSQL]] |
* [[Standaard opzet onderdelen PostgreSQL]] |
||
Line 12: | Line 14: | ||
* Afscherming van de database nodes door middel van een proxy |
* Afscherming van de database nodes door middel van een proxy |
||
* Afsplitsing van zware lees queries met load balancing op de standby nodes |
* Afsplitsing van zware lees queries met load balancing op de standby nodes |
||
− | Het Webhuis PostgreSQL Cluster |
+ | Het [[Webhuis PostgreSQL Cluster]] is opgezet met Patroni, HAProxy, etcd en PGBouncer. |
= Toepassingen = |
= 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. |
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. |
Latest revision as of 15:58, 10 October 2023
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