Hoe om replikasie op PostgreSQL op Ubuntu 18.04 VPS of die toegewyde bediener op te stel

inleiding

Stoor data op een plek is gewoonlik ‘n riskante ding om te doen. Dit word gewoonlik aanbeveel dat u ‘n plan het om te verseker dat u herstel van ‘n ramp sodra dit toeslaan.


Een goeie manier om ‘n doeltreffende rampherstelplan te verseker, is om dieselfde data op verskeie bedieners te hê en te gesinchroniseer. Die databasisbedieners werk gewoonlik saam om een ​​oor te neem in geval die primêre / hoofbediener misluk en sodoende hoë beskikbaarheid skep. Verskeie databasisbedieners kan ook terselfdertyd dieselfde data bedien, dit word ook Load Balancing genoem.

In hierdie gids, jy’Ek sal leer hoe om ‘n meester-slaaf-replikasie op te stel waar een databasisbediener lees-skryf-toestemmings sal verleen, terwyl die tweede een slegs lees-toestemmings daaraan sal verleen..

Voor jy begin

  • 2 Ubuntu 18.04 virtuele privaat bedieners (VPS’s) of toegewyde bedieners met ‘n nie-gebruiker wat sudo-voorregte het. Een sal as ‘n meester optree, terwyl die ander ‘n standby / slawe-bediener is.
  • PostgreSQL is op albei bedieners geïnstalleer en gekonfigureer. U kan hier leer hoe om PostgreSQL-databasisbediener op Ubuntu 18.04 te installeer

stappe

U moet eers die luisteradres op die PostgreSQL-konfigurasiebladsy verander. Die bediener moet na alle poorte kan luister.

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Spesiale opmerking: die postgresql-weergawe kan ‘n ander weergawe wees, en u pad kan dus verskil van die een hierbo.

Soek listen_addresses in u redakteur of stel nommers in en blaai af na reël 59.

Trek die lyn uit en verander die localhost-naam na * waardeur die bediener na alle IP-adresse kan luister. Dit moet soos die volgende uittreksel lyk.


#——————————————————————————
# VERBINDINGS EN MAGTIGING
#——————————————————————————

# – Verbindingsinstellings –

listen_addresses = ‘*’ # op watter IP-adres om te luister;
# komma-geskeide lys van adresse;
# verstek na ‘localhost’; gebruik ‘*’ vir almal

Maak u redakteur toe terwyl u veranderinge stoor en laai die postgresql-diens weer om die veranderings te akkommodeer

$ sudo systemctl herbegin postgresql

Skep ‘n voorbeelddatabasis

Vir repliseringstoetsdoeleindes, skep ‘n voorbeeldtabel genaamd karakters.

Teken in u postgres-databasis aan

$ sudo -i -u postgres psql postgres
# CREATETABLE karakters (fname-teks, karakter_id-reeks, datametaal, beskrywingsteks);

Voeg nou voorbeelddata in u nuutgevormde tabel in.

# INSERTINTOcharacters (naam, datum, beskrywing) WAARDES (‘Griffin’, huidige_datum, ‘Dit is ‘n voorbeeldkarakter’);
INSERT01

Primêre bediener konfigurasie

PostgreSQL benodig ‘n rol / gebruiker met spesiale regte vir repliseringsdoeleindes.

$ sudo -u postgres createuser -U postgres replicationuser -P -c 5 – replikasie

Spesiale opmerking: u kan hier leer oor die createuser-opdragopsies. Sorg ook dat in die produksie-omgewing, die wagwoord vir die replikasieverbruiker STERK is om voorvalle soos brutoforcing of maklike raai van wagwoorde te voorkom.

U moet dan ‘n argiefgids skep wat ‘n subgids van u groep is’s standaard hoofgids.

$ sudo mkdir -p /var/lib/postgresql/9.5/main/mnt/server/archivedir

Stel die pg_hba.konf lêer

$ sudo vim /etc/postgresql/9.5/main/pg_hba.conf

Soek in die replikasie-afdeling, en voeg dan die volgende inskrywing by die replikasie-gebruiker by om soos volg te lyk. Onthou om u IP-adres van die slawebediener te vervang.

# Laat replikasieverbindings toe
host replication replicationuser 192.168.56.20/24 md5

Verlaat terwyl u veranderinge stoor.

Wysig die postgresql.conffile

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Wysig die volgende instellings. Onthou om elke instelling wat u wysig, te laat opmerk.

listen_addresses = ‘*’
wal_level = hot_standby
archive_mode = aan
Archive_commend = ‘toets! -f mnt / server / archivedir /% f && cp% p mnt / server / archivedir /% f ‘
max_wal_senders = 3

Verlaat terwyl u veranderinge stoor en herbegin die postgresql-diens

$ sudo systemctl herbegin postgresql

