{"id":83337,"date":"2020-05-30T07:42:48","date_gmt":"2020-05-30T05:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh"},"modified":"2020-05-30T07:42:48","modified_gmt":"2020-05-30T05:42:48","slug":"k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Pozdrav svima. Ovde je Vladislav Rodin. Trenutno sam voditelj te\u010daja \"Arhitekt visoke optere\u0107enosti\" u OTUS-u, a tako\u0111er predajem na te\u010dajevima posve\u0107enim softverskoj arhitekturi.<br \/>\n<\/i><br \/>\n<b><i>Osim podu\u010davanja, kao \u0161to ste mogli primijetiti, pi\u0161em autorski sadr\u017eaj za blog OTUS na Habr-u i dana\u0161nji \u010dlanak \u017eelim posvetiti pokretanju te\u010daja <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\"PostgreSQL\"<\/a><\/noindex>, za koji je trenutno otvorena prijava.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/acfb562f4e72d657c09f5ce00acdf80b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Uvod<\/h2>\n<p>\nU <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/494652\/\">pro\u0161li put<\/a><\/noindex> Razgovarali smo o tome da transakcije u bazama podataka slu\u017ee za rje\u0161avanje dva zadatka: osiguranje otpornosti na gre\u0161ke i pristup podacima u konkurentnom okru\u017eenju. Da bi se ti zadaci u potpunosti izvr\u0161ili, transakcija mora imati ACID svojstva. Danas \u0107emo detaljno razgovarati o slovu <b>I (izolacija)<\/b> u ovoj akronim.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Izolacija<\/h2>\n<p>\nIzolacija rje\u0161ava problem pristupa podacima u konkurentnom okru\u017eenju, zapravo pru\u017eaju\u0107i za\u0161titu od race condition-a. U idealnom slu\u010daju, izolacija podrazumijeva serijalizaciju, \u0161to je svojstvo koje osigurava da je rezultat izvr\u0161enja transakcija paralelno isti kao da su se izvr\u0161avale rekurzivno. Glavni problem ovog svojstva je \u0161to se vrlo te\u0161ko tehni\u010dki osigurava, a kao posljedica toga, zna\u010dajno optere\u0107uje performanse sustava. Upravo zbog toga se izolacija \u010desto oslabljuje, preuzimaju\u0107i rizike od pojave odre\u0111enih anomalija, o kojima \u0107e se govoriti u nastavku. Mogu\u0107nost pojave odre\u0111enih anomalija upravo karakterizira razinu izolacije transakcija.<\/p>\n<p>Najpoznatije anomalije su: dirty read, non-repeatable read, phantom read, ali u stvarnosti ih ima jo\u0161 5: dirty write, cursor lost update, lost update, read skew, write skew.<\/p>\n<h2>Dirty write<\/h2>\n<p>\nBit anomalije le\u017ei u tome da transakcije mogu prepisivati nekomitirane podatke.<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOva anomalija nije opasna samo zbog toga \u0161to podaci mogu do\u0107i u sukob nakon potvrde obiju transakcija (kao na slici), ve\u0107 i zbog toga \u0161to kr\u0161i atomskost: jer \u0107emo dozvoliti prepisivanje nekomitiranih podataka, nejasno je kako vratiti jednu transakciju, a da pritom ne na\u0161kodimo drugoj. <\/p>\n<p>Anomalija se prili\u010dno jednostavno lije\u010di: postavljamo zaklju\u010davanje na pisanje prije po\u010detka pisanja, zabranjuju\u0107i drugim transakcijama da mijenjaju zapis sve dok zaklju\u010davanje ne bude uklonjeno. <\/p>\n<h2>Dirty read<\/h2>\n<p>\nDirty read ozna\u010dava \u010ditanje nezavezanih podataka. <\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProblemi nastaju kada je potrebno na osnovu uzorka izvr\u0161iti neke radnje ili donijeti odluke.<\/p>\n<p>Za ispravak anomalije mogu\u0107e je postaviti zaklju\u010davanje na \u010ditanje, ali to \u0107e zna\u010dajno utjecati na performanse. Mnogo je jednostavnije re\u0107i da za rollback transakcije izvorno stanje podataka (prije po\u010detka zapisa) mora biti obavezno sa\u010duvano u sustavu. Za\u0161to ga ne \u010ditati odatle? To je prili\u010dno jeftino, stoga ve\u0107ina baza podataka isklju\u010duje dirty read prema zadanim postavkama. <\/p>\n<h2>Lost update<\/h2>\n<p>\nLost update ozna\u010dava izgubljene a\u017euriranja, a prijevod prili\u010dno to\u010dno oslikava bit problema:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nU stvarnosti, rezultat transakcije T2 je otkazan. Ova situacija se ispravlja eksplicitnim ili implicitim zaklju\u010davanjima zapisa. Drugim rije\u010dima, ili jednostavno a\u017euriramo zapis, \u010dime nastaje implicite zaklju\u010davanje, ili izvedemo <b>select for update<\/b>, uzrokuju\u0107i zaklju\u010davanje na \u010ditanje i na zapis. Imajte na umu da je ova operacija prili\u010dno opasna: svojim 'nevino' \u010ditanjem, zaklju\u010davamo druga \u010ditanja. Neki sustavi nude sigurniji <b>select for share<\/b>, koji omogu\u0107uje \u010ditanje podataka, ali ne dopu\u0161ta njihovu izmjenu. <\/p>\n<h2>Cursor lost update<\/h2>\n<p>\nZa finiju kontrolu, baze mogu nuditi druge alate, poput kursora. Kursor je struktura koja sadr\u017ei skup redaka i omogu\u0107uje iteraciju kroz njih. <b>declare cursor_name for select_statement<\/b>. Sadr\u017eaj kursora opisuje select. <\/p>\n<p>Za\u0161to je potreban kursor? Naime, neke baze podataka nude zaklju\u010davanje na sve zapise odabranih selektom (read stability), ili samo na onu zapis na kojoj se trenutno nalazi kursor (cursor stability). Pri cursor stability implementira se kratka brava, \u0161to omogu\u0107ava smanjenje broja zaklju\u010davanja u slu\u010daju da itereiramo kroz veliku skupinu podataka. Stoga se anomalija lost update posebno isti\u010de za kursor.<\/p>\n<h2>Non-repeatable read<\/h2>\n<p>\nNon-repeatable read se sastoji u tome da \u0107e tijekom izvr\u0161avanja na\u0161e transakcije 2 uzastopna \u010ditanja istog zapisa dovesti do razli\u010ditih rezultata, jer je druga transakcija intervenisala izme\u0111u ta dva \u010ditanja, promijenila na\u0161e podatke i bila zakazana. <\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZa\u0161to je to uop\u0107e problem? Zamislite da je cilj transakcije T2 na slici odabrati sve proizvode \u010dija je cijena manja od 150 u.e. Netko drugi je a\u017eurirao cijenu na 200 u.e. Tako da postavljeni filtar nije proradio.<\/p>\n<p>Ove anomale prestaju nastajati dodavanjem dvofazne blokade ili kori\u0161tenjem mehanizma MVCC, o \u010demu bih volio posebno razgovarati. <\/p>\n<h2>Fantomsko \u010ditanje<\/h2>\n<p>\nFantomsko se naziva \u010ditanje podataka koji su dodani od strane druge transakcije. <\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKao primjer mo\u017eemo vidjeti pogre\u0161an odabir najjeftinijeg proizvoda kada se dogodi ova anomalia. <\/p>\n<p>Osloboditi se fantomskih \u010ditanja ve\u0107 je dovoljno te\u0161ko. Obi\u010dna blokada nije dovoljna, jer ne mo\u017eemo blokirati ono \u0161to jo\u0161 ne postoji. 2PL-sustavi koriste predikativnu blokadu, dok MVCC sustavi otkazuju transakcije koje mogu biti naru\u0161ene umetanjima. I jedan i drugi mehanizam su prili\u010dno te\u0161ki.<\/p>\n<h2>Read skew<\/h2>\n<p>\nRead skew se javlja kada radimo s vi\u0161e tablica \u010diji sadr\u017eaj treba biti uskla\u0111en. <\/p>\n<p>Pretpostavimo da imamo tablice koje predstavljaju postove i njihove meta informacije:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedna transakcija \u010dita iz tablica, dok ih druga mijenja:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKao rezultat izvr\u0161enja transakcije T1, post s naslovom = Good, a updated_by = T2, \u0161to predstavlja odre\u0111enu neuskla\u0111enost. <\/p>\n<p>Fakti\u010dki, ovo je non-repeatable read, ali u okviru vi\u0161e tablica.<\/p>\n<p>Kako bi se ispravilo to, T1 mo\u017ee postavljati blokade na sve redove koje \u0107e \u010ditati, \u0161to ne\u0107e dopustiti transakciji T2 da mijenja informacije. U slu\u010daju MVCC, transakcija T2 \u0107e biti otkazana. Za\u0161tita od ove anomale mo\u017ee postati va\u017ena ako koristimo kursor. <\/p>\n<h2>Write skew<\/h2>\n<p>\nOvu anomalu tako\u0111er je lak\u0161e objasniti na primjeru: pretpostavimo da u na\u0161em sustavu barem jedan doktor mora biti de\u017euran, ali su oba doktora odlu\u010dila otkazati svoju de\u017eurstvo:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnomalia je dovela do toga da nijedan od doktora ne ode na de\u017eurstvo. Za\u0161to se to dogodilo? Zato \u0161to je transakcija provjeravala uvjet koji mo\u017ee biti naru\u0161en od strane druge transakcije, a zbog izolacije nismo vidjeli tu promjenu.<\/p>\n<p>To je isti non-repeatable read. Kao opcija, selekti mogu postaviti zaklju\u010davanja na te zapise.<\/p>\n<p>Write skew i read skew su kombinacije prethodnih anomalija. Mo\u017eemo razmotriti write skew, koji je zapravo phantom read. Razmotrite tablicu koja sadr\u017ei imena zaposlenika, njihove pla\u0107e i projekte na kojima rade:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u0160to mo\u017ee uzrokovati slabljenje razine izolacije transakcija u bazama podataka\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa kraju, dobivamo sljede\u0107u sliku: svaki menad\u017eer je mislio da njegova promjena ne\u0107e dovesti do prekora\u010denja bud\u017eeta, pa su izvr\u0161ili kadrovske promjene koje su ukupno dovele do prekomjerne potro\u0161nje. <\/p>\n<p>Uzrok nastanka problema je potpuno isti kao i kod phantom read-a. <\/p>\n<h2>Zaklju\u010dci<\/h2>\n<p>\nSmanjenje razine izolacije transakcija u bazi podataka kompromis je izme\u0111u sigurnosti i performansi, a izbor te razine treba se temeljiti na potencijalnim rizicima za poslovanje u slu\u010daju odre\u0111enih anomalija.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">Saznajte vi\u0161e o te\u010daju.<br \/>\n<\/a><\/noindex><\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/501294\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83337","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=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\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\/hr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\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=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-30T05:42:48+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\udd47\u0160to mo\u017ee uzrokovati smanjenje razine izolacije transakcija u bazama podataka | ProHoster","description":"Pozdrav svima. Ovdje je Vladislav Rodin.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","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":"2020-05-30T05:42:48+00:00","article:modified_time":"2020-05-30T05:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83337","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:20:28","updated":"2022-09-28 14:57:58","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}