Yadda Ake Sanya PostgreSQL 12 Sakewar Amfani a cikin CentOS 8


Mahimmin bayanan PostgreSQL yana tallafawa hanyoyin samarda abubuwa da yawa don gina wadatattun abubuwa, masu iya daidaitawa, aikace-aikace masu haƙuri, ɗayansu shine Jigilar Rubuta-Gaba (WAL). Wannan maganin yana ba da damar aiwatar da uwar garken jiran aiki ta amfani da jigilar fayil ɗin jigilar fayiloli ko gudana gudana, ko kuma inda zai yiwu, haɗuwa da duka hanyoyin.

Tare da sake gudanawa, an saita sabar mai jiran aiki (replication bawa) don haɗawa zuwa uwar garken master/firamare, wanda ke watsa labaran WAL zuwa jiran aiki yayin da aka samar dasu, ba tare da jiran fayil ɗin WAL ba.

Ta hanyar tsoho, maimaita gudana shine asynchronous inda aka rubuta bayanai zuwa uwar garken jiran aiki bayan anyi ma'amala akan sabar farko. Wannan yana nufin cewa akwai ɗan jinkiri tsakanin aiwatar da ma'amala a cikin sabar uwar garke kuma canje-canje suna bayyane a cikin sabar jiran aiki. Downaya daga cikin mahimmancin wannan hanyar ita ce idan har babban uwar garken ya faɗi, duk wata ma'amala da ba a sata ba za a sake yin ta ba kuma wannan na iya haifar da asarar bayanai

Wannan jagorar yana nuna yadda za'a saita Postgresql 12 master-jiran aiki yawo kwafi akan CentOS 8. Zamuyi amfani da\"replication slots" don jiran aiki azaman mafita don kaucewa uwar garken uwar garken daga sake amfani da tsofaffin sassan WAL kafin jiran aiki ya karbe su.

Lura cewa idan aka kwatanta da sauran hanyoyin, rarar takaddama tana riƙe kawai adadin sassan da aka sani da buƙatarsu.

Wannan jagorar yana ɗauka cewa an haɗa ku da ubangijin ku da kuma sabobin bayanan jiran aiki a matsayin tushen ta hanyar SSH (yi amfani da umarnin Sudo inda ya cancanta idan an haɗa ku azaman mai amfani na yau da kullun tare da haƙƙin gudanarwa):

Postgresql master database server: 		10.20.20.9
Postgresql standby database server:		10.20.20.8

Dukansu sabobin bayanan dole ne su sanya Postgresql 12, in ba haka ba, duba: Yadda ake Shigar PostgreSQL da pgAdmin a cikin CentOS 8.

Lura: PostgreSQL 12 ya zo tare da manyan canje-canje don aiwatar da kwazo da daidaitawa kamar maye gurbin recovery.conf da sauya sigogin recovery.conf zuwa sigogin daidaitaccen yanayin PostgreSQL na yau da kullun, yana sauƙaƙa sauƙaƙe don haɗa tarin.

Mataki 1: Harhadawa cikin PostgreSQL Master/Primary Database Server

1. A kan sabar uwar garke, sauya zuwa tsarin tsarin postgres kuma saita adireshin IP (es) wanda uwar garken uwar garke zai saurara don haɗi daga abokan ciniki.

A wannan halin, zamuyi amfani da * ma'ana duka.

# su - postgres
$ psql -c "ALTER SYSTEM SET listen_addresses TO '*';"

Dokar ALTER SET SQL umarni ne mai ƙarfi don canza sigogin daidaitawar sabar, kai tsaye tare da tambayar SQL. An adana abubuwan daidaitawa a cikin fayil ɗin postgresql.conf.auto wanda yake kan asalin jakar bayanai (misali/var/lib/pgsql/12/data /) kuma karanta ƙari ga waɗanda aka adana a cikin postgresql.conf. Amma daidaitawa a cikin tsohon ya fifita waɗanda ke na baya da sauran fayiloli masu alaƙa.