Slawe bediener konfigurasie

Stop eers die postgresql-diens op u slawe-bediener.

$ sudo systemctl stop postgresql

Hernoem die hoofnaam in die postgresql-gids na iets anders sedert die rugsteun gewen het’t vervang die bestaande lêers in dieselfde lêergids.

$ sudo mv /var/lib/postgresql/9.3/main /var/lib/postgresql/9.3/main_old

Begin die pg_basebackup-program. Vervang die ip met u ip-adres van u meesterbediener.

$ sudo -u postgres pg_basebackup -h 192.168.56.20 -D /var/lib/postgresql/9.5/main -U replikasie-gebruiker -v -P –xlog-metode = stroom

Voer die replikasiegebruikerswagwoord in wat u op u meesterbediener gestel het wanneer u gevra word.

Wysig die postgresql.konf lêer

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Soek na die instellingopsie vir hot_standby en verander dit na op.

Verlaat terwyl u veranderinge stoor.

U moet nou die herstelinstellings verskaf wat gebruik sal word in die geval van dataherwinning.

$ sudo cp -avr /usr/share/postgresql/9.5/recovery.conf.sample /var/lib/postgresql/9.5/main/recovery.conf

Wysig die herstellêer

$ sudo vim /var/lib/postgresql/9.5/main/recovery.conf

Soek na die standby_mode en verander die opsie na op sodat die bediener in standby-modus kan bly.

Soek na die primêre_konninfo en voeg die meesterbediener besonderhede by

primêre_conninfo = ‘host = 192.168.56.20 poort = 5432 gebruiker = replikasiegebruiker [email protected]%’

Verlaat terwyl u veranderinge stoor.

Begin die postgresql-diens op u slawe-bediener

$ sudo systemctl begin postgresql

Toets-replikasie

Gaan na u meesterbediener in die tabel wat u geskep het. Voeg ‘n nuwe inskrywing by.

$ sudo -u postgres psql postgres

# INSERTINTOcharacter (naam, datum, beskrywing) WAARDES (‘Sanchez’, huidige datum, ‘Dit is ‘n familie-karakter’);
INSERT01

Gaan terug na u slawe-bediener in die Postgres-databasis en bekyk die data

$ sudo -u postgres psql postgres
# SELECT * FROMcharacter
fname | karakter_id | datum | beskrywing
———+————–+———————+—————————-
Griffin | 1 | 2018-10-22 00:00:00 | Dit is ‘n voorbeeldkarakter
Sanchez | 2 | 2018-10-2200: 00: 00 | ‘N Rick en Morty-karakter
(2 rye)

Afsluiting

As u die data op u slawebediener kon sien nadat u dit in u meesterbediener geplaas het, beteken dit dat u u PostgreSQL-meester-slawe-replikasie suksesvol opgestel het.

Daar is twee maniere om ‘n mislukking aan te wend as die meesterbediener skielik ophou werk; u kan óf die pg_ctl-opdrag gebruik, óf u kan die ligging van die snellerlêer in u slawebediener instel’s /etc/postgresql/9.5/main/postgresql.conf-lêer. Soek en deaktiveer die trigger_file = ‘/tmp/postgresql.trigger.5432’line in die lêer.

Kyk na die top 3 beste webhostingdienste

FastComet

Beginprys:
$ 2.95


betroubaarheid
9.7


pryse
9.5


Gebruikersvriendelik
9.7


ondersteuning
9.7


Kenmerke
9.6

Lees resensies

Besoek FastComet

A2 Hosting

Beginprys:
$ 3,92


betroubaarheid
9.3


pryse
9.0


Gebruikersvriendelik
9.3


ondersteuning
9.3


Kenmerke
9.3

Lees resensies

Besoek A2 Hosting

ChemiCloud

Beginprys:
$ 2,76


betroubaarheid
10


pryse
9.9


Gebruikersvriendelik
9.9


ondersteuning
10


Kenmerke
9.9

Lees resensies

Besoek ChemiCloud

Verwante artikels oor hoe om te doen

  • Hoe u hoë beskikbaarheid kan skep met MySQL-replikasie op ‘n Ubuntu 18.04 VPS of ‘n toegewyde bediener
    intermediêre
  • Hoe u phpMyAdmin op Ubuntu 18.04 VPS of die toegewyde bediener kan beveilig?
    intermediêre
  • Hoe om MYSQL 8.0 te installeer en ‘n databasis op ‘n Ubuntu 18.04 Linux VPS te skep
    intermediêre
  • Hoe om u MySQL-databasis te rugsteun op ‘n Ubuntu 18.04 VPS of ‘n toegewyde bediener
    intermediêre
  • Hoe om die LLMP-stapel op Ubuntu 18.04 VPS-bediener of die toegewyde bediener te installeer
    intermediêre
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me