úvod

Ukladanie údajov na jednom mieste je zvyčajne riskantné. Zvyčajne sa odporúča, aby ste mali k dispozícii plán, ktorý zabezpečí, že sa zotavíte z katastrofy ihneď po jej zasiahnutí.


Jedným z dobrých spôsobov, ako zabezpečiť efektívny plán obnovy po katastrofe, je mať rovnaké údaje na viacerých serveroch a udržiavať ich synchronizované. Databázové servery zvyčajne spolupracujú pri prevzatí v prípade zlyhania primárneho / hlavného servera, čím sa vytvára vysoká dostupnosť. Niekoľko databázových serverov môže tiež obsluhovať rovnaké dáta súčasne, toto sa nazýva vyrovnávanie záťaže.

V tejto príručke vy’Naučím sa, ako nakonfigurovať replikáciu master-slave, kde jeden databázový server bude mať udelené oprávnenie na čítanie a zápis, zatiaľ čo druhý bude mať oprávnenie iba na čítanie..

Predtým ako začneš

  • 2 Virtuálne súkromné ​​servery Ubuntu 18.04 (VPS) alebo dedikované servery s užívateľom bez oprávnenia root, ktorý má oprávnenie sudo. Jeden bude fungovať ako master, zatiaľ čo druhý ako záložný / slave server.
  • PostgreSQL nainštalovaný a nakonfigurovaný na oboch serveroch. Ako nainštalovať databázový server PostgreSQL na Ubuntu 18.04 sa dozviete tu

kroky

Najprv musíte zmeniť adresu na počúvanie na konfiguračnej stránke PostgreSQL. Server musí byť schopný počúvať všetky porty.

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Osobitná poznámka: Verzia postgresql môže byť iná, a preto sa vaša cesta môže líšiť od verzie vyššie.

Vyhľadajte slovo listen_adreses vo svojom editore alebo nastavte čísla a prejdite nadol na riadok 59.

Zrušte označenie riadku a zmeňte názov localhost na *, čo umožňuje serveru počúvať všetky adresy IP. Musí vyzerať ako nasledujúci výňatok.


#——————————————————————————
# PRIPOJENIA A POVOLENIE
#——————————————————————————

# – Nastavenia pripojenia –

listen_addresses = ‘*’ # # na ktorej IP adrese (ech) si chcete vypočuť;
# zoznam adries oddelených čiarkami;
# predvolené ‘localhost’; použite ‘*’ pre všetkých

Zatvorte editor pri ukladaní zmien a znova načítajte postgresql službu, aby sa prispôsobili vykonaným zmenám

$ sudo systemctl reštartujte postgresql

Vytvorte vzorovú databázu

Na účely testu replikácie vytvorte vzorovú tabuľku s názvom znaky.

Prihláste sa do svojej postgresovej databázy

$ sudo -i -u postgres psql postgres
# CREATETABLEcharacters (fname text, serial_id serial, datetimestamp, description text);

Teraz vložte vzorové údaje do svojej novo vytvorenej tabuľky.

# INSERTINTO znaky (meno, dátum, popis) HODNOTY (‘Griffin’, aktuálny dátum, ‘Toto je ukážkový znak’);
INSERT01

Konfigurácia primárneho servera

PostgreSQL vyžaduje rolu / používateľa so špeciálnymi oprávneniami na účely replikácie.

$ sudo -u postgres createuser -U postgres replicationuser -P -c 5 – replikácia

Špeciálna poznámka: Viac informácií o možnostiach príkazu createuser nájdete tu. V produkčnom prostredí sa tiež uistite, že heslo používateľa replikátora je DÔLEŽITÉ, aby ste predišli udalostiam, ako je hrubé vynucovanie alebo ľahké uhádnutie hesla..

Potom musíte vytvoriť archívny adresár, ktorý bude podadresárom vášho klastra’s predvolený hlavný adresár.

$ sudo mkdir -p /var/lib/postgresql/9.5/main/mnt/server/archivedir

Nakonfigurujte pg_hba.súbor conf

$ sudo vim /etc/postgresql/9.5/main/pg_hba.conf

Vyhľadajte sekciu replikácie a potom pridajte nasledujúcu položku pre používateľa replikácie a postupujte nasledovne. Nezabudnite vymeniť IP adresu podriadeného servera.

# Povoliť replikačné pripojenia
replikátor hostiteľa replikácie 192.168.56.20/24 md5

Ukončite ukladanie zmien.

Upravte postgresql.conffile

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Upravte nasledujúce nastavenia. Nezabudnite zrušiť každé nastavenie, ktoré upravíte.

listen_addresses = ‘*’
wal_level = hot_standby
archive_mode = on
Archive_commend = ‘test! -f mnt / server / archivedir /% f && cp% p mnt / server / archivedir /% f ‘
max_wal_senders = 3

Ukončite ukladanie zmien a reštartujte službu postgresql

