Hvordan sette opp PostgreSQL Replication På CentOS

Nowadays, kan tjenester ikke stoppe, og systemets administratos reponsability holde applikasjoner, tjenester og servere på linjen. La oss gjøre et scenario med 2 virtuelle maskiner bruker VirtualBox, begge kjører CentOS 6.5 64 bits, og PostgreSQL 9.3 for en kort tutorial
Du kan bruke denne lenken for å installere postgres i maskinen din.

  • Installere PostgreSQL og pgAdmin På CentOS
    Så nå går vi ut noen punkter:
    Master server: er hovedtjeneren, alle tilkoblinger vinne koble på denne serveren, lese spørsmål og skrive spørringer. Alle skrive spørringer vil bli replikert til slave server, og etter replikert, slave server råde hovedserveren at alle data er mottatt og oppdatert. La oss sette her ip.
    192.168.1.31 Slave serveren: som navnet sier, dette vil serveren være vår backup server. Hvis hovedserveren svikter, setter vi denne serveren som den viktigste. La oss sette her ip. 192.168.33
    Så, i hovedserveren, må du endre denne parameterne i postgressql.conf:
     vim /var/lib/pgsql/9.3/data/postgresql.conf 
     wal_level = hot_standbymax_wal_senders = 1synchronous_standby_names = 'postgresql2'wal_keep_segments = 100The linje max_wal_senders er antall slave servere, i dette tilfellet en server 
    på konsollen, type:.
     su postgres 
     psql 
     opprette bruker replicador replikering; 
     \\ du + (for se om replicador brukeren ble opprettet med høyre regelen) 
     exit 
     /etc/init.d/postgresql-9.3 restartIn den pg_hba.conf : 
     vim /var/lib/pgsql/9.3/data/pg_hba.confPut på slutten av filen. 
     host replikering replicador 192.168.1.33/32 trustSave og exit 
    Restart postgresql tjeneste
     /etc/init.d/postgresql-9.3 restartNow, på slave server. 
    Stopp postgresql serveren:
     tjenesten postgresql-9.3 stop 
     cd /var /lib /PgSQL /9.3 /data /
     rm -rf * 
     su Postgres 
     pg_basebackup -D /var/lib/pgsql/9.3/data -h 192.168.1.31 -U replicador 
     lsas du ser, alle data ble kopiert fra hovedtjeneren 
    I denne katalogen, få recovery.conf fil med dette innholdet.
     standby_mode = ontrigger_file = '/tmp /promotedb'primary_conninfo =' host = 192.168.1.31 port = 5432 user = replicador APPLICATION_NAME = postgresql2'We kan aktivere slave serveren til å akseptere lese spørsmål, på posgresql.conf filen finne en linje: 
     hot_standby = offand Type: 
    < pre> hot_standby = Påog nå, kjør:
     /usr/pgsql-9.3/bin/pg_ctl -D /var/lib/pgsql/9.3/data/start /etc /init.d /postgresql-9.3 startNow alle data satt inn /slettet på hovedserveren, vil bli oppdatert til slave server 
    Det finnes noen verktøy for å se om replikering fungerer.
    På linux terminal, skriv (på hovedserveren):
     ps aux | grep postgresql1The produksjonen vil være noe: 
     [root @ postgresql1 ~] # ps aux | GREP postgres 
     Postgres 22 252 0,0 0,4 228 244 16 168? S 10:04 0:00 /usr/pgsql-9.3/bin/postmaster -p 5432 -D /var/lib/pgsql/9.3/datapostgres 22 254 0,0 0,0 178 316 1196? Ss 10:04 00:00 postgres: logger prosessen Postgres 22 256 0,0 0,0 228 244 2112? Ss 10:04 00:00 postgres: checkpointer prosessen Postgres 22 257 0,0 0,0 228 244 1632? Ss 10:04 00:00 postgres: forfatter prosessen Postgres 22 258 0,0 0,0 228 244 1388? Ss 10:04 0:00 postgres: wal forfatter prosessen Postgres 22 259 0,0 0,0 229 088 2596? Ss 10:04 0:00 postgres: autovacuum launcher prosessen Postgres 22260 0,0 0,0 180 692 1504? Ss 10:04 0:00 postgres: statistikk samler prosessen Postgres 22 705 0,3 0,0 231 388 3724? Ss 10:21 0:00 postgres: wal avsender prosessen replicador 192.168.1.33 (49730) streaming 3 /85000208root 22733 0.0 0.0 103 260 828 pts /0 S + 10:22 00:00 grep postgresThe wal avsender prosessen er her 
    On! linux terminal, skriv (på slave server):
     [root @ postgresql2 data] # ps aux | GREP postgres 
     Postgres 15909 0,0 0,4 228 252 16 124 pts /0 S 10:21 0:00 /usr/pgsql-9.3/bin/postgres -D /var/lib/pgsql/9.3/datapostgres 15910 0,0 0,0 178 324 1204? Ss 10:21 00:00 postgres: logger prosessen Postgres 15 911 0,0 0,0 228 332 2 060? Ss 10:21 0:00 postgres: oppstartsprosessen utvinne 000000010000000300000085postgres 15912 0.2 0.1 236 156 3924? Ss 10:21 0:00 postgres: wal mottaker prosess streaming 3 /85000208postgres 15 913 0,0 0,0 228 252 1 432? Ss 10:21 00:00 postgres: checkpointer prosessen Postgres 15 914 0,0 0,0 228 252 1 628? Ss 10:21 00:00 postgres: forfatter prosessen root 16032 0.0 0.0 103 260 828 pts /0 S + 10:23 00:00 grep postgresThe wal mottaker prosessen er her 
    På psql vi har et syn som er svært nyttig (! på hovedserveren):
     psql -U postgres 
     \\ x 
     table_pg_stat_replication; 
     postgres = # \\ x 
     postgres = # tabellen pg_stat_replication; 
     - [RECORD en ] ---- + ----------------------------- pid | 22705usesysid | 278007usename | replicadorapplication_name | postgresql2client_addr | 192.168.1.33client_hostname | 192.168.1.33client_port | 49730backend_start | 2014-04-08 10: 21: 28.28756-03state | streamingsent_location | 3 /85000348write_location | 3 /85000348flush_location | 3 /85000348replay_location | 3 /85000348sync_priority | 1sync_state | syncOn slave: 
     psql -U postgres 
     velg pg_is_in_recovery (); Denne kommandoen returnerer sant (t) eller usann (f) 
    Og vi har enda en kommando som viser forsinkelsen replikering. status på slave:
     psql -U postgres 
     velg nå () - pg_last_xact_replay_timestamp () AS replication_delay; 
     replication_delay ----------------- --00: 00: 14,937037 (1 p) Dette er tiden som slave serveren ble mottatt den siste stream fra master. I høy tilslutning, er denne gangen svært lite 
    Det er det
    Om forfatteren:..
    Dette er en gjest innlegg skrevet av Éder Pereira fra Brasil. Han er en Linux Administrator, og Network Administrator, og også en DBA PostgreSQL /mysql, sertifisert LPI ID LPI000301602. For eventuelle spørsmål ta kontakt med forfatteren. [email protected]