postgresql
PostgreSQL Hoge beschikbaarheid
Zoeken…
Replicatie in PostgreSQL
De primaire server configureren
Voorwaarden:
- Replicatie-gebruiker voor replicatieactiviteiten
- Directory om de WAL-archieven op te slaan
Creëer replicatie gebruiker
createuser -U postgres replication -P -c 5 --replication
+ option -P will prompt you for new password + option -c is for maximum connections. 5 connections are enough for replication + -replication will grant replication privileges to the user
Maak een archiefmap in de gegevensmap
mkdir $PGDATA/archive
Bewerk het bestand pg_hba.conf
Dit is een hostbasis-authenticatiebestand, bevat de instelling voor clientverificatie. Onderstaande vermelding toevoegen:
#hosttype database_name user_name hostname/IP method host replication replication <slave-IP>/32 md5
Bewerk het bestand postgresql.conf
Dit is het configuratiebestand van PostgreSQL.
wal_level = hot_standby
Deze parameter bepaalt het gedrag van de slaveserver.
`hot_standby` logs what is required to accept read only queries on slave server. `streaming` logs what is required to just apply the WAL's on slave. `archive` which logs what is required for archiving.
archive_mode=on
Met deze parameters kunt u WAL-segmenten naar de archieflocatie verzenden met de parameter
archive_command
.archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'
archive_command
gezegd, wat hierbovenarchive_command
doet, is dat het de WAL-segmenten naar de archiefmap kopieert.wal_senders = 5
Dit is het maximale aantal WAL-afzenderprocessen.Start nu de primaire server opnieuw.
Een back-up maken van de primayserver naar de slaveserver
Stop de primaire server voordat u wijzigingen aanbrengt op de server.
Belangrijk: start de service niet opnieuw totdat alle configuratie- en back-upstappen zijn voltooid. U moet de standby-server openen in een staat waarin deze gereed is om een back-upserver te zijn. Dit betekent dat alle configuratie-instellingen aanwezig moeten zijn en dat de databases al moeten zijn gesynchroniseerd. Anders kan streamingreplicatie niet starten`
Voer nu het hulpprogramma pg_basebackup uit
pg_basebackup
hulpprogrammapg_basebackup
kopieert de gegevens van de gegevensmap van de primaire server naar de gegevensmap van de slave.$ pg_basebackup -h <primary IP> -D /var/lib/postgresql/<version>/main -U replication -v -P --xlog-method=stream
-D: This is tells pg_basebackup where to the initial backup
-h: Specifies the system where to look for the primary server
-xlog-method=stream: This will force the pg_basebackup to open another connection and stream enough xlog while backup is running.
It also ensures that fresh backup can be started without failing back to using an archive.
De stand-byserver configureren
Om de stand-byserver te configureren, bewerkt u postgresql.conf en maakt u een nieuw configuratiebestand met de naam recovery.conf.
hot_standby = on
Dit geeft aan of u tijdens het herstel vragen mag uitvoeren
Herstel.conf-bestand maken
standby_mode = on
Stel de verbindingsreeks in op de primaire server. Vervang door het externe IP-adres van de primaire server. Vervang door het wachtwoord voor de gebruiker genaamd replicatie
`primary_conninfo = 'host = port = 5432 user = replication password ='
(Optioneel) Stel de locatie van het triggerbestand in:
trigger_file = '/tmp/postgresql.trigger.5432'
Het
trigger_file
pad dat u opgeeft, is de locatie waar u een bestand kunt toevoegen wanneer u wilt dat het systeem overgaat naar de stand-byserver. De aanwezigheid van het bestand "activeert" de failover. U kunt ook de opdracht pg_ctl promot gebruiken om failover te activeren.
Start de standby-server
U hebt nu alles op zijn plaats en bent klaar om de standby-server te openen
Attribution
Dit artikel is grotendeels afgeleid van en toegeschreven aan Hoe PostgreSQL instellen voor hoge beschikbaarheid en replicatie met Hot Standby , met kleine wijzigingen in opmaak en voorbeelden en wat tekst verwijderd. De bron is gepubliceerd onder de Creative Commons Public License 3.0 , die hier wordt onderhouden.