Pular para o conteúdo principal

RAC - Arquitetura de sistemas distribuídos no Oracle


#17
O Oracle RAC (Oracle Real Application Clusters).
Com o RAC você pode reúnir dois ou mais computadores interconectados ou servidores e formar um banco de dados em cluster que se comporta como um sistema único. Com isso os processos Oracle em execução em nós separados acessam os mesmos dados de um armazenamento em disco compartilhado, os dados são compartilhados através de softwares e o controle de acesso aos dados é gerenciado pelo Oracle RAC.

Vamos para a imaginação:
Você tem dois servidores e para esses servidores vamos dar o nome de nó, então, em cada nó você deve possuir o mesmo sistema operacional instalado, e em cada nó deve possuir uma instância do Oracle RAC instalada, esses nós vão trabalhar em paralelo e os dois nós vão se comunicar com o mesmo servidor de banco dados onde estão armazenados os datafiles (arquivos de dados) que armazenam as informações.
Agora imagine dezenas de nós interligados trabalhando em paralelo e dividindo a carga de trabalho, desta forma existe uma alta escalabilidade na performance e sem nenhum ponto de falha, pois, se um nó gerar uma falha os outros nós irão assumir a responsabilidade e dar continuidade na tarefa, as sessões na instância com falha são migradas para uma instância sobrevivente, enquanto o Oracle Clustware reinicia o componente com problema, isso ocorre de forma automática e transparente e o usuário final nem percebe a falha ocorrida.
Para realizar esse controle o Oracle Clustware necessita da troca contínua de informações entre todos os nodes do Cluster. E para isso é utilizado a interface de rede "Interconnect" e suas principais tarefas são:
Funções Heartbeat / Keep Alive (Sinal enviado em curtos intervalos para informar se o link entre dois dispositivos esta ativo, exemplo quando você dá um ping em um ip);
Troca de mensagens (envia informações sobre o funcionamento do nó);
Troca de informações sobre locks e deadlocks; (Para o uso correto e consistência nas informações, algumas tabelas devem ser fechadas para uso da instância e depois essa tabela é liberada, e isso é gerenciado pelo Cache Fusion)
Atualização de cache (Cache Fusion);

Modos de ligações da interface Interconnect:

Modo Single-Switch:
Interfaces ligadas somente a um switch para o Interconnect dos nodes do clusters;
Pode ser configurado como Ativo/Ativo ou Ativo/Standby via Bonding.


Modo Multi-Switch:
Interfaces ligadas a duas ou mais switchs para o Interconnect dos nodes do clusters;
Pode ser configurado como Ativo/Ativo ou Ativo/Standby via Bonding ou HAIP.


Existem grandes benefícios na utilização do Oracle RAC, os principais são:

Disponibilidade em até 100%: segurança para falhas em servidores e instâncias;
Alta Escalabilidade: pode adicionar mais servidores/nodes com facilidade e de acordo com a necessidade.
Baixo Custo: somente é pago o que é utilizado;
Computação em grade (Grid):
Utilização de repositório de carga;
Execuções de processos de forma paralela;
Distribuição de carga entre os nodes do cluster.
Gerenciamento Unificado.

O Oracle RAC é um opcional do Banco de Dados Oracle 11g Enterprise Edition e vem incluso com o Banco de Dados Oracle 11g Standard Edition. Para seu funcionamento, é mandatório o uso de uma unidade de Storage externa comum a pelo menos 2 servidores.

Cache Fusion é um dos conceitos mais importantes e interessantes de uma configuração RAC e ele será abordado em um apêndice em separado.

Se tiverem dúvidas realizem um INSERT nos comentários e depois dê um COMMIT que depois respondo.

Abraço e bons estudos.

Comentários

Postagens mais visitadas deste blog

Conhecendo a arquitetura do Banco de Dados Oracle

#15 Vamos focar mais no ambiente de banco de dados mais comum, que é uma instância em um computador, abrindo um banco de dados armazenado em discos locais. Sempre que for mensionado instância, esta se referindo ao banco de dados em funcionamento. Um banco Oracle é composto por duas estruturas, uma lógica e uma física. A estrutura lógica é chamada de instância e composta por estruturas de memória e processos, a sua existência é temporária na memória RAM e CPU e fica ativa enquanto o banco Oracle estiver ligado, se desligar o banco Oracle toda a informação ou vestígios de sua existência será apagado da memória, ao ligar o banco Oracle a instância é carregada novamente na memória. Os processos que compõem a instância trabalham em segundo plano e fica ativo o tempo todo enquanto a instância estiver ativa. A estrutura física é onde fica armazenado as informações, e uma vez criado, ele existe até que o DBA deliberadamente decida exclui-lo. Quando um banco Oracle é iniciado, na me...

O Cache de Buffer do Banco de dados - Estruturas de Memória no Oracle

#21 Vamos conhecer um pouco mais sobre o Cache de Buffer de Dados. O Cache de Buffer de Dados é o local de trabalho do Oracle, é nessa área que ele executa as SQLs. A função dessa área é otimizar e melhorar o desempenho das instruções DML. O maior gargalo de um banco de dados é o I/O dos arquivos em disco. Mas antes de explicar como funciona o Cache de Buffer de Banco de dados, vamos entender rápidamente o que é bloco, desta forma você não fica perdido, os arquivos de dados que contém os registros que são as linhas da tabela, indices e outros objetos de dados são formatados em blocos de tamanho fixo, o DBA pode definir um tamanho para esses blocos ou deixar de forma automática. A quantidade de linhas por bloco é indefinida, pois, as linhas possuem comprimento variável, o comprimento desta linha dependerá do número de colunas e os tipos de informações definidos para a tabela. De acordo com tamanho das linhas, pode haver várias linhas por bloco ou uma linha pode se estender por vár...

Shared Pool - Estruturas de Memória no Oracle

#23 O Shared Pool é considerada umas das estruturas de memórias mais complexas da SGA, ela é dividida em dezenas de subestruturas e todas são gerenciadas internamente pelo Oracle. Mas nesse momento vamos citar apenas os 4 principais componentes desta estrutura, as demais serão analizadas posteriormente. Quando uma aplicação executa uma DML, vários processos internos no Oracle são realizados até o retorno do resultado para o usuário. E esses 4 componentes tem participação direta na execução da DML e com isso gerando um bom desempenho do banco de dados. Os 4 principais componentes são: - O Cache de Biblioteca - O Cache de Dicionário de Dados - A Área PL/SQL - O Cache de Resultados de Funções PL/SQL e Consultas SQL Agora, vamos conhecer um pouco mais de cada um. - O Cache de Biblioteca (library cache) Todas instruções DML enviadas pela aplicação devem ser analizadas pelo Oracle. Quem realiza essa análise é o parse, o parse converte o código escrito pelos progra...