2. Sannan ƙirƙirar rawar maimaitawa wanda za'a yi amfani dashi don haɗi daga uwar garken jiran aiki zuwa babban sabar, ta amfani da shirin mai ƙirƙira. A cikin umarni mai zuwa, tutar -P ta nemi lambar wucewa don sabon rawar kuma -e suna maimaita umarnin da mai kirkirar ke samarwa da aikawa zuwa sabar bayanan.

# su – postgres
$ createuser --replication -P -e replicator
$ exit

3. Daga nan saika shigar da shigowar mai zuwa a karshen /var/lib/pgsql/12/data/pg_hba.conf fayil din ingantaccen kwastomomi tare da filin ajiyar bayanan da aka saita domin yin kwatancen kamar yadda aka nuna a hoton hoton

host    replication     replicator      10.20.20.8/24     md5

4. Yanzu sake kunna Postgres12 sabis ta amfani da bin tsarin systemctl don amfani da canje-canje.

# systemctl restart postgresql-12.service

5. Na gaba, idan kuna da sabis ɗin kashe gobara da ke gudana, kuna buƙatar ƙara sabis ɗin Postgresql a cikin daidaitawar wuta don ba da damar buƙatu daga uwar garken jiran aiki zuwa ga maigidan.

# firewall-cmd --add-service=postgresql --permanent
# firewall-cmd --reload

Mataki 2: Yin Backuparin Ajiyayyen zuwa Bootstrap Mai jiran Jiran

6. Na gaba, kana buƙatar yin tushen tushe na babban uwar garken daga uwar garken jiran aiki; wannan yana taimaka wa bootstrap uwar garken jiran aiki. Kuna buƙatar dakatar da sabis na postgresql 12 akan sabar jiran aiki, canza zuwa asusun mai amfani na postgres, ajiyar bayanan bayanai (/ var/lib/pgsql/12/data /), sannan share duk abin da ke ƙarƙashin sa kamar yadda aka nuna, kafin ɗaukar tushe wariyar ajiya

