I denne artikkelen vil jeg vise deg hvordan du konfigurerer postgreSql 11 -replikasjon. La oss komme i gang.
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å.
På 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-10For PostgreSql 11 (for tiden på beta):
$ sudo apt install PostgreSql-11Trykk nå y Og trykk deretter å fortsette.
PostgreSQL skal installeres.
Angi passord for Postgres Bruker med følgende kommando:
$ sudo passwd postgresSkriv 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 -cNå åpen /etc/postgreSql/11/main/pg_hba.konf med Nano:
$ nano/etc/postgreSql/11/main/pg_hba.konfLegg 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.konfNå 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 'Start nå PostgreSQL -serveren på din PG-Master server:
$ SystemCTL Restart PostgreSqlKonfigurere slaveserveren:
På PG-Slave serverpålogging som Postgres bruker:
$ su - postgres
Stopp PostgreSQL -tjenesten på PG-Slave server:
$ SystemCTL Stop PostgreSqlNå åpen /etc/postgreSql/11/main/pg_hba.konf med Nano:
$ nano/etc/postgreSql/11/main/pg_hba.konfLegg 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.konfNå 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 'Gå nå til din data_directory:
$ CD/var/lib/postgreSql/11/mainFjern 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 -uSkriv 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'Start PostgreSQL Slave server:
$ SystemCTL Start PostgreSqlTesting av replikasjon:
Nå på PG-Master server, kan du se at Slave serveren oppdages.
SQL -kommando for å opprette Brukere bord:
Lag tabellbrukere (SQL -kommandoer for å sette inn dummy -data i Brukere bord:
Sett inn brukerverdier ('Shahriar', 'BD');Som du kan se, blir dataene riktig lagt til Herre server PG-Master:
# \ x avNå fra Slave server PG-Slave, Logg inn på PostgreSQL -konsollen:
$ psqlPrø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.138Fra 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.