Implante Bancos de Dados Oracle Eliminados, Escalonáveis e com Falha Linear em Oracle Cloud Infrastructure
Quando você precisar de um banco de dados que suporte escalabilidade extrema com isolamento completo de dados para seus aplicativos OLTP em escala empresarial, implante instâncias armazenadas do Oracle Database em uma topologia tolerante a falhas no Oracle Cloud Infrastructure.
Fragmentação é uma arquitetura de camada de dados na qual os dados são particionados horizontalmente em bancos de dados independentes, denominados fragmentos, sendo executados em um servidor separado com seus próprios recursos de CPU, memória e disco. Essa abordagem de nada compartilhada elimina pontos únicos de falha na camada da infraestrutura. Um pool de shards é apresentado à camada de aplicativos como um único banco de dados lógico, denominado banco de dados armazenado. Os aplicativos que têm uma estratégia de distribuição de dados bem definida e acessam dados principalmente usando uma chave de fragmentação podem aproveitar uma camada de dados fragmentada.
Arquitetura
As arquiteturas a seguir mostram topologias do Oracle Database 19c tolerantes a falhas e fragilizadas no Oracle Cloud Infrastructure, implantadas usando a pilha do Oracle Database Sharding fornecida no Oracle Cloud Marketplace.
As arquiteturas têm recursos redundantes em todas as camadas (diretor de pátios, catálogo e shards), para garantir a disponibilidade máxima do banco de dados fragmentado.
Implantação em vários domínios de disponibilidade
Esta arquitetura mostra um banco de dados fragmentado distribuído entre dois domínios de disponibilidade em uma região do Oracle Cloud Infrastructure.
Descrição da ilustração shards-single-region.png
Implantação em um único domínio de disponibilidade
Esta arquitetura mostra um banco de dados fragmentado distribuído entre os domínios de falha dentro de um único domínio de disponibilidade em uma região do Oracle Cloud Infrastructure.
Descrição da ilustração shards-single-ad.png
As arquiteturas incluem os seguintes componentes:
- Região
Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou continentes).
Todos os recursos dessa arquitetura são implantados em um compartimento que você especifica e dentro de uma única região do Oracle Cloud Infrastructure.
- Domínios de disponibilidade
Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna de domínios de disponibilidade. Portanto, não é possível afetar os outros domínios de disponibilidade na região.
- Domínios de falha
Domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de alimentação dentro de um domínio de falha.
Os recursos dessa arquitetura são distribuídos igualmente entre os domínios de falha em cada domínio de disponibilidade.
- VCN (rede virtual na nuvem) e sub-rede
Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs permitem controle total sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você poderá alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter como escopo uma região ou um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não são sobrepostos com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
Os recursos de computação e banco de dados nesta arquitetura são anexados a uma única sub-rede pública regional. Você pode especificar a VCN e a sub-rede a serem usadas. Se você quiser criar uma nova VCN e uma sub-rede, poderá especificar o bloco de endereços CIDR da VCN e da sub-rede.
- Gateway de internet
O gateway de internet permite tráfego entre as sub-redes públicas em uma VCN e a internet pública.
- Lista de segurança
Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que devem ser permitidos dentro e fora da sub-rede.
Essa arquitetura inclui uma lista de segurança para controlar o tráfego de/para os diretores de shard.
- Tabela de roteamento
As tabelas de roteamento virtual contêm regras para rotear o tráfego de sub-redes para destinos fora de uma VCN, geralmente por meio de gateways.
Essa arquitetura inclui uma tabela de roteamento para direcionar o tráfego da sub-rede para o gateway de internet.
- Diretórios de shards
O diretor de shard (também chamado de gerente de serviço global) é um listener de rede que permite o roteamento de conexão de alto desempenho para os shards de banco de dados apropriados com base nas chaves de fragmentação.
Você pode especificar o número de diretores de fragmentos necessários. Os diretores de shard são implantados em instâncias de computação individuais, que são distribuídas em todos os domínios de disponibilidade na região e entre os domínios de falha dentro de cada domínio de disponibilidade. Você pode escolher a forma das instâncias de computação a serem usadas para os diretores de shard.
- Catálogos de shards principais e stand-by
Um catálogo de shard é uma instância do Oracle Database de finalidade especial que suporta implantação automatizada de shard, gerenciamento centralizado de um banco de dados de shard e consultas de vários quintais.
Esta arquitetura contém um par principal de bancos de dados de catálogo, cada um de um sistema de BD de VM do Oracle Cloud Infrastructure de nó único. Você pode escolher a forma do banco de dados e a capacidade de armazenamento disponível para os bancos de dados do catálogo.
- Fragmentos do banco de dados
Cada shard do banco de dados é um sistema de BD de VM do Oracle Cloud Infrastructure de nó único. Você pode especificar o número de shards principais, a forma do banco de dados a ser usada e a capacidade de armazenamento disponível. Os shards são distribuídos uniformemente em todos os domínios de disponibilidade na região e entre os domínios de falha dentro de cada domínio de disponibilidade.
Ao implantar a arquitetura, você pode optar por provisionar um shard stand-by para cada shard principal.- Se sua região contiver vários domínios de disponibilidade, cada fragmento de um par principal será colocado em um domínio de disponibilidade separado.
- Se a região contiver apenas um domínio de disponibilidade, os shards principal e stand-by serão isolados em domínios de falha separados.
Recomendações
Os requisitos podem diferir da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.
- Tamanho e número de fragmentosAo implantar a pilha, você pode especificar a forma do banco de dados a ser usada e o número de shards.
- Escolha uma forma apropriada com base em seus requisitos de carga de trabalho. A forma especificada é usada para todos os fragmentos.
Após a implantação, você pode alterar a forma dos shards individuais para se adaptar às alterações na carga de trabalho. O shard para o qual você altera a forma é interrompido e reiniciado usando a nova forma.
- Em geral, um grande número de pequenas placas proporciona melhor tolerância geral a falhas do que um pequeno número de grandes placas. Para expandir a topologia ou melhorar a tolerância a falhas, você pode adicionar shards a qualquer momento sem afetar a disponibilidade dos shards existentes. Quando necessário, você pode dimensionar no banco de dados com shards; o último shard criado é removido primeiro depois de mover os dados para os outros shards.
- Escolha uma forma apropriada com base em seus requisitos de carga de trabalho. A forma especificada é usada para todos os fragmentos.
- Disponibilidade de fragmentos
Para garantir a alta disponibilidade dos shards, provisione shards stand-by e use o Oracle Data Guard para sincronização primária para stand-by e para failover.
- Disponibilidade do catálogo de shards
Para alta disponibilidade do catálogo de shard, provisione um catálogo stand-by e use o Oracle Data Guard para sincronização e failover. Observe que a disponibilidade do catálogo de shard não tem impacto na disponibilidade do banco de dados fragmentado. Uma interrupção do catálogo de shard afeta somente a capacidade de executar operações de manutenção ou consultas de vários quintais durante a falha no catálogo stand-by. As transações OLTP continuam a ser encaminhadas para os shards.
- Disponibilidade do diretor de shards
Para alta disponibilidade da camada do diretor de shard, implante vários diretores de shard. Você pode implantar até cinco diretores de shard em uma região. A Oracle recomenda que você implante pelo menos dois diretores de shard, isolados em domínios de disponibilidade separados ou domínios de falha.
- Armazenamento
A versão atual da pilha do Oracle Cloud Marketplace provisiona os shards do banco de dados e o banco de dados do catálogo com armazenamento baseado em LVM (Logical Volume Manager). Você pode especificar a capacidade de armazenamento disponível, começando de 256 GB a 40 TB. Escolha uma capacidade de armazenamento apropriada à sua carga de trabalho. Um volume em blocos do tamanho especificado é anexado a cada shard do banco de dados.
Você pode ampliar o armazenamento a qualquer momento sem afetar a disponibilidade do banco de dados. Observe que o armazenamento total usado é maior que o armazenamento disponível. Consulte a documentação do Oracle Cloud Infrastructure Database para obter mais informações.
- Design da rede
Quando você cria uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.
Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretende configurar conexões privadas.
Considerações
- Design do aplicativo
Qualquer aplicativo que tenha uma estratégia de distribuição de dados bem definida e acessa dados principalmente usando uma chave de fragmentação (como ID do cliente, número da conta e assim por diante) é adequado para bancos de dados fragmentados.
- Escalabilidade
Após implantar o banco de dados com shards, você pode aumentar ou diminuir o número de shards editando a pilha e aplicando as alterações. Dependendo do fator de replicação especificado durante a implantação da pilha, os shards stand-by também serão escalados.
Você também pode escalar o número de diretores de fragmentos.
- Segurança
Ao implantar o banco de dados fragmentado, especifique uma chave pública SSH para ativar conexões SSH seguras aos servidores de banco de dados.
- Isolamento de rede
Para garantir o isolamento da rede, implante o banco de dados em sharded em uma sub-rede privada. Para acesso administrativo aos servidores de banco de dados, você pode provisionar um host de bastion em uma sub-rede pública.
Implantar
Uma pilha baseada no Terraform para implantar essa arquitetura de referência está disponível no Oracle Cloud Marketplace.
- Vá para Oracle Cloud Marketplace.
- Clique em Obter Aplicativo.
- Siga os prompts na tela.