PostgreSQL Replication på Ubuntu Tutorial

PostgreSQL Database System

PostgreSQL er et avanceret objekrelationsbaseret database management system (eller ORDBMS). Det er et udvideligt og meget skalerbart databasesystem, hvilket betyder, at det kan håndtere belastninger fra enkeltmaskineapplikationer til virksomhedens webtjenester med mange samtidige brugere. PostgreSQL er transaktionsmæssig og ACID-kompatibel (Atomicity, Consistency, Isolation, Durability).

Den understøtter en stor del af SQL-standarden og tilbyder mange funktioner, herunder:

  • Komplekse forespørgsler
  • Udenlandske nøgler
  • Udløser
  • Opdaterbare visninger
  • Transaktionel integritet
  • Multiversion samtidighedskontrol

Som tidligere sagt kan PostgreSQL-databasesystemet udvides af sine brugere. Der er forskellige måder at gøre dette på, f.eks. Tilføjelse af nye funktioner, operatører, datatyper, indeksmetoder, proceduremæssige sprogOsv

Det er udviklet af PostgreSQL Global Development Group og udgivet under vilkårene i PostgreSQL-licens.

PostgreSQL giver mange måder at replikere en database på. I denne tutorial vil vi konfigurere Master / Slave replikationen, som er processen med at synkronisere data mellem to databaser ved kopiering fra en database på en server (master) til en på en anden server (slaven).

Denne konfiguration vil blive udført på en server, der kører Ubuntu 16.04.

Forudsætninger

PostgreSQL 9.6 installeret på Ubuntu 16.04 servere

Konfigurer UFW

UFW (eller ukompliceret firewall) er et værktøj til at styre iptables-baseret firewall på Ubuntu-systemer. Installer det (på begge servere) Gennem apt ved at udføre:

# apt-get install -y ufw

Tilføj derefter PostgreSQL og SSH service til firewall. For at gøre dette skal du udføre:

# ufw tillader ssh # ufw tillade postgresql

Aktivér firewallen:

# ufw aktiver

Konfigurer PostgreSQL Master Server

Masterserveren vil have læsnings- og skrivetilladelser til databasen, og den vil være i stand til at udføre datastrømning til slaveserveren.

Med en teksteditor skal du redigere PostgreSQL hovedkonfigurationsfilen, som er /etc/postgresql/9.6/main/postgresql.conf:

# $ EDITOR /etc/postgresql/9.6/main/postgresql.conf

Uncomment the listen_addresses linje og redigere tilføjelse af masterserverens IP-adresse:

listen_addresses = 'master_server_IP_address'

Næste, uncomment den wal_level linje ændrer sin værdi:

wal_level = hot_standby

Hvis du vil bruge lokal synkronisering til synkroniseringsniveauet, kommenterer og redigerer følgende linje:

synkron_commit = lokale

Vi bruger to servere, så ukomment og rediger de to linjer som følger:

max_wal_senders = 2
wal_keep_segments = 10

Gem og luk filen.

Rediger pg_hba.conf fil til godkendelseskonfigurationen.

# $ EDITOR /etc/postgresql/9.6/main/pg_hba.conf
Indsæt følgende konfiguration: # Repræsentations replik for Localhost-hosten 127.0.0.1 / 32 md5 # PostgreSQL Master IP-adresse host replikations replika master_IP_address / 32 md5 # PostgreSQL SLave IP-adresse værts replikations replika slave_IP_address / 32 md5

Gem, afslut og genstart PostgreSQL:

# systemctl genstart postgresql

Opret en bruger til replikering

Opret en ny PostgreSQL-bruger til replikationsprocessen. Log ind på Postgres bruger og start PostgreSQL shell:

# su - postgres $ psql

Opret en ny bruger:

postgres = # CREATE USER svar REPLICATION LOGIN ENCRYPTED PASSWORD 'usr_strong_pwd';

Luk skalen.

Dette afslutter masterserverkonfigurationen.

Konfiguration af slaveserveren

Slaveserveren har ikke skrivetilladelser til databasen, idet dens eneste funktion er at acceptere streaming fra master. Så det vil kun have READ-tilladelser.

For det første skal du stoppe PostgreSQL-tjenesten:

# systemctl stop postgresql

Rediger PostgreSQL hovedkonfigurationsfilen:

# $ EDITOR /etc/postgresql/9.6/main/postgresql.conf

I denne fil, uncomment the listen_addresses linje og ændre dens værdi:.

listen_addresses = 'slave_IP_address'

Næste, uncomment den wal_level linje og ændre som følger:

wal_level = hot_standby

Som i hovedindstillingerne, bemærker du ikke synchronous_commit linje for at bruge lokal synkronisering.

synkron_commit = lokale

Ligesom i mesteren, kommenterer og redigerer følgende to linjer:

max_wal_senders = 2
wal_keep_segments = 10

Aktiver hot_standby for slaveserveren ved at uncommenting den følgende linje og ændre dens værdi:

hot_standby = on

Gem og luk.

Kopier data fra master til slave

For at synkronisere fra master til slaveserver, skal PostgreSQL's hovedmappe på slaven udskiftes med hovedmappen fra master. På slaveserveren, log ind på Postgres bruger:

# su - postgres

Lav en sikkerhedskopi af den faktiske datakatalog:

$ cd/ var / lib / postgresql / 9.6 / $ mv main main_bak

Opret en ny main vejviser:

$ mkdir main /

Skift tilladelser:

$ chmod 700 hoved

På dette tidspunkt skal du kopiere hovedmappen fra master til slaveserveren ved at bruge pg_basebackup:

# pg_basebackup -h master_IP_address -U replika -D / var / lib / postgresql / 9.6 / main -P -xlog

Når overførslen er færdig, i main bibliotek oprette en ny recovery.conf fil, og indsæt følgende indhold:

standby_mode = 'on' primary_conninfo = 'vært = 10.0.15.10 port = 5432 bruger = replika password = usr_strong_pwd' trigger_file = '/tmp/postgresql.trigger.5432'

Gem, afslut og skift tilladelser til denne fil:

# chmod 600 recovery.conf

Start PostgreSQL:

# systemctl start postgresql

Dette afsluttes slave server konfiguration.

Konklusion

Vi har set, hvordan du konfigurerer PostgreSQL master / slave replikation, ved at bruge to servere, der kører Ubuntu 16.04. Dette er blot en af ​​de mange replikationsfunktioner, der leveres af dette avancerede og fuldt open source-databasesystem.

Stillingen PostgreSQL Replication på Ubuntu Tutorial dukkede først på Unixmen.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.