$ sudo systemctl reštartujte postgresql

Konfigurácia servera slave

Najprv zastavte službu postgresql na vašom slave serveri.

$ sudo systemctl stop postgresql

Premenujte hlavný priečinok v adresári postgresql na niečo iné od získania zálohy’t nahradiť existujúce súbory v rovnakom priečinku.

$ sudo mv /var/lib/postgresql/9.3/main /var/lib/postgresql/9.3/main_old

Spustite obslužný program pg_basebackup. Vymeňte ip za IP adresu hlavného servera.

$ sudo -u postgres pg_basebackup -h 192.168.56.20 -D /var/lib/postgresql/9.5/main -U replicationuser -v -P –xlog-method = stream

Po zobrazení výzvy zadajte heslo replikátora, ktoré ste nastavili na hlavnom serveri.

Upravte postgresql.súbor conf

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

Vyhľadajte možnosť nastavenia hot_standby a zmeňte ju na na.

Ukončite ukladanie zmien.

Teraz musíte zadať nastavenia obnovenia, ktoré sa použijú v prípade obnovenia údajov.

$ sudo cp -avr /usr/share/postgresql/9.5/recovery.conf.sample /var/lib/postgresql/9.5/main/recovery.conf

Upravte súbor na obnovenie

$ sudo vim /var/lib/postgresql/9.5/main/recovery.conf

Vyhľadajte pohotovostný režim a zmeňte možnosť na na na povolenie servera zostať v pohotovostnom režime.

Vyhľadajte primárny_conninfo a pridajte podrobnosti hlavného servera

main_conninfo = ‘host = 192.168.56.20 port = 5432 user = replicationuser [email protected]%’

Ukončite ukladanie zmien.

Spustite službu postgresql na vašom podriadenom serveri

$ sudo systemctl start postgresql

test replikácie

V tabuľke, ktorú ste vytvorili, prejdite na hlavný server. Pridajte nový záznam.

$ sudo -u postgres psql postgres

# INSERTINTOcharacter (meno, dátum, popis) HODNOTY (‘Sanchez’, aktuálny dátum, ‘Toto je postava rodinného chlapa’);
INSERT01

Vráťte sa späť na váš otrokový server v databáze Postgres a pozrite si údaje

$ sudo -u postgres psql postgres
# SELECT * FROMcharacter
fname | character_id | dátum | popis
———+————–+———————+—————————-
Griffin | 1 | 2018-10-22 00:00:00 | Toto je ukážkový znak
Sanchez | 2 2018-10-2200: 00: 00 | Rick a Morty charakter
(2 riadky)

záver

Ak ste boli schopní zobraziť údaje na vašom podriadenom serveri po jeho vložení do hlavného servera, znamená to, že ste úspešne nastavili replikáciu PostgreSQL master-slave..

Existujú dva spôsoby, ako vyvolať zlyhanie, keď hlavný server náhle prestal fungovať; môžete použiť príkaz pg_ctl alebo môžete nastaviť umiestnenie spúšťacieho súboru na vašom podriadenom serveri’s /etc/postgresql/9.5/main/postgresql.conf. V súbore jednoducho vyhľadajte a odznačte trigger_file = ‘/tmp/postgresql.trigger.5432’line.

Pozrite sa na tieto top 3 najlepšie služby webhostingu

FastComet

Vyvolávacia cena:
$ 2,95


Spoľahlivosť
9.7


stanovenie ceny
9.5


Užívatelsky prívetivý
9.7


podpora
9.7


Vlastnosti
9.6

Prečítajte si recenzie

Navštívte FastComet

Hosting A2

Vyvolávacia cena:
$ 3,92


Spoľahlivosť
9.3


stanovenie ceny
9.0


Užívatelsky prívetivý
9.3


podpora
9.3


Vlastnosti
9.3

Prečítajte si recenzie

Navštívte A2 Hosting

ChemiCloud

Vyvolávacia cena:
$ 2,76


Spoľahlivosť
10


stanovenie ceny
9.9


Užívatelsky prívetivý
9.9


podpora
10


Vlastnosti
9.9

Prečítajte si recenzie

Navštívte ChemiCloud

Súvisiace články s návodmi

  • Ako vytvoriť vysokú dostupnosť pomocou replikácie MySQL na serveri Ubuntu 18.04 VPS alebo na vyhradenom serveri
    stredná
  • Ako zabezpečiť phpMyAdmin na Ubuntu 18.04 VPS alebo na vyhradenom serveri
    stredná
  • Ako nainštalovať MYSQL 8.0 a vytvoriť databázu na Ubuntu 18.04 Linux VPS
    stredná
  • Ako zálohovať databázu MySQL na serveri Ubuntu 18.04 VPS alebo na vyhradenom serveri
    stredná
  • Ako nainštalovať balík LLMP na server Ubuntu 18.04 VPS alebo vyhradený server
    stredná
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me