Soluzzjoni tal-problemi ta’ patroni¶
Informazzjoni
Il-proċedura kollha għandha titwettaq bħala root. Biex tgħolli l-privileġġi tiegħek għal root, tista’ tuża l-kmand su -.
Twissija
Biex issegwi din il-proċedura, trid tkun wettaqt il-konfigurazzjonijiet addizzjonali għal patronictl.
patroni huwa orkestratur ta’ disponibbiltà għolja għal PostgreSQL. Jawtomatizza l-ġestjoni ta’ cluster PostgreSQL billi jieħu ħsieb l-elezzjoni tan-nodu leader, il-failover u s-sinkronizzazzjoni tan-nodi meta jseħħ inċident.
Fil-cluster PostgreSQL ta’ CyberElements Bastion, patroni jiddependi fuq etcd biex jaħżen u jaqsam l-istat tal-cluster. Jissorvelja kontinwament l-istat tal-istanzi PostgreSQL u jiżgura li nodu wieħed biss ikun magħżul bħala leader fi kwalunkwe ħin partikolari.
Jekk in-nodu leader ifalli, patroni jorkestra awtomatikament elezzjoni permezz tal-maħżen tal-konfigurazzjoni distribwit etcd, biex jippromwovi leader ġdid u jżomm is-servizz disponibbli.
Għalhekk patroni jiddependi fuq etcd, u ma jistax jaħdem sew jekk etcd ma jkunx qed jaħdem.
Diżinkronizzazzjoni ta’ nodu¶
Nodu tal-cluster PostgreSQL xi drabi jista’ joħroġ mis-sinkronizzazzjoni. Dan jidher fir-riżultat tal-kmand patronictl -c /etc/patroni/config.yml topology:
1 2 3 4 5 6 7 | |
Fil-kolonna TL, in-nodu PSQL_1 m’għadux fuq l-istess TL bħall-oħrajn. Biex il-cluster jaħdem, in-nodi kollha għandhom ikunu fuq l-istess TL: differenza tindika li wieħed min-nodi mhuwiex sinkronizzat.
F’dan il-każ, ħaddem il-kmand li ġej fuq in-nodu li mhuwiex sinkronizzat:
1 | |
Fejn <MEMBER_PATRONI> huwa l-isem tan-nodu li mhuwiex sinkronizzat, kif jidher fil-kolonna Member tat-topoloġija.
Jekk diversi nodi mhumiex sinkronizzati, erġa’ ssinkronizza dawk kollha li mhumiex fuq l-ogħla TL.
Twissija
Jekk in-nodu li mhuwiex sinkronizzat huwa n-nodu Leader, tista’ tintilef id-data. Dan qatt m’għandu jiġri: in-nodu Leader mistenni jkun fuq l-ogħla TL.
Eżempju
Fir-riżultat tal-kmand patronictl -c /etc/patroni/config.yml topology ta’ hawn fuq, in-nodu PSQL_1 mhuwiex sinkronizzat. Biex terġa’ tissinkronizzah, uża l-kmand li ġej:
1 | |
Logs¶
Il-proċedura kollha hija bbażata fuq ir-reġistri tas-servizz patroni, li tiksbu bil-kmand ta’ hawn taħt:
1 | |
Parir
Biex issegwi r-reġistri f’ħin reali, żid l-għażla -f mal-kmand:
1 | |
Informazzjoni
Ir-reġistri ta’ patroni huma disponibbli wkoll fil-fajl /var/log/syslog.
Spjegazzjoni tar-reġistri tal-iżbalji¶
ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)
Meta etcd ma jkunx qed jaħdem jew ma jkunx jista’ jintlaħaq, patroni jista’ jikteb l-iżbalji li ġejjin:
1 2 3 4 5 6 7 8 | |
<PSQL_NODE_NAME>-
Isem wieħed min-nodi tal-cluster PostgreSQL.
F’dan il-każ, għandek issolvi l-problemi ta’ etcd.