<div dir="ltr"><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Ciao!</div><div dir="ltr"><br></div><div dir="ltr">@Samuele: sempre in ascolto... anche se partecipo pochissimo alla lista 😇</div><div dir="ltr"><div><br></div></div></div></div>Dal punto di vista della replica, ma anche di altre funzionalità "sistemistiche" (backup ad esempio), PostgreSQL ha da sempre messo a disposizione gli strumenti di base (nella caso della replica WAL, comandi di archiviazione, etc) lasciando la libertà a chi inserisce PostgreSQL nella propria infrastruttura di gestire la cosa in autonomia oppure rivolgendosi a prodotti commerciali sviluppati on top.<div>Questo ha consentito a moltissime aziende o di sviluppare dei prodotti opensource (vedi Patroni o repmgr, barman per il backup) su cui poi fornire supporto oppure di creare delle vere e proprie versioni del database con caratteristiche simili a quelle che citavi per Oracle/SQL Server (vedi ad esempio EnterpriseDB).</div><div><br></div><div>Denis</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno sab 25 mar 2023 alle ore 23:43 Samuele via montellug <<a href="mailto:montellug@montellug.it">montellug@montellug.it</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Visto che si parla di riattivare questa lista, resoconto un po' di <br>
impressioni che ho avuto sta settimana.<br>
Se qualcuno ha voglia di interagine nella discussione ben venga. <br>
Nonostante abbia scritto "lamentazioni" lo stile della mail non sarà <br>
quello di Asbesto (anche se l'esperienza potrebbe sembrare uscita da uno <br>
dei suoi racconti).<br>
Non so se ci sia ancora Denis in ascolto su questa ml ed ha delle <br>
soluzioni per i miei mal di pancia.<br>
<br>
Premetto che in passato ho utilizzato Postgresql in passato in modo <br>
abbastanza semplice, mai in configurazioni in cui gli si tirava il <br>
collo. Diversamente la mia esperienza è stata quasi esclusivamente con <br>
SQL Server.<br>
<br>
Mi è stato chiesto di tirar su un cluster di database. Inizialmente in <br>
modalità master-master, salvo poi convincere il richiedente che non era <br>
il caso. L'unico motore di database in grado di fare questo in modo <br>
serio a quanto ne so dovrebbe essere Oracle, ma non l'ho sperimentato. <br>
Quindi configurazone master-slave. Ho scelto Postgresql perché in ambito <br>
open, è l'unica scelta sensata.<br>
<br>
Vado a vedermi la documentazione su come si mette in piedi il tutto e... <br>
tante belle parole... sembra fare quello che mi serve... gestisce il <br>
travaso in tempo reale del transaction log dal nodo master allo slave... <br>
cerco esempi di configurazione... ma... manca tutta la parte di gestione <br>
del cluster automatizzata.<br>
Cioè bisogna delegarla a strumenti esterni. Ma perché?!? SQL Server <br>
gestisce in modo pulito tutto da solo. Si integra nativamente con WFC. <br>
Non bisogna inventarsi script alla buona.<br>
Nel caso di Postgresql, c'è Percona, repmgr, svariati progetti su github <br>
che sai quando sono nati, ma non sai se e per quanto verranno mantenuti <br>
E SE funzionano realmente o solo nella testa dello sviluppatore (o come <br>
amava dire il Potta: notabug funziona sul mio computer).<br>
Come ca$$o faccio a proporre una soluzione ufficiale e supportata? <br>
(leggesi, se il cluster va in malora e qualcuno si mette alla ricerca di <br>
qualcun altro da mettere a pecorella, poter dimostrare di aver fatto <br>
tutto a regola d'arte e non fare la fine della pecorella).<br>
Scelgo repmgr che mi sembra il più semplice e minimale (meno roba <br>
superflua c'è, meno probabilità c'è che qualcosa si rompa). Anche perché <br>
con Percona ho sentito svariata gente Porconare in passato.<br>
Tiro su il cluster, la documentazione in qualche punto è un po' vaga, ma <br>
parte. Poi provo a fare lo spostamento del master da un nodo all'altro <br>
e... va in errore... e non è che faccia il rollback in automatico <br>
ritornando ad una situazione consistente... no, i due nodi restano <br>
inebetiti. E tra una boia ed un comando, un comando ed una boia, ci <br>
scappa la risincronizzare di brutto della replica pur di venirne fuori. <br>
Dopo alcune ore di rumamento di forum, trovo che un tizio ha risolto <br>
settando un parametro. Che nel frattempo ha cambiato nome ed unità di <br>
misura. Con quello risolvo. Nel frattempo ho testato varie condizioni di <br>
incongruenza tra i nodi del cluster.<br>
E poi devi configurare a mano sudo, e se ci hai RedHat in un modo, se <br>
chi hai Ubuntu in un altro, se hai systemdmerda tra i coglioni in un <br>
altro... e poi aggiungere il PATH per pg_rewind... ecc. ecc.<br>
E comunque l'impressione è di una teiera di porcellana in una savana di <br>
elefanti.<br>
Poi la gestione dell'ip flottante è affidata a keepalived. Ok, <br>
l'equivalente di WFC nel caso di SQL Server. Ma... uno pensa che <br>
keepalived e Postgresql comunichino in modo nativo ed efficiente, magari <br>
usando un qualche plugin di Postgresql per keepalived. No. Keepalived, <br>
ogni 2 secondi (o a seconda del tempo che impostate) fa un fork di una <br>
shell che lancia uno script bash il quale forka prima psql, il quale <br>
apre una nuova connessione verso il db (cosa computazionalmente <br>
onerosa), esegue una query il cui risultato viene sparato in output e <br>
parsato da un grep anch'esso forkato dalla precedente shell. Poi <br>
keepalived guarda se tutto sto circo acrobatico ha generato come <br>
risposta uno zero od un uno. Casso che efficiensa. Quasi quasi scrivo a <br>
Greta lamentando lo spreco di energia per tutta sta roba.<br>
Dico, fare in modo che Postgresql comunichi tramite socket con <br>
keepalived no?<br>
<br>
Boh, alla fine in una giornata ho tirato su tutta la baracca, ma resta <br>
sempre l'impressione che sia tutto in equilibrio precario. Anche perché <br>
potrebbero aggiornare Postgresql e rompere la compatibilità con repmgr, <br>
oppure cambiare l'outupt della query eseguita da keepalive.<br>
<br>
Ora corro a dormire che sta notte riattivano la fottuta ora legale.<br>
<br>
-- <br>
Il messaggio e' stato analizzato alla ricerca di virus o<br>
contenuti pericolosi da MailScanner, ed e'<br>
risultato non infetto.<br>
<br>
_______________________________________________<br>
montellug mailing list<br>
<a href="mailto:montellug@montellug.it" target="_blank">montellug@montellug.it</a><br>
<a href="https://mail.montellug.it/mailman/listinfo/montellug" rel="noreferrer" target="_blank">https://mail.montellug.it/mailman/listinfo/montellug</a><br>
</blockquote></div>
<br />-- 
<br />Il messaggio e' stato analizzato alla ricerca di virus o
<br />contenuti pericolosi da
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, ed e'
<br />risultato non infetto.