Hvordan du konfigurerer postgreSql topp 10 replikasjon

Hvordan du konfigurerer postgreSql topp 10 replikasjon
PostgreSQL er et åpen kildekode -relasjonsdatabaseadministrasjonssystem (RDBMS). Det er en av de mest avanserte databasene der ute.

I denne artikkelen vil jeg vise deg hvordan du konfigurerer postgreSql 11 -replikasjon. La oss komme i gang.

Hvordan fungerer replikasjon i PostgreSQL:

I et postgreSQL replikasjonsoppsett har du to typer servere. De Herre server og Slave server.

Databasepostene til Herre serveren dupliseres til Slave servere. Du kan lese fra Slave servere som bruker IP -adressene til Slave servere. Men du legger bare til nye data til Herre server. Serverne er alle synkronisert. Så hvis noe av Herre Server mislykkes, en av slaveserverne kan ta over og bli en ny mester. Slik kan PostgreSQL håndtere databaseforespørsel uten avbrudd, selv om noen av serverne mislykkes i en Herre/Slave konfigurasjon.

Nettverksdiagram:

Dette er nettverksdiagrammet for PostgreSQL Herre/Slave Replikasjonsoppsett. Her har jeg to servere, PG-Master er den Herre PostgreSQL Server og PG-Slave er den Slave PostgreSQL Server. Selvfølgelig kan du ha mer Slave server, men for enkelhets skyld skal jeg ha en Slave server.

Min PG-Master PostgreSql Herre Serveren har IP -adressen 192.168.199.137 og PG-Slave PostgreSql Slave Serveren har IP -adressen 192.168.199.138. Husk disse og gjør endringer der det er nødvendig for oppsettet ditt.

Installere PostgreSQL:

For demonstrasjonen bruker jeg Ubuntu 18.04 LTS -server. Du kan bruke hvilken som helst Linux -distribusjon du vil ha. Bare kommandoene er litt forskjellige. Det er alt.

Du må installere PostgreSQL på alle serverne som vil være en del av replikasjonsoppsettet. I mitt tilfelle de to serverne PG-Master, og PG-Slave.

Jeg vil vise deg hvordan du installerer PostgreSQL på PG-Master maskin. Trinnene er de samme for PG-Slave-maskiner også.

PG-Master server:

Først må du legge til PostgreSQL -pakkelageret på Ubuntu -maskinen din. For å gjøre det, kjør følgende kommando:

$ ekko "Deb http: // apt.PostgreSql.org/pub/repos/apt/$ (lsb_release -cs) -pgdg main 11 "|
sudo tee/etc/apt/kilder.liste.D/PGSQL.liste

PostgreSQL -pakkelageret skal legges til.

Kjør nå følgende kommando for å legge til GPG -tasten til PostgreSQL -pakkelageret:

$ wget --quiet -o -https: // www.PostgreSql.org/media/nøkler/accc4cf8.ASC | sudo apt-key add -

GPG -tasten bør legges til.

Oppdater nå Apt Pakkelagerbuffer med følgende kommando:

$ sudo apt oppdatering

De Apt Pakkelagerbuffer bør oppdateres.

Installer nå PostgreSQL -databaseserver med følgende kommando:

For PostgreSql 10 (siste stabil):

$ sudo apt install PostgreSql-10

For PostgreSql 11 (for tiden på beta):

$ sudo apt install PostgreSql-11

Trykk nå y Og trykk deretter å fortsette.

PostgreSQL skal installeres.

Angi passord for Postgres Bruker med følgende kommando:

$ sudo passwd postgres

Skriv nå inn passordet. Det skal settes.\

Husk nå å gjøre det samme med PG-Slave server før du fortsetter.

Sette opp Master PostgreSQL -serveren:

Logg inn som Postgres bruker:

$ su - postgres

Opprett nå en ny bruker Replikering:

$ psql -c
Passord 'ditt_password'; "

Nå åpen /etc/postgreSql/11/main/pg_hba.konf med Nano:

$ nano/etc/postgreSql/11/main/pg_hba.konf

Legg til følgende linje til den markerte stedet:

vertsreplikasjonsreplikasjon 192.168.199.138/24 MD5

Åpner nå hovedpostgreSQL -konfigurasjonsfilen med Nano:

$ nano/etc/postgreSql/11/main/postgreSql.konf

Nå finn og endre følgende innstillinger. Hvis noen linje er kommentert, må du ikke unnta det (fjerne #) etter behov.

listen_addresses = 'localhost, 192.168.199.137 '
wal_level = replika
max_wal_senders = 10
wal_keep_segments = 64

Start nå PostgreSQL -serveren på din PG-Master server:

$ SystemCTL Restart PostgreSql

Konfigurere slaveserveren:

PG-Slave serverpålogging som Postgres bruker:

$ su - postgres

Stopp PostgreSQL -tjenesten på PG-Slave server:

$ SystemCTL Stop PostgreSql

Nå åpen /etc/postgreSql/11/main/pg_hba.konf med Nano:

$ nano/etc/postgreSql/11/main/pg_hba.konf

Legg til følgende linje som du gjorde på PG-Master server:

vertsreplikasjonsreplikasjon 192.168.199.137/24 MD5

Åpner nå hovedpostgreSQL -konfigurasjonsfilen med Nano:

$ nano/etc/postgreSql/11/main/postgreSql.konf

Nå finn og endre følgende innstillinger. Hvis noen linje er kommentert, må du ikke unnta det (fjerne #) etter behov.

listen_addresses = 'localhost, 192.168.199.138 '
wal_level = replika
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = på

Gå nå til din data_directory:

$ CD/var/lib/postgreSql/11/main

Fjern alt fra den katalogen:

$ rm -rfv *

Kopier nå dataene fra PG-Master server til PG-Slave serverens data_directory:

$ pg_basebackup -h 192.168.199.137 -d/var/lib/postgreSql/11/main/-p -u
Replikering-Wal-metod = hente

Skriv inn passordet for Postgres bruker av PG-Master server og trykk .

Nå opprette en gjenoppretting.konf fil i data_directory med nano:

$ Nano Recovery.konf

Legg nå følgende linje til den:

standby_mode = 'on'
primær_conninfo = 'vert = 192.168.199.137 port = 5432 bruker = replikasjonspassord = 123 '
trigger_file = '/tmp/masternow'

Start PostgreSQL Slave server:

$ SystemCTL Start PostgreSql

Testing av replikasjon:

Nå på PG-Master server, kan du se at Slave serveren oppdages.

SQL -kommando for å opprette Brukere bord:

Lag tabellbrukere (
Navn varchar (30),
land varchar (2)
);

SQL -kommandoer for å sette inn dummy -data i Brukere bord:

Sett inn brukerverdier ('Shahriar', 'BD');
Sett inn brukerverdier ('Shovon', 'BD');
Sett inn brukerverdier ('Kelly', 'oss');
Sett inn brukerverdier ('Nina', 'i');
Sett inn brukerverdier ('Kesha', 'CA');

Som du kan se, blir dataene riktig lagt til Herre server PG-Master:

# \ x av
# Velg * fra brukere;

Nå fra Slave server PG-Slave, Logg inn på PostgreSQL -konsollen:

$ psql

Prøv nå å velge dataene vi nettopp la til:

$ velg * fra brukere;

Som du kan se, vises dataene i Slave server. Det betyr at replikasjon fungerer perfekt.

Genererer SSH -nøkler:

Du kan logge inn på Herre server fra Slave Server og omvendt uten passord hvis du genererer og kopierer SSH -nøkler til motsatte servere. Dette er nyttig for administrasjonsformål.

Jeg viser deg bare hvordan du gjør det på Herre server. Prosedyrene er de samme.

Generere SSH -tast på Herre og Slave servere mens du er logget inn som Postgres bruker.

$ SSH-KeenGen

Fortsett å trykke . SSH -nøkkel skal genereres.

Fra PG-Master server, kopierer SSH -tasten til PG-Slave server:

$ SSH-Copy-ID 192.168.199.138

Fra PG-Slave server, kopierer SSH -tasten til PG-Master server:

$ SSH-Copy-ID 192.168.199.137

Skriv inn ja Og trykk deretter .

Skriv nå inn passordet for serveren du kobler til for Postgres bruker og trykk .

Slik konfigurerer du Herre/Slave Replikering på PostgreSql 11. Takk for at du leste denne artikkelen.