{"id":39169,"date":"2019-10-31T22:28:14","date_gmt":"2019-10-31T19:28:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya\/"},"modified":"2019-10-31T22:28:14","modified_gmt":"2019-10-31T19:28:14","slug":"postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya","title":{"rendered":"PostgreSQL in nastavitve skladnosti zapisovanja za vsak posamezen povezavo.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><em>Prevod \u010dlanka je pripravljen posebej za \u0161tudente te\u010daja <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jCX0\/\">\u00abPodatkovne baze\u00bb<\/a><\/noindex>. Ali vas zanima razvoj na tem podro\u010dju? Vabimo vas na <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jCX0\/\">Dan odprtih vrat<\/a><\/noindex>, kjer podrobno predstavljamo program, zna\u010dilnosti spletnega formata, kompetence in karierne mo\u017enosti, ki \u010dakajo diplomante po izobra\u017eevanju.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"PostgreSQL in nastavitve skladnosti zapisovanja za vsak posamezen povezavo.\" src=\"\/wp-content\/uploads\/2019\/10\/e69e30ba059af157f021c9cb33a59f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>PostgreSQL in nastavitve skladnosti zapisovanja za vsak posamezen povezavo.<br \/>\nPri Compose se ukvarjamo z razli\u010dnimi podatkovnimi bazami, prav to nam omogo\u010da, da se podrobneje spoznamo z njihovo funkcionalnostjo in slabostmi. Ko se u\u010dimo imeti radi funkcionalne zna\u010dilnosti novih podatkovnih baz, se v\u010dasih spra\u0161ujemo, kako bi bilo lepo, \u010de bi bile tak\u0161ne funkcije prisotne tudi v bolj zrelih orodjih, s katerimi \u017ee dolgo delamo. Ena od novih funkcij, ki bi jo \u017eeleli videti v PostgreSQL, je bila prilagodljiva doslednost zapisa po povezavi v celotnem klasterju. In kot se je izkazalo, jo \u017ee imamo, in danes \u017eelimo deliti z vami informacije o tem, kako jo lahko uporabite.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h1 id=\"zachem-mne-eto\">Zakaj mi to?<\/h1>\n<p><\/p>\n<p>To, kako mora klaster delovati, je odvisno od va\u0161e aplikacije. Vzemimo za primer aplikacijo za pla\u010devanje ra\u010dunov. Potrebovali boste stoodstotno doslednost v klasterju, zato boste morali omogo\u010diti sinhrone commit-e, da bo va\u0161a podatkovna baza \u010dakala, dokler ne bodo vnesene vse spremembe. Vendar, \u010de je va\u0161a aplikacija hitro razvijajo\u010da se dru\u017ebena omre\u017eja, boste zagotovo raje izbrali hitro odzivnost pred stoodstotno doslednostjo. Da bi to dosegli, lahko uporabite asinhrone commit-e v va\u0161em klasterju.<\/p>\n<p><\/p>\n<h2 id=\"znakomtes-kompromiss\">Spoznajte kompromis<\/h2>\n<p><\/p>\n<p>Morali boste sprejeti kompromis med doslednostjo podatkov in zmogljivostjo. PostgreSQL koraka stran od doslednosti, saj privzeta konfiguracija v tem primeru postane predvidljiva brez nepri\u010dakovanih presene\u010denj. Zdaj pa spoznamo kompromisne re\u0161itve.<\/p>\n<p><\/p>\n<h3 id=\"kompromiss-1-proizvoditelnost\">Kompromis 1: Zmogljivost<\/h3>\n<p><\/p>\n<p>\u010ce PostgreSQL klaster ne zahteva skladnosti, lahko deluje asinhrono. Zapis se izvede na vodji klasterja, njegove replikam pa bodo poslane posodobitve po nekaj milisekundah. Ko klasteru PostgreSQL potrebna skladnost, mora delovati sinhrono. Zapis bo izveden na vodji klasterja, ki bo replikam poslal posodobitev in po\u010dakal na potrditev, da je vsak izvedel zapis, preden bo stranki, ki je iniciirala zapis, poslal potrditev, da je bila operacija uspe\u0161na. Prakti\u010dna razlika med obema pristopoma je, da asinhrona metoda zahteva dva skoka po omre\u017eju, sinhrona pa \u0161tiri. <\/p>\n<p><\/p>\n<h3 id=\"kompromiss-2-soglasovannost\">Kompromis 2: Skladnost<\/h3>\n<p><\/p>\n<p>Rezultat v primeru okvare vodje v obeh pristopih bo prav tako razli\u010den. \u010ce se delo izvaja asinhrono, ob tak\u0161ni napaki ne bodo vse zapise potrdile replike. Koliko jih bo izgubljenih? Odvisno je od same aplikacije in u\u010dinkovitosti replikacije. Replikacija Compose prepre\u010di, da bi replika postala vodja, \u010de je koli\u010dina informacij v njej 1 MB manj\u0161a od vodje, kar pomeni, da lahko potencialno izgubi do 1 MB zapisov pri asinhronem delovanju. <\/p>\n<p><\/p>\n<p>V sinhronem na\u010dinu se to ne zgodi. \u010ce vodja odpove, se vse replike posodobijo, saj mora biti vsak zapis, potrjen na vodji, potrjen tudi v replikah. To je skladnost. <\/p>\n<p><\/p>\n<p>Sinhrono vedenje ima smisla uporabiti v aplikaciji za pla\u010dila, kjer ima skladnost jasno prednost pri iskanju kompromisa med skladnostjo in zmogljivostjo. Najpomembnej\u0161e za to aplikacijo so veljavni podatki. Zdaj pomislite na dru\u017ebeno omre\u017eje, kjer je glavna naloga zadr\u017eati pozornost uporabnika in odgovoriti na njegove zahteve \u010dim hitreje. V takem primeru bo zmogljivost s manj skoki po omre\u017eju in manj \u010dakanjem na potrditev prioriteta. Vendar kompromis med zmogljivostjo in skladnostjo ni edini, o katerem je treba razmi\u0161ljati.<\/p>\n<p><\/p>\n<h3 id=\"kompromiss-3-sboi\">Kompromis 3: Okvare<\/h3>\n<p><\/p>\n<p>Zelo je pomembno razumeti, kako se klaster obna\u0161a med okvaro. Razmislimo o situaciji, ko ena ali ve\u010d replik odpove. Ko se obdelujejo zaveze asinhrono, bo vodja \u0161e naprej deloval, torej sprejemal in obdeloval zapise, ne da bi \u010dakal na manjkajo\u010de replikacije. Ko se replike vrnejo v klaster, dohitevajo vodjo. Pri sinhroni replikaciji, \u010de replike ne odgovarjajo, vodja nima izbire in bo \u0161e naprej \u010dakal na potrditev zaveze, dokler se replika ne vrne v klaster in ne more sprejeti ter potrditi zapisa.<\/p>\n<p><\/p>\n<h2 id=\"po-odnomu-soedineniyu-na-tranzakciyu\">Eno povezavo na transakcijo?<\/h2>\n<p><\/p>\n<p>Vsaka aplikacija potrebuje poseben tip ravnote\u017eja med skladnostjo in zmogljivostjo. Seveda, razen na\u0161ega pla\u010dilnega aplikacije, kjer si predstavljamo popolno skladnost, ali na\u0161ega skoraj eterealnega dru\u017eabnega omre\u017eja. V vseh drugih primerih bodo trenutki, ko morajo biti nekateri postopki sinhroni, drugi pa asinhroni. Morda ne \u017eelite, da sistem \u010daka, dokler sporo\u010dilo poslane v klepet ne bo zaklju\u010den, vendar, \u010de se v isti aplikaciji izvaja pla\u010dilo, bo treba po\u010dakati.<\/p>\n<p><\/p>\n<p>Vse te odlo\u010ditve, seveda, sprejema razvijalec aplikacije. Prave odlo\u010ditve o tem, kdaj uporabiti dolo\u010den pristop, bodo pomagale iztisniti maksimum iz klasterja. Pomembno je, da se razvijalec lahko preklaplja med njimi na ravni SQL za povezave in za transakcije. <\/p>\n<p><\/p>\n<h2 id=\"obespechenie-kontrolya-na-praktike\">Zagotavljanje nadzora v praksi<\/h2>\n<p><\/p>\n<p>Privzeto PostgreSQL zagotavlja skladnost. To se nadzira s stre\u017eni\u0161ko nastavitvijo <code>synchronous_commit<\/code>. Privzeto je nastavljen na <code>on<\/code>, vendar ima tri druge mo\u017enosti: <code>local<\/code>, <code>remote_write<\/code> ili <code>off<\/code>.<\/p>\n<p><\/p>\n<p>Ko se parameter nastavi na <code>off<\/code> , se ustavijo vse sinhrone zaveze, tudi v lokalnem sistemu. Parameter v local dolo\u010da sinhroni na\u010din za lokalni sistem, vendar so zapisi v replike izvedeni asinhrono. <code>Remote_write<\/code> gre \u0161e naprej: zapisi v replike se izvajajo asinhrono, vendar se vrnejo, ko je replika sprejela zapis, vendar ga ni zapisala na disk.<\/p>\n<p><\/p>\n<p>Ob razmisleku o obstoje\u010dem naboru mo\u017enosti izberemo vedenje in, ob spominu na to, da <code>on<\/code> \u2013 to so sinhroni zapisi, izberemo <code>local<\/code> za asinhrone zaveze po omre\u017eju, pri \u010demer pustimo lokalne zaveze sinhrone.<\/p>\n<p><\/p>\n<p>Zdaj, povemo vam, kako to enostavno nastaviti, vendar si predstavite, da smo namestili <code>synchronous_commit<\/code> u <code>local<\/code> za stre\u017enik. Spra\u0161evali smo se, ali je mogo\u010de parameter <code>synchronous_commit<\/code> spremeniti v \u017eivo, in izkazalo se je, da ne le, da je to mogo\u010de, ampak obstajata kar dva na\u010dina za to. Prvi na\u010din je, da nastavite sejo va\u0161ega povezovanja na naslednji na\u010din:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">SET SESSION synchronous_commit TO ON;  \n\/\/ Va\u0161i zapisi gredo sem<\/code><\/pre>\n<p><\/p>\n<p>Vsi nadaljnji zapisi v seji bodo potrdili operacije zapisovanja za replikacije, preden vrnejo pozitiven rezultat povezani stranki. Seveda, \u010de ne spremenite nastavitve <code>synchronous_commit<\/code> spet. Del <code>SESSION<\/code> lahko izpustite v ukazu, saj bo imela privzeto vrednost.<\/p>\n<p><\/p>\n<p>Drugi na\u010din je dobar kada jednostavno \u017eelite biti sigurni da dobijate sinhronizovanu replikaciju za jednu transakciju. U mnogim NoSQL bazama podataka ne postoje pojmovi transakcija, ali to postoji u PostgreSQL-u. U ovom slu\u010daju pokrenete transakciju, a zatim postavite <code>synchronous_commit<\/code> u <code>on<\/code> pred izvedbo zapisa za transakcijo. <code>COMMIT<\/code> potrdi transakcijo, z uporabo katere koli vrednosti parametra <code>synchronous_commit<\/code>, ki je bila takrat nastavljena, \u010deprav je najbolje, da spremenljivko nastavite vnaprej, da se prepri\u010date, da drugi razvijalci razumejo, da zapisi niso asinhroni.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">BEGIN;  \nSET LOCAL synchronous_commit TO ON;  \n\/\/ Va\u0161i zapisi gredo sem\nCOMMIT;  <\/code><\/pre>\n<p><\/p>\n<p>Vsi commit-i transakcij bodo zdaj potrjeni, kot zapisani v replikah, preden baza podatkov vrne pozitiven odgovor povezani stranki.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-postgresql\">Nastavitev PostgreSQL<\/h2>\n<p><\/p>\n<p>Pred tem smo si predstavljali sistem PostgreSQL z <code>synchronous_commit<\/code>, nastavljenim na <code>local<\/code>. Da bo to resni\u010dno na strani stre\u017enika, boste morali nastaviti dva konfiguracijska parametra stre\u017enika. \u0160e en parameter <code>synchronous_standby_names<\/code> bo stopil v veljavo, ko <code>synchronous_commit<\/code> bo v <code>on<\/code>. Dolo\u010da, katere replikacije imajo pravico do sinhronih commit-ov, in nastavili bomo to na <code>*<\/code>, kar bo pomenilo vklju\u010ditev vseh replik. Te vrednosti se obi\u010dajno nastavljajo v <noindex><a rel=\"nofollow\" href=\"http:\/\/www.postgresql.org\/docs\/9.4\/static\/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE\">konfiguracijskoj datoteci<\/a><\/noindex> z dodajanjem: <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">synchronous_commit = local  \nsynchronous_standby_names='*'<\/code><\/pre>\n<p><\/p>\n<p>Z nastavitvijo parametra <code>synchronous_commit<\/code> na vrednost <code>local<\/code>, ustvarjamo sistem, v katerem lokalni diski ostanejo sinhroni, vendar so commit-i mre\u017enih replik privzeto asinhroni. Seveda, \u010de se ne odlo\u010dimo, da naredimo te commit-e sinhrone, kot je prikazano zgoraj.<\/p>\n<p><\/p>\n<p>\u010ce ste spremljali razvoj <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/compose\/governor\">projekta Governor<\/a><\/noindex>, ste lahko opazili nekatere nedavne spremembe (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/compose\/governor\/commit\/87f18c01f150b3f1b6f948e852c7add2949f7360\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/compose\/governor\/commit\/dcbe849d33c535b1522ce767803cb77a3ac91a7e\">2<\/a><\/noindex>), ki so uporabnikom Governor omogo\u010dili preizkusiti te nastavitve in nadzorovati njihovo skladnost.<\/p>\n<p><\/p>\n<h2 id=\"esche-para-slov\">\u0160e nekaj besed\u2026<\/h2>\n<p><\/p>\n<p>\u0160e pred enim tednom bi vam rekel, da je skoraj nemogo\u010de tako natan\u010dno nastaviti PostgreSQL. Takrat je Kurt, \u010dlan ekipe platforme Compose, vztrajal, da to lahko storimo. Umiril je moje ugovore in na\u0161el v dokumentaciji PostgreSQL <noindex><a rel=\"nofollow\" href=\"http:\/\/www.postgresql.org\/docs\/devel\/static\/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT\">naslednje<\/a><\/noindex>:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"PostgreSQL in nastavitve skladnosti zapisovanja za vsak posamezen povezavo.\" src=\"\/wp-content\/uploads\/2019\/10\/e77e97e588fa3d1e8acbe5de0e26436a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>To mo\u017enost je mogo\u010de spremeniti kadarkoli. Obna\u0161anje katere koli transakcije je dolo\u010deno z nastavitvijo, ki velja ob izvedbi ukaza commit. Zato je mogo\u010de in koristno, da se za nekatere transakcije izvedbe commit zgodijo sinhrono, za druge pa asinhrono. Na primer, da omogo\u010dimo eno <code>multistatement<\/code> transakcijo, ki izvaja commit asinhrono, ko je privzeta vrednost parametra nasprotna, nastavite <\/em><code>SET LOCAL synchronous_commit TO OFF<\/code> <em>v transakciji.<\/em><\/p>\n<p><\/p>\n<p>S to majhno modifikacijo v konfiguracijski datoteki smo omogo\u010dili uporabnikom, da nadzorujejo svojo skladnost in zmogljivost.<\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/472364\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438? \u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u0432\u0430\u0441 \u043d\u0430 \u0414\u0435\u043d\u044c \u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0414\u0432\u0435\u0440\u0435\u0439, \u0433\u0434\u0435 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u043e\u043d\u043b\u0430\u0439\u043d-\u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u044f\u0445 \u0438 \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u044b\u0445 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0436\u0434\u0443\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. PostgreSQL \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u041d\u0430\u043c \u0432 Compose \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441\u043e \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29395,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47PostgreSQL \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:28:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:28:14+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47PostgreSQL in nastavitve skladnosti zapisov za vsako posamezno povezavo | ProHoster","description":"Prevod \u010dlanka je bil pripravljen posebej za \u0161tudente te\u010daja 'Podatkovne baze'. Vas zanima nadaljnji razvoj na tem podro\u010dju?","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47PostgreSQL \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/postgresql-i-nastrojki-soglasovannosti-zapisi-dlya-kazhdogo-konkretnogo-soedineniya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:28:14+00:00","article:modified_time":"2019-10-31T19:28:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39169","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 01:05:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:54:44","updated":"2026-01-24 01:05:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/39169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=39169"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/39169\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/29395"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=39169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=39169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=39169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}