Come configurare la replica di PostgreSQL Top 10

Come configurare la replica di PostgreSQL Top 10
PostgreSQL è un sistema di gestione del database relazionale open source (RDBMS). È uno dei database più avanzati in circolazione.

In questo articolo, ti mostrerò come impostare la replica di PostgreSQL 11. Iniziamo.

Come funziona la replica in PostgreSQL:

In una configurazione di replica di PostgreSQL, hai 2 tipi di server. IL Maestro server e il Schiavo server.

I record del database del Maestro Il server è duplicato a Schiavo server. Puoi leggere dal Schiavo server utilizzando gli indirizzi IP del Schiavo server. Ma aggiungi nuovi dati solo al Maestro server. I server sono tutti sincronizzati. Quindi se qualcuno dei Maestro Il server fallisce, uno dei server slave può prendere il sopravvento e diventare un nuovo master. È così che PostgreSQL può gestire la richiesta di database senza alcuna interruzione anche se alcuni dei server falliscono in a Maestro/Schiavo configurazione.

Diagramma di rete:

Questo è il diagramma di rete per PostgreSQL Maestro/Schiavo configurazione della replica. Qui ho due server, PG-Master è il Maestro Server PostgreSQL e PG-SLAVE è il Schiavo Server PostgreSQL. Certo, puoi averne di più Schiavo server, ma per motivi di semplicità ne avrò uno Schiavo server.

Mio PG-Master Postgresql Maestro Il server ha l'indirizzo IP 192.168.199.137 e il PG-SLAVE Postgresql Schiavo Il server ha l'indirizzo IP 192.168.199.138. Ricorda questi e apporta le modifiche ove necessario per la configurazione.

Installazione di PostgreSQL:

Per la dimostrazione, sto usando Ubuntu 18.04 Server LTS. Puoi usare qualsiasi distribuzione Linux che desideri. Solo i comandi sono un po 'diversi. È tutto.

È necessario installare PostgreSQL su tutti i server che faranno parte della configurazione della replica. Nel mio caso, i due server PG-Master, E PG-SLAVE.

Ti mostrerò come installare PostgreSQL PG-Master macchina. I passaggi sono gli stessi per il macchine PG-slave anche.

Sul PG-Master server:

Per prima cosa devi aggiungere il repository dei pacchetti PostgreSQL sulla macchina Ubuntu. Per fare ciò, eseguire il seguente comando:

$ echo "deb http: // apt.Postgresql.org/pub/repos/apt/$ (lsb_release -cs) -pgdg main 11 "|
sudo tee/etc/apt/fonti.elenco.d/pgsql.elenco

È necessario aggiungere il repository del pacchetto PostgreSQL.

Ora eseguire il seguente comando per aggiungere la chiave GPG del repository dei pacchetti PostgreSQL:

$ wget --quiet -o -https: // www.Postgresql.Org/Media/Keys/ACCC4CF8.ASC | sudo Apt-Key Aggiungi -

La chiave GPG dovrebbe essere aggiunta.

Ora aggiorna il Apt PACCHE PACKE REPOSIORY Cache con il seguente comando:

$ sudo apt update

IL Apt La cache del repository dei pacchetti deve essere aggiornata.

Ora installa il server di database PostgreSQL con il seguente comando:

Per PostgreSQL 10 (ultimo stabile):

$ sudo apt Installa PostgreSQL-10

Per PostgreSQL 11 (attualmente su Beta):

$ sudo apt Installa PostgreSQL-11

Ora premi y e poi premere continuare.

PostgreSQL dovrebbe essere installato.

Imposta la password per il Postgres utente con il seguente comando:

$ sudo passwd postgres

Ora inserisci la password. Dovrebbe essere impostato.\

Ora ricorda di fare lo stesso con il PG-SLAVE server prima di continuare.

Impostazione del server Master PostgreSQL:

Ora accedi come il Postgres utente:

$ su - Postgres

Ora crea un nuovo utente replica:

$ PSQL -C "Crea limite di connessione di accesso alla replica dell'utente 1 crittografato
Password 'your_password'; "

Ora aperto /etc/postgresql/11/main/pg_hba.conf con nano:

$ nano/etc/postgresql/11/main/pg_hba.conf

Aggiungi la riga seguente alla posizione contrassegnata:

replica della replica dell'host 192.168.199.138/24 MD5

Ora apri il principale file di configurazione PostgreSQL con nano:

$ nano/etc/postgresql/11/main/postgresql.conf

Ora trova e modifica le seguenti impostazioni. Se viene commentata una riga, il rompicapo (rimuove #) se necessario.

ascolt_addresses = 'localhost, 192.168.199.137 '
Wal_Level = replica
max_wal_senders = 10
Wal_keep_segments = 64

Ora riavvia PostgreSQL Server sul tuo PG-Master server:

$ SystemCtl Riavvia PostgreSQL

Configurazione del server slave:

Sul PG-SLAVE Accesso al server AS Postgres utente:

$ su - Postgres

Interrompere il servizio PostgreSQL su PG-SLAVE server:

$ SYSTEMCTL STOP POSTGRESQL

Ora aperto /etc/postgresql/11/main/pg_hba.conf con nano:

$ nano/etc/postgresql/11/main/pg_hba.conf

Aggiungi la riga seguente come hai fatto su PG-Master server:

replica della replica dell'host 192.168.199.137/24 MD5

Ora apri il principale file di configurazione PostgreSQL con nano:

$ nano/etc/postgresql/11/main/postgresql.conf

Ora trova e modifica le seguenti impostazioni. Se viene commentata una riga, il rompicapo (rimuove #) se necessario.

ascolt_addresses = 'localhost, 192.168.199.138 '
Wal_Level = replica
max_wal_senders = 10
Wal_keep_segments = 64
hot_standby = on

Ora vai al tuo data_directory:

$ cd/var/lib/postgresql/11/main

Rimuovi tutto da quella directory:

$ rm -rfv *

Ora copia i dati da PG-Master server a PG-SLAVE server data_directory:

$ pg_basebackup -h 192.168.199.137 -d/var/lib/postgresql/11/main/-p -u
replica--wal-metodo = prese

Digitare la password per il Postgres utente del PG-Master server e premere .

Ora crea un recupero.conf file in data_directory con nano:

$ nano recupero.conf

Ora aggiungi la seguente riga ad essa:

standby_mode = 'on'
Primary_ConnInfo = 'host = 192.168.199.137 porta = 5432 Utente = password di replica = 123 '
trigger_file = '/tmp/masternow'

Avvia PostgreSQL Schiavo server:

$ SystemCtl Avvia PostgreSQL

Testing Replication:

Ora sul PG-Master server, puoi vedere che il Schiavo Viene rilevato il server.

Comando sql per la creazione utenti tavolo:

Crea utenti di tabelle (
Nome varchar (30),
paese varchar (2)
);

Comandi SQL per inserire dati fittizi nel utenti tavolo:

Inserire nei valori degli utenti ("shahriar", "bd");
Inserire nei valori degli utenti ('Shovon', 'BD');
Inserire nei valori degli utenti ("Kelly", "US");
Inserire nei valori degli utenti ('nina', 'in');
Inserire nei valori degli utenti ('kesha', 'ca');

Come puoi vedere, i dati vengono aggiunti correttamente al Maestro server PG-Master:

# \ x Off
# Seleziona * dagli utenti;

Ora dal Schiavo server PG-SLAVE, Accedi alla console PostgreSQL:

$ PSQL

Ora prova a selezionare i dati che abbiamo appena aggiunto:

$ Seleziona * dagli utenti;

Come puoi vedere i dati vengono visualizzati in Schiavo server. Significa che la replicazione funziona perfettamente.

Generare tasti ssh:

Puoi accedere al file Maestro server da Schiavo server e viceversa senza password se si genera e copia i tasti SSH in server opposti. Ciò è utile per scopi di amministrazione.

Ti sto solo mostrando come farlo sul Maestro server. Le procedure sono le stesse.

Generare la chiave SSH sul file Maestro E Schiavo server mentre effettuano l'accesso come Postgres utente.

$ ssh-keygen

Continua a premere . La chiave SSH dovrebbe essere generata.

Dal PG-Master server, copia la tua chiave SSH su PG-SLAVE server:

$ SSH-Copy-ID 192.168.199.138

Dal PG-SLAVE server, copia la tua chiave SSH su PG-Master server:

$ SSH-Copy-ID 192.168.199.137

Digitare e poi premere .

Ora digita la password per il server a cui ti stai connettendo per il Postgres utente e premere .

È così che configura Maestro/Schiavo Replica su PostgreSQL 11. Grazie per aver letto questo articolo.