{"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\/pt\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","title":{"rendered":"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Numerosos aplicativos e sistemas de virtualiza\u00e7\u00e3o Enterprise possuem seus pr\u00f3prios mecanismos para construir solu\u00e7\u00f5es de alta disponibilidade. Em particular, o Oracle RAC (Oracle Real Application Cluster) consiste em um cluster de dois ou mais servidores de banco de dados Oracle que trabalham em conjunto para balancear a carga e garantir a alta disponibilidade em n\u00edvel de servidor\/aplicativo. Para operar nesse modo, \u00e9 necess\u00e1rio um armazenamento compartido, normalmente na forma de um sistema de armazenamento de dados (SCD). <\/p>\n<p><\/p>\n<p>Como j\u00e1 discutimos em um de nossos <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/441780\/\">de artigos<\/a><\/noindex>, o pr\u00f3prio SCD, apesar de ter componentes duplicados (incluindo controladores), ainda possui pontos de falha \u2013 principalmente na forma de um \u00fanico conjunto de dados. Portanto, para construir uma solu\u00e7\u00e3o Oracle com requisitos elevados de confiabilidade, o esquema \"N servidores \u2013 um SCD\" precisa ser aprimorado.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura 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>Primeiramente, \u00e9 claro, \u00e9 necess\u00e1rio definir quais riscos estamos tentando mitigar. Neste artigo, n\u00e3o abordaremos a prote\u00e7\u00e3o contra amea\u00e7as do tipo \"a meteorito caiu\". Assim, a constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de recupera\u00e7\u00e3o de desastres com localiza\u00e7\u00e3o geogr\u00e1fica distribu\u00edda ficar\u00e1 para um dos pr\u00f3ximos artigos. Aqui, discutiremos a chamada solu\u00e7\u00e3o de recupera\u00e7\u00e3o de desastres Cross-Rack, onde a prote\u00e7\u00e3o \u00e9 constru\u00edda no n\u00edvel dos racks de servidores. Os pr\u00f3prios racks podem estar localizados em um \u00fanico ambiente ou em diferentes locais, geralmente dentro de um mesmo edif\u00edcio.<\/p>\n<p><\/p>\n<p>Esses racks devem conter todo o conjunto necess\u00e1rio de hardware e software que permita o funcionamento dos bancos de dados Oracle independentemente do estado do \"vizinho\". Em outras palavras, usando a solu\u00e7\u00e3o de recupera\u00e7\u00e3o de desastres Cross-Rack, eliminamos riscos em caso de falha:<\/p>\n<p><\/p>\n<ul>\n<li>Servidores de aplicativo Oracle<\/li>\n<li>Sistemas de armazenamento<\/li>\n<li>Sistemas de comuta\u00e7\u00e3o<\/li>\n<li>Falha total de todo o equipamento no rack:\n<ul>\n<li>Falha de energia<\/li>\n<li>Falha do sistema de refrigera\u00e7\u00e3o<\/li>\n<li>Fatores externos (humanos, naturais, etc.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>A duplica\u00e7\u00e3o de servidores Oracle implica o pr\u00f3prio princ\u00edpio de funcionamento do Oracle RAC e \u00e9 realizada por meio de um aplicativo. A duplica\u00e7\u00e3o de sistemas de comuta\u00e7\u00e3o tamb\u00e9m n\u00e3o apresenta problemas. No entanto, a duplica\u00e7\u00e3o do sistema de armazenamento \u00e9 mais complicada.<\/p>\n<p><\/p>\n<p>A op\u00e7\u00e3o mais simples \u00e9 a replica\u00e7\u00e3o de dados do sistema de armazenamento principal para o secund\u00e1rio. Sincronizada ou ass\u00edncrona, dependendo das capacidades do armazenamento. Com a replica\u00e7\u00e3o ass\u00edncrona, surge imediatamente a quest\u00e3o de garantir a consist\u00eancia dos dados em rela\u00e7\u00e3o ao Oracle. Mas mesmo que haja integra\u00e7\u00e3o program\u00e1tica com o aplicativo, em qualquer caso, ap\u00f3s uma falha no armazenamento principal, ser\u00e1 necess\u00e1rio a interven\u00e7\u00e3o manual dos administradores para transferir o cluster para o armazenamento de backup.<\/p>\n<p><\/p>\n<p>Uma op\u00e7\u00e3o mais complexa s\u00e3o os 'virtualizadores' de armazenamento program\u00e1ticos e\/ou de hardware, que eliminam problemas de consist\u00eancia e interven\u00e7\u00e3o manual. No entanto, a complexidade de implementa\u00e7\u00e3o e administra\u00e7\u00e3o subsequente, al\u00e9m do custo exorbitante de tais solu\u00e7\u00f5es, afastam muitos.<\/p>\n<p><\/p>\n<p>Para cen\u00e1rios como a recupera\u00e7\u00e3o de desastres Cross-Rack, a solu\u00e7\u00e3o All Flash AccelStor NeoSapphire\u2122 \u00e9 perfeita. <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex> Usando a arquitetura Shared-Nothing. Este modelo consiste em um sistema de armazenamento em duas unidades que utiliza sua pr\u00f3pria tecnologia FlexiRemap\u00ae para operar com unidades flash. Gra\u00e7as a <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/\">FlexiRemap\u00ae<\/a><\/noindex> O NeoSapphire\u2122 H710 pode fornecer desempenho de at\u00e9 600K IOPS@4K de escrita aleat\u00f3ria e 1M+ IOPS@4K de leitura aleat\u00f3ria, o que \u00e9 inating\u00edvel ao usar sistemas de armazenamento baseados em RAID cl\u00e1ssicos.<\/p>\n<p><\/p>\n<p>Mas a principal caracter\u00edstica do NeoSapphire\u2122 H710 \u00e9 a implementa\u00e7\u00e3o de duas unidades em gabinetes separados, cada uma com sua pr\u00f3pria c\u00f3pia de dados. A sincroniza\u00e7\u00e3o das unidades \u00e9 realizada por meio de uma interface externa InfiniBand. Com essa arquitetura, \u00e9 poss\u00edvel colocar as unidades em locais diferentes a uma dist\u00e2ncia de at\u00e9 100m, possibilitando assim a solu\u00e7\u00e3o Cross-Rack de recupera\u00e7\u00e3o de desastres. Ambas as unidades operam completamente em modo s\u00edncrono. Do lado dos hosts, o H710 aparece como um sistema de armazenamento de dois controladores comum. Portanto, n\u00e3o h\u00e1 necessidade de op\u00e7\u00f5es de software e hardware adicionais nem de configura\u00e7\u00f5es especialmente complexas.<\/p>\n<p><\/p>\n<p>Se compararmos todas as solu\u00e7\u00f5es de recupera\u00e7\u00e3o de desastres Cross-Rack mencionadas acima, a da AccelStor se destaca claramente das demais:<\/p>\n<p><\/p>\n<p>AccelStor NeoSapphire\u2122 Arquitetura Shared Nothing<br \/>\nVirtualizador de armazenamento program\u00e1tico ou de hardware<br \/>\nSolu\u00e7\u00e3o baseada em replica\u00e7\u00e3o<\/p>\n<p><b>Acessibilidade<\/b><\/p>\n<p>Falha do servidor<br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><\/p>\n<p>Falha do switch<br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><\/p>\n<p>Falha do sistema de armazenamento<br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Tempo de Inatividade<\/b><\/p>\n<p>Falha de todo o arm\u00e1rio<br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Sem Tempo de Inatividade<\/b><br \/>\n<b>Tempo de Inatividade<\/b><\/p>\n<p><b>Custo e complexidade<\/b><\/p>\n<p>Custo da solu\u00e7\u00e3o<br \/>\nBaixo*<br \/>\nAlta<br \/>\nAlta<\/p>\n<p>Complexidade de implementa\u00e7\u00e3o<br \/>\nBaixo<br \/>\nAlta<br \/>\nAlta<\/p>\n<p><\/p>\n<p><i>*AccelStor NeoSapphire\u2122 \u00e9, de fato, um array All Flash que, por defini\u00e7\u00e3o, n\u00e3o tem um custo muito baixo, especialmente considerando sua capacidade duas vezes maior. No entanto, ao comparar o custo total da solu\u00e7\u00e3o com solu\u00e7\u00f5es similares de outros fornecedores, o custo pode ser considerado baixo.<\/i><\/p>\n<p><\/p>\n<p>A topologia de conex\u00e3o entre os servidores de aplica\u00e7\u00e3o e os n\u00f3s do array All Flash ser\u00e1 a seguinte:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/faf6a0a78ed13532a817fb67a2651b1b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ao planejar a topologia, tamb\u00e9m \u00e9 altamente recomend\u00e1vel duplicar os switches de gerenciamento e de interconex\u00e3o dos servidores.<\/p>\n<p><\/p>\n<p>Aqui e adiante, falaremos sobre a conex\u00e3o via Fibre Channel. No caso de uso de iSCSI, ser\u00e1 tudo o mesmo, com algumas adapta\u00e7\u00f5es quanto aos tipos de switches utilizados e um pouco diferentes configura\u00e7\u00f5es do array.<\/p>\n<p><\/p>\n<h3>Trabalho preparat\u00f3rio no array<\/h3>\n<p>\n<b class=\"spoiler_title\">Equipamento e software utilizados<\/b><\/p>\n<p><b>Especifica\u00e7\u00f5es dos servidores e switches<\/b><\/p>\n<p><\/p>\n<p>Componentes<br \/>\nDescri\u00e7\u00e3o<\/p>\n<p>Servidores Oracle Database 11g<br \/>\nDois <\/p>\n<p>Sistema operacional do servidor<br \/>\nOracle Linux<\/p>\n<p>Vers\u00e3o do banco de dados Oracle<br \/>\n11g (RAC)<\/p>\n<p>Processadores por servidor<br \/>\nDois processadores Intel\u00ae Xeon\u00ae CPU E5-2667 v2 @ 3.30GHz com 16 n\u00facleos cada<\/p>\n<p>Mem\u00f3ria f\u00edsica por servidor<br \/>\n128GB<\/p>\n<p>Rede FC<br \/>\nFC de 16Gb\/s com multipath<\/p>\n<p>FC HBA<br \/>\nEmulex Lpe-16002B <\/p>\n<p>Portas p\u00fablicas dedicadas de 1GbE para gerenciamento de cluster<br \/>\nAdaptador ethernet Intel RJ45<\/p>\n<p>Switch FC de 16Gb\/s<br \/>\nBrocade 6505<\/p>\n<p>Portas privadas dedicadas de 10GbE para sincroniza\u00e7\u00e3o de dados<br \/>\nIntel X520<\/p>\n<p><\/p>\n<p><b>Especifica\u00e7\u00e3o do array All Flash AccelStor NeoSapphire\u2122<\/b><\/p>\n<p><\/p>\n<p>Componentes<br \/>\nDescri\u00e7\u00e3o<\/p>\n<p>Sistema de armazenamento<br \/>\nModelo de alta disponibilidade NeoSapphire\u2122: H710<\/p>\n<p>Vers\u00e3o da imagem<br \/>\n4.0.1<\/p>\n<p>N\u00famero total de unidades<br \/>\n48<\/p>\n<p>Tamanho da unidade<br \/>\n1.92TB<\/p>\n<p>Tipo de unidade<br \/>\nSSD<\/p>\n<p>Portas de destino FC<br \/>\n16x portas de 16Gb (8 por n\u00f3)<\/p>\n<p>Portas de gerenciamento<br \/>\nO cabo ethernet de 1GbE conectando-se aos hosts atrav\u00e9s de um switch ethernet<\/p>\n<p>Porta de heartbeat<br \/>\nO cabo ethernet de 1GbE conectando entre dois n\u00f3s de armazenamento<\/p>\n<p>Porta de sincroniza\u00e7\u00e3o de dados<br \/>\nCabo InfiniBand de 56Gb\/s<\/p>\n<p>Antes de usar o array, \u00e9 necess\u00e1rio inicializ\u00e1-lo. Por padr\u00e3o, o endere\u00e7o de gerenciamento de ambos os n\u00f3s \u00e9 o mesmo (192.168.1.1). \u00c9 necess\u00e1rio conectar-se a eles um de cada vez para definir novos (agora diferentes) endere\u00e7os de gerenciamento e configurar a sincroniza\u00e7\u00e3o de tempo, ap\u00f3s o que as portas de gerenciamento podem ser conectadas a uma \u00fanica rede. A seguir, os n\u00f3s s\u00e3o agrupados em um par HA atrav\u00e9s da atribui\u00e7\u00e3o de sub-redes para conex\u00f5es Interlink.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/9eef0dd1ac3a2ae1d19b3484ec2b2a27.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ap\u00f3s a conclus\u00e3o da inicializa\u00e7\u00e3o, \u00e9 poss\u00edvel gerenciar o array a partir de qualquer n\u00f3.<\/p>\n<p><\/p>\n<p>Em seguida, criamos os volumes necess\u00e1rios e os publicamos para os servidores de aplica\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/57a23b64c2bcb3c9f477cc5009e1cd48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\u00c9 altamente recomendado criar v\u00e1rios volumes para Oracle ASM, pois isso aumentar\u00e1 o n\u00famero de targets para os servidores, o que, em \u00faltima an\u00e1lise, melhorar\u00e1 o desempenho geral (mais detalhes sobre filas em outra se\u00e7\u00e3o). <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/447390\/\">artigo<\/a><\/noindex>).<\/p>\n<p>\n<b class=\"spoiler_title\">Configura\u00e7\u00e3o de teste<\/b><\/p>\n<p>Nome do volume de armazenamento<br \/>\nTamanho do volume<\/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>Algumas explica\u00e7\u00f5es sobre os modos de opera\u00e7\u00e3o do array e os processos envolvidos em situa\u00e7\u00f5es n\u00e3o padronizadas<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/e0f9416f16bb8a13673cacfcf1792d9d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Cada conjunto de dados de um n\u00f3 possui um par\u00e2metro denominado \"n\u00famero da vers\u00e3o\". Ap\u00f3s a inicializa\u00e7\u00e3o, ele \u00e9 igual a 1. Se, por algum motivo, o n\u00famero da vers\u00e3o diferir, sempre ocorre a sincroniza\u00e7\u00e3o dos dados da vers\u00e3o mais alta para a mais baixa, ap\u00f3s a qual o n\u00famero da vers\u00e3o mais baixa \u00e9 ajustado, ou seja, isso significa que as c\u00f3pias s\u00e3o id\u00eanticas. As raz\u00f5es pelas quais as vers\u00f5es podem ser diferentes s\u00e3o:<\/p>\n<p><\/p>\n<ul>\n<li>Reinicializa\u00e7\u00e3o programada de um dos n\u00f3s<\/li>\n<li>Falha em um dos n\u00f3s devido a uma interrup\u00e7\u00e3o repentina (energia, superaquecimento, etc.). <\/li>\n<li>Interrup\u00e7\u00e3o da conex\u00e3o InfiniBand com impossibilidade de sincroniza\u00e7\u00e3o<\/li>\n<li>Falha em um dos n\u00f3s devido a corrup\u00e7\u00e3o de dados. Aqui ser\u00e1 necess\u00e1rio criar um novo grupo HA e realizar a sincroniza\u00e7\u00e3o completa do conjunto de dados.<\/li>\n<\/ul>\n<p><\/p>\n<p>De qualquer forma, o n\u00f3 que permanece online aumenta seu n\u00famero de vers\u00e3o em uma unidade, para que, ap\u00f3s a restaura\u00e7\u00e3o da conex\u00e3o, possa sincronizar seu conjunto de dados.<\/p>\n<p><\/p>\n<p>Se houver uma interrup\u00e7\u00e3o na conex\u00e3o pelo link Ethernet, o Heartbeat muda temporariamente para InfiniBand e retorna em 10 segundos ap\u00f3s a restaura\u00e7\u00e3o.<\/p>\n<p><\/p>\n<h3>Configura\u00e7\u00e3o de hosts<\/h3>\n<p><\/p>\n<p>Para garantir a toler\u00e2ncia a falhas e aumentar o desempenho, \u00e9 necess\u00e1rio ativar o suporte a MPIO para o array. Para isso, adicione as linhas ao arquivo \/etc\/multipath.conf e reinicie o servi\u00e7o multipath<\/p>\n<p>\n<b class=\"spoiler_title\">Texto oculto<\/b>devices {<br \/>\n device {<br \/>\n vendor \"AStor\"<br \/>\n path_grouping_policy \"group_by_prio\"<br \/>\n path_selector \"queue-length 0\"<br \/>\n path_checker \"tur\"<br \/>\n features \"0\"<br \/>\n hardware_handler \"0\"<br \/>\n prio \"const\"<br \/>\n failback immediate<br \/>\n fast_io_fail_tmo 5<br \/>\n dev_loss_tmo 60<br \/>\n user_friendly_names yes<br \/>\n detect_prio yes<br \/>\n rr_min_io_rq 1<br \/>\n no_path_retry 0<br \/>\n }<br \/>\n}<\/p>\n<p><\/p>\n<p>Al\u00e9m disso, para que o ASM funcione com MPIO atrav\u00e9s do ASMLib, \u00e9 necess\u00e1rio alterar o arquivo \/etc\/sysconfig\/oracleasm e, em seguida, executar \/etc\/init.d\/oracleasm scandisks<\/p>\n<p>\n<b class=\"spoiler_title\">Texto oculto<\/b><\/p>\n<p># ORACLEASM_SCANORDER: Matching patterns to order disk scanning<br \/>\nORACLEASM_SCANORDER=\"dm\"<\/p>\n<p># ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan<br \/>\nORACLEASM_SCANEXCLUDE=\"sd\"<\/p>\n<p><\/p>\n<h4>Nota<\/h4>\n<p><\/p>\n<p><i>Se n\u00e3o houver interesse em usar o ASMLib, \u00e9 poss\u00edvel utilizar regras UDEV, que s\u00e3o a base para o ASMLib.<\/i><\/p>\n<p><\/p>\n<p><i>A partir da vers\u00e3o 12.1.0.2 do Oracle Database, a op\u00e7\u00e3o est\u00e1 dispon\u00edvel para instala\u00e7\u00e3o como parte do software ASMFD.<\/i><\/p>\n<p>\u00c9 essencial garantir que os discos criados para o Oracle ASM estejam alinhados ao tamanho do bloco com o qual o array opera fisicamente (4K). Caso contr\u00e1rio, podem ocorrer problemas de desempenho. Portanto, \u00e9 necess\u00e1rio criar volumes com os par\u00e2metros adequados:<\/p>\n<p><\/p>\n<p><i>parted \/dev\/mapper\/device-name mklabel gpt mkpart primary 2048s 100% align-check optimal 1<\/i><\/p>\n<p><\/p>\n<h3>Distribui\u00e7\u00e3o de bancos de dados nos volumes criados para nossa configura\u00e7\u00e3o de teste<\/h3>\n<p><\/p>\n<p>Nome do volume de armazenamento<br \/>\nTamanho do volume<br \/>\nMapeamento de LUNs de Volume<br \/>\nDetalhe do Dispositivo de Volume ASM<br \/>\nTamanho da Unidade de Aloca\u00e7\u00e3o<\/p>\n<p>Data01<br \/>\n200GB<br \/>\nMapear todos os volumes de armazenamento para todos os ports de dados do sistema de armazenamento<br \/>\nRedund\u00e2ncia: Normal<br \/>\nNome: DGDATA<br \/>\nFinalidade: Arquivos de dados<\/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 \/>\nRedund\u00e2ncia: Normal<br \/>\nNome: DGGRID1<br \/>\nFinalidade: Grid: CRS e Vota\u00e7\u00e3o<\/p>\n<p>4MB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<br \/>\nRedund\u00e2ncia: Normal<br \/>\nNome: DGGRID2<br \/>\nFinalidade: Grid: CRS e Vota\u00e7\u00e3o<\/p>\n<p>4MB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<br \/>\nRedund\u00e2ncia: Normal<br \/>\nNome: DGREDO1<br \/>\nFinalidade: Log de redo da thread 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 \/>\nRedund\u00e2ncia: Normal<br \/>\nNome: DGREDO2<br \/>\nFinalidade: Log de redo da thread 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\">Configura\u00e7\u00f5es do banco de dados<\/b><\/p>\n<ul>\n<li>Tamanho do bloco = 8K<\/li>\n<li>Espa\u00e7o de swap = 16GB<\/li>\n<li>Desativar AMM (Gerenciamento Autom\u00e1tico de Mem\u00f3ria)<\/li>\n<li>Desativar Transparent Huge Pages<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">Outras configura\u00e7\u00f5es<\/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 # n\u00e3o configure isso se estiver usando 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>Teste de resist\u00eancia \u00e0 falha<\/h3>\n<p><\/p>\n<p>Para demonstra\u00e7\u00e3o foi utilizado o HammerDB para simular carga OLTP. Configura\u00e7\u00e3o do HammerDB:<\/p>\n<p><\/p>\n<p><b>N\u00famero de Armaz\u00e9ns<\/b><br \/>\n256<\/p>\n<p>Total de Transa\u00e7\u00f5es por Usu\u00e1rio<br \/>\n1000000000000<\/p>\n<p>Usu\u00e1rios Virtuais<br \/>\n256<\/p>\n<p><\/p>\n<p>O resultado foi 2.1M TPM, que est\u00e1 longe do limite de desempenho do array <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex>, mas \u00e9 o \u201cteto\u201d para a atual configura\u00e7\u00e3o de hardware dos servidores (principalmente devido aos processadores) e sua quantidade. O objetivo deste teste ainda \u00e9 demonstrar a resist\u00eancia do sistema como um todo, e n\u00e3o alcan\u00e7ar m\u00e1ximos de desempenho. Portanto, vamos apenas partir deste n\u00famero.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/6de29f092e4c96a980a5790d8dd9a447.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Teste de falha de uma das n\u00f3s<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/c222cea4613ad7096bb097fee16bbb48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/4b9459ba3d7cf34ec1e4ad4cd34adc09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Os hosts perderam parte dos caminhos para o armazenamento, continuando a operar atrav\u00e9s dos que restaram com o segundo n\u00f3. O desempenho caiu por alguns segundos devido \u00e0 reconfigura\u00e7\u00e3o dos caminhos, e em seguida voltou aos n\u00edveis normais. N\u00e3o houve interrup\u00e7\u00e3o no servi\u00e7o.<\/p>\n<p><\/p>\n<h3>Teste de falha do arm\u00e1rio com todo o equipamento<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/bf4c1bbf2b4986911c4274525cf8e5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/17d5aa73f72dce4fd9227cb6907c249c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Neste caso, o desempenho tamb\u00e9m caiu por alguns segundos devido \u00e0 reconfigura\u00e7\u00e3o dos caminhos, e depois voltou a metade do valor original. O resultado caiu para metade do inicial devido \u00e0 inatividade de um servidor de aplicativos. Tamb\u00e9m n\u00e3o houve interrup\u00e7\u00e3o no servi\u00e7o.<\/p>\n<p><\/p>\n<blockquote><p>Se houver necessidades para implementar uma solu\u00e7\u00e3o de recupera\u00e7\u00e3o de desastres Cross-Rack com alta disponibilidade para Oracle a um custo razo\u00e1vel e com poucos esfor\u00e7os de implanta\u00e7\u00e3o\/administrativo, a colabora\u00e7\u00e3o entre Oracle RAC e a arquitetura <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/page\/pochemu-accelstor\">AccelStor Shared-Nothing<\/a><\/noindex> ser\u00e1 uma das melhores op\u00e7\u00f5es. No lugar do Oracle RAC, pode haver qualquer outro software que suporte a clustering, como os mesmos bancos de dados ou sistemas de virtualiza\u00e7\u00e3o, por exemplo. O princ\u00edpio de constru\u00e7\u00e3o da solu\u00e7\u00e3o permanecer\u00e1 o mesmo. E o indicador final \u00e9 um valor zero para RTO e RPO.<\/p><\/blockquote>\n<p>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Constru\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade baseada em Oracle RAC e arquitetura AccelStor Shared-Nothing | ProHoster","description":"Um n\u00famero consider\u00e1vel de aplica\u00e7\u00f5es empresariais e sistemas de virtualiza\u00e7\u00e3o possui seus pr\u00f3prios mecanismos para construir solu\u00e7\u00f5es de alta disponibilidade.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/31907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=31907"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/31907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/23767"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=31907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=31907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=31907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}