Notizie sul gioco Tech-Net

Sistema di database: Replica PostgreSQL su Ubuntu 16.04


Sistema di database PostgreSQL

PostgreSQL è un avanzato sistema open source di gestione dei database relazionale (o ORDBMS). È un sistema di database estendibile e altamente scalabile, il che significa che può gestire carichi che vanno dalle singole applicazioni macchina ai servizi Web aziendali con molti utenti simultanei. PostgreSQL è transazionale e conforme ACID (Atomicità, Consistenza, Isolamento, Durabilità).

Supporta gran parte dello standard SQL e offre molte funzionalità tra cui:

  • Query complesse
  • Chiavi esterne
  • Trigger
  • Viste aggiornabili
  • Integrità transazionale
  • Controllo della concorrenza multiversione

Come detto in precedenza, il sistema di database PostgreSQL può essere esteso dai suoi utenti. Ci sono diversi modi per farlo, come aggiungere nuove funzioni, operatori, tipi di dati, metodi di indice, lingue procedurali, Etc.

È sviluppato dal gruppo di sviluppo globale PostgreSQL e rilasciato secondo i termini del Licenza PostgreSQL.

PostgreSQL offre molti modi per replicare un database. in questo tutorial configureremo la replica Master / Slave, che è il processo di sincronizzazione dei dati tra due database mediante copia from un database su un server (il master) su uno su un altro server (lo slave).

Questa configurazione verrà eseguita su un server con Ubuntu 16.04.

Prerequisiti

PostgreSQL 9.6 installato sui server 16.04 di Ubuntu

Configura UFW

UFW (o Uncomplicated Firewall) è uno strumento per gestire il firewall basato su iptables su sistemi Ubuntu. Installalo (su entrambi i server) Attraverso adatto eseguendo:

# apt-get install -y ufw

Successivamente, aggiungi il servizio PostgreSQL e SSH al firewall. Per fare ciò, eseguire:

# ufw consenti a ssh # ufw di consentire postgresql

Abilita il firewall:

# ufw enable

Configurare il server master PostgreSQL

Il server master avrà le autorizzazioni di lettura e scrittura sul database e sarà in grado di eseguire lo streaming dei dati sul server slave.

Con un editor di testo, modifica il file di configurazione principale di PostgreSQL, che è /etc/postgresql/9.6/main/postgresql.conf:

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

Decommentare il listen_addresses linea e modifica aggiungendo l'indirizzo IP del server master:

listen_addresses = 'master_server_IP_address'

Quindi, rimuovere il commento dal wal_level linea che cambia il suo valore:

wal_level = hot_standby

Per utilizzare la sincronizzazione locale per il livello di sincronizzazione, decommentare e modificare la riga seguente:

synchronous_commit = locale

Stiamo utilizzando due server, quindi decommentiamo e modificiamo le due linee come segue:

max_wal_senders = 2
wal_keep_segments = 10

Salva e chiudi il file.

Modificare il pg_hba.conf file per la configurazione di autenticazione.

# $ EDITOR /etc/postgresql/9.6/main/pg_hba.conf
Incolla la seguente configurazione: # Replica di replica host Localhost 127.0.0.1 / 32 md5 # Master PostgreSQL Replica di host indirizzo IP replica indirizzo_IP master_X / 32 md5 # PostgreSQL SLave replica indirizzo IP replica host slave_IP_address / 32 md5

Salva, esci e riavvia PostgreSQL:

# systemctl restart postgresql

Creare un utente per la replica

Creare un nuovo utente PostgreSQL per il processo di replica. Accedi al Postgres utente e avvia la shell di PostgreSQL:

# su - postgres $ psql

Crea un nuovo utente:

postgres = # CREA UTENTE replica REPLICAZIONE ACCEDI ALLA PASSWORD CRIPTATA 'usr_strong_pwd';

Chiudi la shell.

Questo conclude la configurazione del server master.

Configurazione del server slave

Il server slave non avrà permessi di scrittura sul database, poiché la sua unica funzione è accettare lo streaming dal master. Quindi avrà solo i permessi di lettura.

Per prima cosa, interrompe il servizio PostgreSQL:

# systemctl stop postgresql

Modifica il file di configurazione principale di PostgreSQL:

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

In questo file, decommentare il listen_addresses linea e cambiare il suo valore:.

listen_addresses = 'slave_IP_address'

Quindi, rimuovere il commento dal wal_level linea e cambiare come segue:

wal_level = hot_standby

Come nelle impostazioni principali, decommentare il synchronous_commit linea per usare la sincronizzazione locale.

synchronous_commit = locale

Anche come nel master, decommentare e modificare le seguenti due righe:

max_wal_senders = 2
wal_keep_segments = 10

permettere hot_standby per il server slave decommentando la riga seguente e modificandone il valore:

hot_standby = on

Salva ed esci.

Copia dati da Master a Slave

Per sincronizzare dal server master al server slave, la directory principale di PostgreSQL sullo slave deve essere sostituita con la directory principale dal master. Nel server slave, accedi al Postgres utente:

# su - postgres

Effettua un backup della directory dei dati effettiva:

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

Crea un nuovo principale directory:

$ mkdir main /

Cambia permessi:

$ chmod 700 principale

A questo punto, copiare la directory principale dal server master al server slave usando pg_basebackup:

# pg_basebackup -h master_IP_address -U replica -D / var / lib / postgresql / 9.6 / principale -P --xlog

Una volta completato il trasferimento, nel principale directory creane una nuova recovery.conf file e incollare il seguente contenuto:

standby_mode = 'on' primary_conninfo = 'host = 10.0.15.10 port = 5432 utente = replica password = usr_strong_pwd' trigger_file = '/tmp/postgresql.trigger.5432'

Salva, esci e modifica le autorizzazioni per questo file:

# chmod 600 recovery.conf

Avvia PostgreSQL:

# systemctl avvia postgresql

Questo conclude la configurazione del server slave.

Conclusione

Abbiamo visto come configurare la replica master / slave di PostgreSQL, utilizzando due server che eseguono Ubuntu 16.04. Questa è solo una delle molte funzionalità di replica fornite da questo sistema di database avanzato e completamente open source.

Il post Sistema di database: Replica PostgreSQL su Ubuntu 16.04 apparve prima Unixmen.

post correlati

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.

Torna a pulsante in alto