# systemctl stop postgresql-12.service
# su - postgres
$ cp -R /var/lib/pgsql/12/data /var/lib/pgsql/12/data_orig
$ rm -rf /var/lib/pgsql/12/data/*

7. Sannan kayi amfani da kayan aikin pg_basebackup dan daukar bashin tushe tare da hakkin mallaka (mai amfani da tsarin data wato Postgres, a cikin asusun mai amfani da Postgres) kuma tare da izinin da ya dace.

A cikin umarnin mai zuwa, zaɓi:

  • -h - ya ƙayyade masaukin wanda shine babban uwar garken.
  • -D - yana ƙayyade kundin bayanan.
  • -U - yana ƙayyade mai amfani da haɗin.
  • -P - yana ba da rahoton ci gaba.
  • -v - yana ba da damar yanayin magana.
  • -R - yana ba da damar ƙirƙirar saitunan dawo da abubuwa: Creatirƙira fayil na jiran aiki da kuma sanya saitunan haɗi zuwa postgresql.auto.conf ƙarƙashin kundin bayanai.
  • -X - ana amfani dashi don haɗawa da fayilolin rubutu na gaba da ake buƙata (fayilolin WAL) a cikin madadin. Ofimar rafi tana nufin yawo da WAL yayin da aka ƙirƙiri madadin.
  • -C - yana ba da damar ƙirƙirar maɓallin maimaitawa wanda aka zaɓa ta zaɓin -S kafin fara ajiyar.
  • -S - yana ƙayyade sunan rukunin maimaitawa.

$ pg_basebackup -h 10.20.20.9 -D /var/lib/pgsql/12/data -U replicator -P -v  -R -X stream -C -S pgstandby1
$ exit

8. Lokacin da aka yi tsari na adanawa, sabon kundin adireshin bayanai a kan sabar jiran aiki ya kamata ya zama kamar a cikin sikirin. An ƙirƙiri sigina na jiran aiki kuma an haɗa saitunan haɗin zuwa postgresql.auto.conf. Kuna iya lissafa abubuwan da ke ciki ta amfani da umarnin ls.

# ls -l /var/lib/pgsql/12/data/

Wani bawan da zai maimaita zai yi aiki a cikin yanayin "" Jiran Jiran Zafi "idan an saita ma'aunin hot_standby zuwa (ƙimar tsoho) a cikin postgresql.conf kuma akwai fayil ɗin jiran aiki. Akwai a cikin kundin bayanan.

9. Yanzu dawo kan uwar garken uwar garke, yakamata ka sami damar ganin rafin maimaitawa wanda ake kira pgstandby1 lokacin da ka bude pg_replication_slots duba kamar haka.

# su - postgres
$ psql -c "SELECT * FROM pg_replication_slots;"
$ exit

10. Don duba saitunan haɗin da aka saka a cikin fayil ɗin postgresql.auto.conf, yi amfani da umarnin cat.

# cat /var/lib/pgsql/12/data/postgresql.auto.conf

11. Yanzu fara al'amuran al'ada na al'ada akan sabar jiran aiki ta fara aikin PostgreSQL kamar haka.

# systemctl start postgresql-12

Mataki na 3: Gwajin PostgreSQL Sake Saukar Ruwa

12. Da zarar an sami nasarar haɗin tsakanin mai gida da jiran aiki, za ku ga tsarin karɓar WAL a cikin sabar jiran aiki tare da yanayin yawo, za ku iya bincika wannan ta amfani da pg_stat_wal_receiver view.

$ psql -c "\x" -c "SELECT * FROM pg_stat_wal_receiver;"

da kuma tsarin aikawa na WAL mai dacewa a cikin sabar/uwar garken farko tare da yanayin gudanawa da daidaitawa_state na async, zaku iya duba wannan pg_stat_replication pg_stat_replication view.

$ psql -c "\x" -c "SELECT * FROM pg_stat_replication;"

Daga hoton da ke sama, maimaitawar gudana ba ta da kyau. A sashe na gaba, zamu nuna yadda za a iya ba da damar aiki tare ba da dama ba.

13. Yanzu gwada idan kwafin yana aiki da kyau ta ƙirƙirar ɗakunan bayanan gwaji a cikin sabar uwar garke kuma bincika idan akwai a cikin sabar jiran aiki. [master] postgres = # KIRAN DATABASE tecmint;
[jiran aiki] postgres = #\l

Zabi: Bayar Da Amfani Daidaitawa Tare

14. Yin aiki tare yana ba da damar aiwatar da ma'amala (ko rubuta bayanai) zuwa tushen tushen farko da jiran aiki/kwafi lokaci guda. Hakan kawai yana tabbatar da cewa ma'amala tana cin nasara yayin da duk canje-canjen da aka yi ta hanyar ma'amala an canza su zuwa ɗaya ko sama da sabobin aiki tare na sabobin aiki.

Don ba da damar yin aiki tare, dole ne a saita synchronous_commit ɗin a kunne (wanda shine ƙimar tsoho, saboda haka ba a buƙatar kowane canji) kuma ku ma kuna buƙatar saitin synchronous_standby_names zuwa ƙimar mara fanko. Don wannan jagorar, za mu saita shi zuwa duka.

$ psql -c "ALTER SYSTEM SET synchronous_standby_names TO  '*';"

15. Sannan saika loda aikin PostgreSQL 12 don amfani da sabbin sauye-sauyen.

# systemctl reload postgresql-12.service

16. Yanzu lokacin da kake tambayar tsarin aikawar WAL akan sabar firamare sau ɗaya, ya kamata ya nuna yanayin yawo da sync_state na aiki tare.

$ psql -c "\x" -c "SELECT * FROM pg_stat_replication;"

Munzo karshen wannan jagorar. Mun nuna yadda za mu kafa PostgreSQL 12 master-jiran aiki na samarda bayanai a cikin CentOS 8. Mun kuma rufe yadda za a iya kunna kwafin aiki tare a cikin tarin tarin bayanan PostgreSQL.

Akwai fa'idodi da yawa na maimaitawa kuma koyaushe zaku iya zaɓar mafita wanda ya dace da yanayin IT ɗinku da/ko takamaiman takamaiman aikace-aikace. Don ƙarin daki-daki, je zuwa Sabis na Jiran Jirgin-Shigowa a cikin takardun PostgreSQL 12.