postgresql
PostgreSQL Hög tillgänglighet
Sök…
Replikering i PostgreSQL
Konfigurera den primära servern
Krav:
- Replikeringsanvändare för replikeringsaktiviteter
- Katalog för att lagra WAL-arkiven
Skapa replikeringsanvändare
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
Skapa en arkivkatalog i datakatalogen
mkdir $PGDATA/archive
Redigera filen pg_hba.conf
Detta är en värdbaserad autentiseringsfil som innehåller inställningen för klientautentisering. Lägg till posten nedan:
#hosttype database_name user_name hostname/IP method host replication replication <slave-IP>/32 md5
Redigera postgresql.conf-filen
Detta är konfigurationsfilen för PostgreSQL.
wal_level = hot_standby
Denna parameter avgör slavserverens beteende.
`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
Med dessa parametrar kan du skicka WAL-segment till arkivplats med parametern
archive_command
.archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'
I grund och botten vad som
archive_command
gör är att det kopierar WAL-segmenten till arkivkatalogen.wal_senders = 5
Detta är det maximala antalet WAL-avsändarprocesser.Starta om den primära servern.
Säkerhetskopiera primay-servern till slaveservern
Stoppa den primära servern innan du gör ändringar på servern.
Viktigt: Starta inte tjänsten igen förrän alla konfigurations- och säkerhetssteg är slutförda. Du måste ta upp standby-servern i ett tillstånd där den är redo att vara en reservserver. Detta innebär att alla konfigurationsinställningar måste vara på plats och databaserna måste redan synkroniseras. Annars kommer strömningsreplikationen inte att börja
Kör nu verktyget pg_basebackup
pg_basebackup
verktyget kopierar data från primär serverdatakatalog till slavdatakatalog.$ 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.
Konfigurera standbyservern
För att konfigurera standbyservern redigerar du postgresql.conf och skapar en ny konfigurationsfil med namnet recovery.conf.
hot_standby = on
Detta anger om du får köra frågor när du återställer
Skapar recovery.conf-fil
standby_mode = on
Ställ anslutningssträngen till den primära servern. Ersätt med den externa IP-adressen för den primära servern. Ersätt med lösenordet för den användare som heter replikering
`Primary_conninfo = 'host = port = 5432 user = replikationslösenord ='
(Valfritt) Ställ in triggerfilsplatsen:
trigger_file = '/tmp/postgresql.trigger.5432'
Den
trigger_file
sökväg som du anger är platsen där du kan lägga till en fil när du vill att systemet ska misslyckas till standbyservern. Närvaron av filen "utlöser" failover. Alternativt kan du använda kommandot pg_ctl promotion för att utlösa failover.
Starta standbyservern
Nu har du allt på plats och är redo att ta fram standby-servern
Erkännande
Den här artikeln är väsentligen härrörande från och tillskrivs Hur man ställer in PostgreSQL för hög tillgänglighet och replikering med het standby , med mindre ändringar i formatering och exempel och en del text raderas. Källan publicerades under Creative Commons Public License 3.0 , som upprätthålls här.