{"id":31907,"date":"2019-10-31T21:43:53","date_gmt":"2019-10-31T18:43:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\/"},"modified":"2019-10-31T21:43:53","modified_gmt":"2019-10-31T18:43:53","slug":"postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","title":{"rendered":"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Wiele aplikacji oraz system\u00f3w wirtualizacji klasy enterprise ma w\u0142asne mechanizmy tworzenia rozwi\u0105za\u0144 odpornych na awarie. Przyk\u0142adem jest Oracle RAC (Oracle Real Application Cluster), kt\u00f3ry sk\u0142ada si\u0119 z dw\u00f3ch lub wi\u0119cej serwer\u00f3w baz danych Oracle wsp\u00f3\u0142pracuj\u0105cych w celu r\u00f3wnowa\u017cenia obci\u0105\u017cenia i zapewnienia odporno\u015bci na awarie na poziomie serwera\/aplikacji. Aby funkcjonowa\u0107 w tym trybie, potrzebne jest wsp\u00f3lne przechowywanie danych, kt\u00f3rym zazwyczaj jest macierz dyskowa. <\/p>\n<p><\/p>\n<p>Jak ju\u017c om\u00f3wili\u015bmy w jednej z naszych <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/441780\/\">artyku\u0142\u00f3w<\/a><\/noindex>, sama macierz dyskowa, mimo posiadania zduplikowanych komponent\u00f3w (w tym kontroler\u00f3w), nadal ma punkty awarii \u2013 g\u0142\u00f3wnie w postaci pojedynczego zestawu danych. Dlatego, aby zbudowa\u0107 rozwi\u0105zanie Oracle o podwy\u017cszonej niezawodno\u015bci, schemat \u201eN serwer\u00f3w \u2013 jedna macierz dyskowa\u201d nale\u017cy skomplikowa\u0107.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/779e46d9ae2d70251bc72f55941171a5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Przede wszystkim nale\u017cy okre\u015bli\u0107, przed jakimi ryzykami si\u0119 zabezpieczamy. W ramach tego artyku\u0142u nie b\u0119dziemy omawia\u0107 ochrony przed zagro\u017ceniami typu 'przylecia\u0142 meteoryt'. Tak wi\u0119c budowa geograficznie rozproszonego rozwi\u0105zania disaster recovery pozostanie tematem jednego z kolejnych artyku\u0142\u00f3w. Tutaj rozwa\u017cymy tzw. rozwi\u0105zanie Cross-Rack disaster recovery, gdzie ochrona budowana jest na poziomie szaf serwerowych. Same szafy mog\u0105 znajdowa\u0107 si\u0119 zar\u00f3wno w jednym pomieszczeniu, jak i w r\u00f3\u017cnych, ale zazwyczaj w obr\u0119bie jednego budynku.<\/p>\n<p><\/p>\n<p>Te szafy powinny zawiera\u0107 ca\u0142y niezb\u0119dny zestaw sprz\u0119tu i oprogramowania, kt\u00f3ry pozwoli na dzia\u0142anie baz danych Oracle niezale\u017cnie od stanu 's\u0105siada'. Innymi s\u0142owy, korzystaj\u0105c z rozwi\u0105zania Cross-Rack disaster recovery, eliminujemy ryzyko w przypadku awarii:<\/p>\n<p><\/p>\n<ul>\n<li>Serwery aplikacji Oracle<\/li>\n<li>Systemy przechowywania<\/li>\n<li>Systemy komunikacyjne<\/li>\n<li>Pe\u0142ne usuni\u0119cie ca\u0142ego sprz\u0119tu w szafie:\n<ul>\n<li>Zerwanie zasilania<\/li>\n<li>Zerwanie systemu ch\u0142odzenia<\/li>\n<li>Czynniki zewn\u0119trzne (ludzie, natura i inne)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Duplikacja serwer\u00f3w Oracle polega na podstawowej zasadzie dzia\u0142ania Oracle RAC i jest realizowana za pomoc\u0105 aplikacji. Duplikacja \u015brodk\u00f3w komunikacyjnych r\u00f3wnie\u017c nie stanowi problemu. Jednak duplikacja systemu przechowywania jest znacznie bardziej skomplikowana.<\/p>\n<p><\/p>\n<p>Najprostsza opcja to replikacja danych z g\u0142\u00f3wnej macierzy na zapasow\u0105. Mo\u017ce by\u0107 synchroniczna lub asynchroniczna, w zale\u017cno\u015bci od mo\u017cliwo\u015bci macierzy. W przypadku replikacji asynchronicznej pojawia si\u0119 od razu problem zapewnienia sp\u00f3jno\u015bci danych wzgl\u0119dem Oracle. Ale nawet je\u015bli istnieje programowa integracja z aplikacj\u0105, w ka\u017cdym razie, w przypadku awarii g\u0142\u00f3wnej macierzy, wymagane b\u0119dzie r\u0119czne zaanga\u017cowanie administrator\u00f3w, aby prze\u0142\u0105czy\u0107 klaster na zapasowe przechowywanie.<\/p>\n<p><\/p>\n<p>Bardziej skomplikowan\u0105 opcj\u0105 s\u0105 programowe i\/lub sprz\u0119towe \u201ewirtualizatory\u201d macierzy, kt\u00f3re eliminuj\u0105 problemy ze sp\u00f3jno\u015bci\u0105 i r\u0119cznym zaanga\u017cowaniem. Jednak z\u0142o\u017cono\u015b\u0107 wdro\u017cenia i p\u00f3\u017aniejszego administrowania, a tak\u017ce do\u015b\u0107 wysokie koszty takich rozwi\u0105za\u0144 odstraszaj\u0105 wielu.<\/p>\n<p><\/p>\n<p>Dla takich scenariuszy, jak Cross-Rack disaster recovery, doskonale nadaje si\u0119 rozwi\u0105zanie All Flash AccelStor NeoSapphire\u2122. <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex> z wykorzystaniem architektury Shared-Nothing. Ten model stanowi dwuw\u0119z\u0142owy system przechowywania, kt\u00f3ry wykorzystuje w\u0142asn\u0105 technologi\u0119 FlexiRemap\u00ae do pracy z pami\u0119ci\u0105 flash. Dzi\u0119ki <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/\">FlexiRemap\u00ae<\/a><\/noindex> NeoSapphire\u2122 H710 jest w stanie zapewnia\u0107 wydajno\u015b\u0107 do 600K IOPS@4K losowe zapisy i 1M+ IOPS@4K losowe odczyty, co jest niedost\u0119pne przy u\u017cyciu klasycznych macierzy opartych na RAID.<\/p>\n<p><\/p>\n<p>Jednak g\u0142\u00f3wn\u0105 cech\u0105 NeoSapphire\u2122 H710 jest wykonanie dw\u00f3ch w\u0119z\u0142\u00f3w w postaci oddzielnych obud\u00f3w, z kt\u00f3rych ka\u017cda ma w\u0142asn\u0105 kopi\u0119 danych. Synchronizacja w\u0119z\u0142\u00f3w odbywa si\u0119 przez zewn\u0119trzny interfejs InfiniBand. Dzi\u0119ki takiej architekturze mo\u017cliwe jest rozmieszczenie w\u0119z\u0142\u00f3w w r\u00f3\u017cnych lokalizacjach w odleg\u0142o\u015bci do 100m, zapewniaj\u0105c tym samym rozwi\u0105zanie Cross-Rack disaster recovery. Oba w\u0119z\u0142y dzia\u0142aj\u0105 ca\u0142kowicie w trybie synchronicznym. Z perspektywy host\u00f3w H710 wygl\u0105da jak zwyk\u0142a macierz z dwoma kontrolerami. Dlatego nie trzeba wykonywa\u0107 \u017cadnych dodatkowych opcji programowych i sprz\u0119towych ani szczeg\u00f3lnie skomplikowanych ustawie\u0144.<\/p>\n<p><\/p>\n<p>Por\u00f3wnuj\u0105c wszystkie powy\u017csze rozwi\u0105zania Cross-Rack disaster recovery, opcja AccelStor wyra\u017anie wyr\u00f3\u017cnia si\u0119 na tle innych:<\/p>\n<p><\/p>\n<p>AccelStor NeoSapphire\u2122 Shared Nothing Architecture<br \/>\nProgramowy lub sprz\u0119towy \u201ewirtualizator\u201d macierzy<br \/>\nRozwi\u0105zanie oparte na replikacji<\/p>\n<p><b>Dost\u0119pno\u015b\u0107<\/b><\/p>\n<p>Awaria serwera<br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><\/p>\n<p>Awaria prze\u0142\u0105cznika<br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><\/p>\n<p>Awaria systemu przechowywania<br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Przestoje<\/b><\/p>\n<p>Awaria ca\u0142ej szafy<br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Brak przestoj\u00f3w<\/b><br \/>\n<b>Przestoje<\/b><\/p>\n<p><b>Koszt i z\u0142o\u017cono\u015b\u0107<\/b><\/p>\n<p>Koszt rozwi\u0105zania<br \/>\nNiski*<br \/>\nWysokie<br \/>\nWysokie<\/p>\n<p>Z\u0142o\u017cono\u015b\u0107 wdro\u017cenia<br \/>\nNiski<br \/>\nWysokie<br \/>\nWysokie<\/p>\n<p><\/p>\n<p><i>*AccelStor NeoSapphire\u2122 to wci\u0105\u017c macierz All Flash, kt\u00f3ra z definicji nie kosztuje \u00ab3 grosze\u00bb, tym bardziej maj\u0105c dwukrotny zapas pojemno\u015bci. Jednak por\u00f3wnuj\u0105c ko\u0144cowy koszt rozwi\u0105zania opartego na tej technologii z podobnymi oferowanymi przez innych dostawc\u00f3w, mo\u017cna uzna\u0107 t\u0119 cen\u0119 za nisk\u0105.<\/i><\/p>\n<p><\/p>\n<p>Topologia po\u0142\u0105czenia serwer\u00f3w aplikacji i w\u0119z\u0142\u00f3w macierzy All Flash b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/faf6a0a78ed13532a817fb67a2651b1b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Podczas planowania topologii zdecydowanie zaleca si\u0119 r\u00f3wnie\u017c wykonanie duplikacji prze\u0142\u0105cznik\u00f3w zarz\u0105dzaj\u0105cych i interkonekcji serwer\u00f3w.<\/p>\n<p><\/p>\n<p>Od tego miejsca b\u0119dziemy rozmawia\u0107 o po\u0142\u0105czeniach przez Fibre Channel. W przypadku u\u017cycia iSCSI wszystko b\u0119dzie wygl\u0105da\u0107 podobnie, z uwzgl\u0119dnieniem u\u017cywanych typ\u00f3w prze\u0142\u0105cznik\u00f3w i nieco innych ustawie\u0144 macierzy.<\/p>\n<p><\/p>\n<h3>Przygotowanie do pracy na macierzy<\/h3>\n<p>\n<b class=\"spoiler_title\">U\u017cywane sprz\u0119t i oprogramowanie<\/b><\/p>\n<p><b>Specyfikacje serwer\u00f3w i prze\u0142\u0105cznik\u00f3w<\/b><\/p>\n<p><\/p>\n<p>Sk\u0142adniki<br \/>\nOpis<\/p>\n<p>Serwery Oracle Database 11g<br \/>\nDwa <\/p>\n<p>System operacyjny serwera<br \/>\nOracle Linux<\/p>\n<p>Wersja bazy danych Oracle<br \/>\n11g (RAC)<\/p>\n<p>Procesory na serwer<br \/>\nDwa procesory Intel\u00ae Xeon\u00ae CPU E5-2667 v2 @ 3.30GHz z 16 rdzeniami<\/p>\n<p>Fizyczna pami\u0119\u0107 na serwer<br \/>\n128 GB<\/p>\n<p>Sie\u0107 FC<br \/>\n16 Gb\/s FC z wieloma \u015bcie\u017ckami<\/p>\n<p>FC HBA<br \/>\nEmulex Lpe-16002B <\/p>\n<p>Dedykowane publiczne porty 1GbE do zarz\u0105dzania klastrem<br \/>\nKarta sieciowa Intel RJ45<\/p>\n<p>Prze\u0142\u0105cznik FC 16Gb\/s<br \/>\nBrocade 6505<\/p>\n<p>Dedykowane prywatne porty 10GbE do synchronizacji danych<br \/>\nIntel X520<\/p>\n<p><\/p>\n<p><b>Specyfikacja macierzy AccelStor NeoSapphire\u2122 All Flash<\/b><\/p>\n<p><\/p>\n<p>Sk\u0142adniki<br \/>\nOpis<\/p>\n<p>System pami\u0119ci masowej<br \/>\nModel wysokiej dost\u0119pno\u015bci NeoSapphire\u2122: H710<\/p>\n<p>Wersja obrazu<br \/>\n4.0.1<\/p>\n<p>\u0141\u0105czna liczba dysk\u00f3w<br \/>\n48<\/p>\n<p>Rozmiar dysku<br \/>\n1.92 TB<\/p>\n<p>Typ dysku<br \/>\nSSD<\/p>\n<p>Porty docelowe FC<br \/>\n16 x 16Gb port\u00f3w (8 na w\u0119ze\u0142)<\/p>\n<p>Porty zarz\u0105dzania<br \/>\nKabel ethernetowy 1GbE \u0142\u0105cz\u0105cy hosty poprzez prze\u0142\u0105cznik ethernetowy<\/p>\n<p>Port heartbeat<br \/>\nKabel ethernetowy 1GbE \u0142\u0105cz\u0105cy dwa w\u0119z\u0142y pami\u0119ci masowej<\/p>\n<p>Port synchronizacji danych<br \/>\nKabel InfiniBand 56Gb\/s<\/p>\n<p>Przed rozpocz\u0119ciem korzystania z macierzy nale\u017cy j\u0105 zainicjowa\u0107. Domy\u015blnie adres zarz\u0105dzania obu w\u0119z\u0142\u00f3w jest taki sam (192.168.1.1). Nale\u017cy kolejno po\u0142\u0105czy\u0107 si\u0119 z nimi i ustawi\u0107 nowe (ju\u017c r\u00f3\u017cne) adresy zarz\u0105dzania oraz skonfigurowa\u0107 synchronizacj\u0119 czasu, po czym porty zarz\u0105dzania mo\u017cna pod\u0142\u0105czy\u0107 do jednej sieci. Nast\u0119pnie nale\u017cy po\u0142\u0105czy\u0107 w\u0119z\u0142y w par\u0119 HA, przypisuj\u0105c podsieci dla po\u0142\u0105cze\u0144 interlink.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/9eef0dd1ac3a2ae1d19b3484ec2b2a27.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Po zako\u0144czeniu inicjalizacji macierz\u0105 mo\u017cna zarz\u0105dza\u0107 z dowolnego w\u0119z\u0142a.<\/p>\n<p><\/p>\n<p>Nast\u0119pnie tworzymy potrzebne wolumeny i publikujemy je dla serwer\u00f3w aplikacji.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/57a23b64c2bcb3c9f477cc5009e1cd48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Zdecydowanie zaleca si\u0119 utworzenie kilku wolumen\u00f3w dla Oracle ASM, poniewa\u017c zwi\u0119kszy to liczb\u0119 cel\u00f3w dla serwer\u00f3w, co ostatecznie poprawi og\u00f3ln\u0105 wydajno\u015b\u0107 (wi\u0119cej o kolejkach w innym miejscu). <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/447390\/\">artyku\u0142<\/a><\/noindex>).<\/p>\n<p>\n<b class=\"spoiler_title\">Konfiguracja testowa<\/b><\/p>\n<p>Nazwa wolumenu pami\u0119ci<br \/>\nRozmiar wolumenu<\/p>\n<p>Data01<br \/>\n200GB<\/p>\n<p>Data02<br \/>\n200GB<\/p>\n<p>Data03<br \/>\n200GB<\/p>\n<p>Data04<br \/>\n200GB<\/p>\n<p>Data05<br \/>\n200GB<\/p>\n<p>Data06<br \/>\n200GB<\/p>\n<p>Data07<br \/>\n200GB<\/p>\n<p>Data08<br \/>\n200GB<\/p>\n<p>Data09<br \/>\n200GB<\/p>\n<p>Data10<br \/>\n200GB<\/p>\n<p>Grid01<br \/>\n1GB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<\/p>\n<p>Redo02<br \/>\n100GB<\/p>\n<p>Redo03<br \/>\n100GB<\/p>\n<p>Redo04<br \/>\n100GB<\/p>\n<p>Redo05<br \/>\n100GB<\/p>\n<p>Redo06<br \/>\n100GB<\/p>\n<p>Redo07<br \/>\n100GB<\/p>\n<p>Redo08<br \/>\n100GB<\/p>\n<p>Redo09<br \/>\n100GB<\/p>\n<p>Redo10<br \/>\n100GB<\/p>\n<h3>Kilka wyja\u015bnie\u0144 dotycz\u0105cych tryb\u00f3w pracy macierzy oraz proces\u00f3w zachodz\u0105cych w sytuacjach awaryjnych<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/e0f9416f16bb8a13673cacfcf1792d9d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ka\u017cdy zestaw danych w w\u0119\u017ale ma parametr \u201enumer wersji\u201d. Po wst\u0119pnym zainicjowaniu jest on taki sam i wynosi 1. Je\u015bli z jakiego\u015b powodu numer wersji jest r\u00f3\u017cny, zawsze zachodzi synchronizacja danych z wersji starszej do nowszej, po czym numer wersji w wersji starszej zostaje wyr\u00f3wnany, co oznacza, \u017ce kopie s\u0105 identyczne. Powody, dla kt\u00f3rych wersje mog\u0105 by\u0107 r\u00f3\u017cne:<\/p>\n<p><\/p>\n<ul>\n<li>Zaplanowane ponowne uruchomienie jednego z w\u0119z\u0142\u00f3w<\/li>\n<li>Awaria jednego z w\u0119z\u0142\u00f3w spowodowana nag\u0142ym wy\u0142\u0105czeniem (zasilanie, przegrzanie itd.). <\/li>\n<li>Przerwanie po\u0142\u0105czenia InfiniBand z brakiem mo\u017cliwo\u015bci synchronizacji<\/li>\n<li>Awaria jednego z w\u0119z\u0142\u00f3w spowodowana uszkodzeniem danych. W tym przypadku b\u0119dzie wymagana utworzenie nowej grupy HA i pe\u0142na synchronizacja zestawu danych.<\/li>\n<\/ul>\n<p><\/p>\n<p>W ka\u017cdym przypadku w\u0119ze\u0142, kt\u00f3ry pozostaje online, zwi\u0119ksza sw\u00f3j numer wersji o jeden, aby po przywr\u00f3ceniu po\u0142\u0105czenia z par\u0105 zsynchronizowa\u0107 jej zestaw danych.<\/p>\n<p><\/p>\n<p>Je\u015bli dochodzi do przerwania po\u0142\u0105czenia przez link Ethernet, to Heartbeat tymczasowo prze\u0142\u0105cza si\u0119 na InfiniBand i wraca z powrotem w ci\u0105gu 10 sekund po jego przywr\u00f3ceniu.<\/p>\n<p><\/p>\n<h3>Konfiguracja host\u00f3w<\/h3>\n<p><\/p>\n<p>Aby zapewni\u0107 odporno\u015b\u0107 na awarie i zwi\u0119kszy\u0107 wydajno\u015b\u0107, konieczne jest w\u0142\u0105czenie wsparcia MPIO dla macierzy. W tym celu nale\u017cy doda\u0107 do pliku \/etc\/multipath.conf odpowiednie linie, a nast\u0119pnie ponownie uruchomi\u0107 us\u0142ug\u0119 multipath<\/p>\n<p>\n<b class=\"spoiler_title\">Ukryty tekst<\/b>devices {<br \/>\n urz\u0105dzenie {<br \/>\n dostawca \u201eAStor\u201d<br \/>\n polityka_grupowania_\u015bcie\u017cek \u201egrupa_na_prio\u201d<br \/>\n selekcjoner_\u015bcie\u017cek \u201ekolejno\u015b\u0107-0\u201d<br \/>\n sprawdzanie_\u015bcie\u017cki \u201etur\u201d<br \/>\n funkcje \u201e0\u201d<br \/>\n obs\u0142uga_sprz\u0119towa \u201e0\u201d<br \/>\n priorytet \u201esta\u0142y\u201d<br \/>\n natychmiastowe_przywracanie<br \/>\n czas_ulegania_awarii_io 5<br \/>\n czas_ulegania_awarii_urz\u0105dzenia 60<br \/>\n przyjazne_nazwy_u\u017cytkownika tak<br \/>\n wykrywanie_prio tak<br \/>\n rr_min_io_rq 1<br \/>\n brak_retry_\u015bcie\u017cki 0<br \/>\n }<br \/>\n}<\/p>\n<p><\/p>\n<p>Nast\u0119pnie, aby ASM dzia\u0142a\u0142 z MPIO za po\u015brednictwem ASMLib, nale\u017cy zmieni\u0107 plik \/etc\/sysconfig\/oracleasm i nast\u0119pnie wykona\u0107 \/etc\/init.d\/oracleasm scandisks<\/p>\n<p>\n<b class=\"spoiler_title\">Ukryty tekst<\/b><\/p>\n<p># ORACLEASM_SCANORDER: Matching patterns to order disk scanning<br \/>\nORACLEASM_SCANORDER=\u201edm\u201d<\/p>\n<p># ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan<br \/>\nORACLEASM_SCANEXCLUDE=\u201esd\u201d<\/p>\n<p><\/p>\n<h4>Uwaga<\/h4>\n<p><\/p>\n<p><i>Je\u015bli nie ma ch\u0119ci korzysta\u0107 z ASMLib, mo\u017cna zastosowa\u0107 zasady UDEV, kt\u00f3re s\u0105 podstaw\u0105 ASMLib.<\/i><\/p>\n<p><\/p>\n<p><i>Od wersji 12.1.0.2 opcja Oracle Database jest dost\u0119pna do zainstalowania jako cz\u0119\u015b\u0107 oprogramowania ASMFD.<\/i><\/p>\n<p>Nale\u017cy upewni\u0107 si\u0119, \u017ce tworzone dyski dla Oracle ASM s\u0105 wyr\u00f3wnane wzgl\u0119dem rozmiaru bloku, z kt\u00f3rym fizycznie pracuje macierz (4K). W przeciwnym razie mog\u0105 wyst\u0105pi\u0107 problemy z wydajno\u015bci\u0105. Dlatego nale\u017cy tworzy\u0107 wolumeny z odpowiednimi parametrami:<\/p>\n<p><\/p>\n<p><i>parted \/dev\/mapper\/nazwa-urz\u0105dzenia mklabel gpt mkpart primary 2048s 100% align-check optimal 1<\/i><\/p>\n<p><\/p>\n<h3>Przydzia\u0142 baz danych wed\u0142ug utworzonych wolumen\u00f3w dla naszej testowej konfiguracji<\/h3>\n<p><\/p>\n<p>Nazwa wolumenu pami\u0119ci<br \/>\nRozmiar wolumenu<br \/>\nMapowanie wolumen\u00f3w LUN<br \/>\nSzczeg\u00f3\u0142y urz\u0105dzenia wolumenu ASM<br \/>\nRozmiar jednostki alokacji<\/p>\n<p>Data01<br \/>\n200GB<br \/>\nPrzypisz wszystkie wolumeny pami\u0119ci do systemu pami\u0119ci po wszystkich portach danych<br \/>\nNiezawodno\u015b\u0107: Normalna<br \/>\nNazwa: DGDATA<br \/>\nCel: Pliki danych<\/p>\n<p>4MB<\/p>\n<p>Data02<br \/>\n200GB<\/p>\n<p>Data03<br \/>\n200GB<\/p>\n<p>Data04<br \/>\n200GB<\/p>\n<p>Data05<br \/>\n200GB<\/p>\n<p>Data06<br \/>\n200GB<\/p>\n<p>Data07<br \/>\n200GB<\/p>\n<p>Data08<br \/>\n200GB<\/p>\n<p>Data09<br \/>\n200GB<\/p>\n<p>Data10<br \/>\n200GB<\/p>\n<p>Grid01<br \/>\n1GB<br \/>\nNiezawodno\u015b\u0107: Normalna<br \/>\nNazwa: DGGRID1<br \/>\nCel: Grid: CRS i g\u0142osowanie<\/p>\n<p>4MB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<br \/>\nNiezawodno\u015b\u0107: Normalna<br \/>\nNazwa: DGGRID2<br \/>\nCel: Grid: CRS i g\u0142osowanie<\/p>\n<p>4MB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<br \/>\nNiezawodno\u015b\u0107: Normalna<br \/>\nNazwa: DGREDO1<br \/>\nCel: Dziennik redo w\u0105tku 1<\/p>\n<p>4MB<\/p>\n<p>Redo02<br \/>\n100GB<\/p>\n<p>Redo03<br \/>\n100GB<\/p>\n<p>Redo04<br \/>\n100GB<\/p>\n<p>Redo05<br \/>\n100GB<\/p>\n<p>Redo06<br \/>\n100GB<br \/>\nNiezawodno\u015b\u0107: Normalna<br \/>\nNazwa: DGREDO2<br \/>\nCel: Dziennik redo w\u0105tku 2<\/p>\n<p>4MB<\/p>\n<p>Redo07<br \/>\n100GB<\/p>\n<p>Redo08<br \/>\n100GB<\/p>\n<p>Redo09<br \/>\n100GB<\/p>\n<p>Redo10<br \/>\n100GB<\/p>\n<p>\n<b class=\"spoiler_title\">Ustawienia bazy danych<\/b><\/p>\n<ul>\n<li>Rozmiar bloku = 8K<\/li>\n<li>Przestrze\u0144 wymiany = 16GB<\/li>\n<li>Wy\u0142\u0105cz AMM (Automatyczne Zarz\u0105dzanie Pami\u0119ci\u0105)<\/li>\n<li>Wy\u0142\u0105cz przezroczyste ogromne strony<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">Inne ustawienia<\/b><\/p>\n<p><u># vi \/etc\/sysctl.conf<\/u><br \/>\n\u2713 fs.aio-max-nr = 1048576<br \/>\n\u2713 fs.file-max = 6815744<br \/>\n\u2713 kernel.shmmax 103079215104<br \/>\n\u2713 kernel.shmall 31457280<br \/>\n\u2713 kernel.shmmn 4096<br \/>\n\u2713 kernel.sem = 250 32000 100 128<br \/>\n\u2713 net.ipv4.ip_local_port_range = 9000 65500<br \/>\n\u2713 net.core.rmem_default = 262144<br \/>\n\u2713 net.core.rmem_max = 4194304<br \/>\n\u2713 net.core.wmem_default = 262144<br \/>\n\u2713 net.core.wmem_max = 1048586<br \/>\n\u2713 vm.swappiness=10<br \/>\n\u2713 vm.min_free_kbytes=524288 # nie ustawiaj tego, je\u015bli u\u017cywasz Linux x86<br \/>\n\u2713 vm.vfs_cache_pressure=200<br \/>\n\u2713 vm.nr_hugepages = 57000<\/p>\n<p><u># vi \/etc\/security\/limits.conf<\/u><br \/>\n\u2713 grid soft nproc 2047<br \/>\n\u2713 grid hard nproc 16384<br \/>\n\u2713 grid soft nofile 1024<br \/>\n\u2713 grid hard nofile 65536<br \/>\n\u2713 grid soft stack 10240<br \/>\n\u2713 grid hard stack 32768<br \/>\n\u2713 oracle soft nproc 2047<br \/>\n\u2713 oracle hard nproc 16384<br \/>\n\u2713 oracle soft nofile 1024<br \/>\n\u2713 oracle hard nofile 65536<br \/>\n\u2713 oracle soft stack 10240<br \/>\n\u2713 oracle hard stack 32768<br \/>\n\u2713 soft memlock 120795954<br \/>\n\u2713 hard memlock 120795954\n<\/p>\n<p><\/p>\n<p><u>sqlplus \u201c\/as sysdba\u201d<\/u><br \/>\nalter system set processes=2000 scope=spfile;<br \/>\nalter system set open_cursors=2000 scope=spfile;<br \/>\nalter system set session_cached_cursors=300 scope=spfile;<br \/>\nalter system set db_files=8192 scope=spfile;\n<\/p>\n<p><\/p>\n<h3>Test odporno\u015bci na awarie<\/h3>\n<p><\/p>\n<p>W celu demonstracji u\u017cyto HammerDB do emulacji obci\u0105\u017cenia OLTP. Konfiguracja HammerDB:<\/p>\n<p><\/p>\n<p><b>Liczba magazyn\u00f3w<\/b><br \/>\n256<\/p>\n<p>Ca\u0142kowita liczba transakcji na u\u017cytkownika<br \/>\n1000000000000<\/p>\n<p>Wirtualni u\u017cytkownicy<br \/>\n256<\/p>\n<p><\/p>\n<p>W wyniku uzyskano wska\u017anik 2.1M TPM, co daleko odbiega od mo\u017cliwo\u015bci wydajno\u015bciowych macierzy <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex>, ale jest \u201esufitem\u201d dla aktualnej konfiguracji sprz\u0119towej serwer\u00f3w (przede wszystkim z powodu procesor\u00f3w) i ich liczby. Celem tego testu jest jednak demonstracja odporno\u015bci rozwi\u0105zania w ca\u0142o\u015bci, a nie osi\u0105gni\u0119cie maksymalnych wydajno\u015bci. Dlatego b\u0119dziemy po prostu opiera\u0107 si\u0119 na tej liczbie.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/6de29f092e4c96a980a5790d8dd9a447.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Test na awari\u0119 jednej z w\u0119z\u0142\u00f3w<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/c222cea4613ad7096bb097fee16bbb48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/4b9459ba3d7cf34ec1e4ad4cd34adc09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Hosty straci\u0142y cz\u0119\u015b\u0107 \u015bcie\u017cek do pami\u0119ci masowej, kontynuuj\u0105c prac\u0119 przez pozosta\u0142e z drugim w\u0119z\u0142em. Wydajno\u015b\u0107 spad\u0142a na kilka sekund z powodu rekonstrukcji \u015bcie\u017cek, a nast\u0119pnie wr\u00f3ci\u0142a do normalnych warto\u015bci. Nie by\u0142o przerwy w \u015bwiadczeniu us\u0142ug.<\/p>\n<p><\/p>\n<h3>Test na awari\u0119 szafy z ca\u0142ym sprz\u0119tem<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/bf4c1bbf2b4986911c4274525cf8e5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Budowanie odpornego rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/17d5aa73f72dce4fd9227cb6907c249c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>W tym przypadku wydajno\u015b\u0107 r\u00f3wnie\u017c spad\u0142a na kilka sekund z powodu rekonstrukcji \u015bcie\u017cek, a nast\u0119pnie wr\u00f3ci\u0142a do po\u0142owy warto\u015bci od pocz\u0105tkowego wska\u017anika. Wynik zmniejszy\u0142 si\u0119 o po\u0142ow\u0119 w stosunku do pierwotnego z powodu wy\u0142\u0105czenia jednego serwera aplikacji. Przerwy w \u015bwiadczeniu us\u0142ug r\u00f3wnie\u017c nie by\u0142o.<\/p>\n<p><\/p>\n<blockquote><p>Je\u015bli istnieje potrzeba wdro\u017cenia odpornego na awarie rozwi\u0105zania typu Cross-Rack disaster recovery dla Oracle w rozs\u0105dnej cenie i przy niewielkim wysi\u0142ku w zakresie wdra\u017cania\/administrowania, to wsp\u00f3\u0142praca Oracle RAC z architektur\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/page\/pochemu-accelstor\">AccelStor Shared-Nothing<\/a><\/noindex> b\u0119dzie jednym z najlepszych wybor\u00f3w. Zamiast Oracle RAC mo\u017ce to by\u0107 ka\u017cde inne oprogramowanie obs\u0142uguj\u0105ce klasteryzacj\u0119, te same DBMS lub systemy wirtualizacji, na przyk\u0142ad. Zasada budowy rozwi\u0105zania pozostanie taka sama, a ko\u0144cowy wska\u017anik \u2013 to zerowa warto\u015b\u0107 dla RTO i RPO.<\/p><\/blockquote>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/448538\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, Oracle RAC (Oracle Real Application Cluster) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 Oracle, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0446\u0435\u043b\u044c\u044e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0442\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0449\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u0432 \u0440\u043e\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23767,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31907","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\" \/>\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\/pl\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 Oracle RAC \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b AccelStor Shared-Nothing | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\" \/>\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-31T18:43:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:53+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\udd47Budowa odpornego na awarie rozwi\u0105zania na bazie Oracle RAC i architektury AccelStor Shared-Nothing | ProHoster","description":"Niekt\u00f3re aplikacje Enterprise i systemy wirtualizacji maj\u0105 swoje w\u0142asne mechanizmy do budowy rozwi\u0105za\u0144 odpornych na awarie.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 Oracle RAC \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b AccelStor Shared-Nothing | ProHoster","og:description":"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","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-31T18:43:53+00:00","article:modified_time":"2019-10-31T18:43:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31907","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-21 08:22:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:09:25","updated":"2026-01-21 08:22:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=31907"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/23767"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=31907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=31907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=31907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}