Você está na página 1de 28

Oracle RAC com DNS: balanceamento de carga Round Robin

As organizações estão cada vez mais dependentes do funcionamento


adequado de seus bancos de dados devido ao impacto de seu mau
funcionamento e prejuízos gerados. Implantar soluções que
realmente garantam a alta disponibilidade em banco de dados e
software, mantendo-o disponível o maior tempo possível com menor
número de falhas, juntamente com alto desempenho e segurança, é a
procura de várias empresas. Dessa forma, ferramentas como a Oracle
Real Application Clusters, também chamada de Oracle RAC, tornam-
se uma solução para criação de um ambiente de alta disponibilidade.

A Oracle RAC é um cluster que consiste em múltiplos computadores


interconectados que têm como objetivo compartilhar e processar
requisições efetuadas com softwares para usuários finais, tornando o
banco de dados distribuído.

A Figura 1 exemplifica sua arquitetura e funcionamento. As três


aplicações/servidores web são usuários finais que enviam requisições
aos servidores (nodos) clusterizados. Antes da requisição ser recebida
por um dos servidores, o processo responsável por efetuar a conexão
é o chamado SCAN (Single Client Access Name), que trabalha como
um intermediário entre conexões de usuários e banco de dados.

As conexões só são permitidas quando não há interrupções entre


máquinas usuários, nodo do cluster e servidor de banco de dados. Em
seguida, cada instância interligada recebe as requisições efetuando o
balanceamento de carga a fim de distribuir o processamento.

Essa distribuição se dá pelo monitoramento de cada instância que é


feito por um processo em background chamado Heartbeat (é
um daemon que trabalha em background usado para monitorar se
determinado computador está ativo ou não.

Ele deve ser combinado com um gerenciador de cluster que possui


como tarefa iniciar e parar serviços como endereços IP e servidores
web).

SCAN (Single Client Access Name) é uma camada entre os clientes e os


ouvintes locais do cluster. Atua como uma única conexão para clientes
deixando transparente a falha de algum nodo do cluster. O SCAN
precisa que sejam definidos no mínimo três endereços IPs que
estejam na mesma sub-rede para utilizar o balanceamento de carga e
para alta disponibilidade independentemente do número de nodos no
cluster.

O benefício para os clientes que usam o SCAN é que eles não


precisarão de mudanças de configurações se adicionarmos ou
removermos nós no cluster.

Figura 1. Arquitetura do Oracle RAC

É importante observar que o processo de implantação e criação de um


cluster deve contemplar uma análise e projeção da estrutura do
ambiente de acordo com a especificidade da empresa, entre outras
características e necessidades. Neste contexto, este artigo apresenta
na prática a instalação da ferramenta Oracle Real Application Clusters
em sua versão 11g Release 2. A Oracle Real Application Clusters
fornece benefícios como:
· Alta disponibilidade: segurança para falhas em servidores e
instâncias;

· Escalabilidade: adicionar mais nodos/servidores em necessidade


futuras;

· Custo: somente é pago o que é utilizado;

· Computação em grade (Grid);

· Aumento e diminuição do cluster conforme necessidade;

· Adicionar e remover nodos com facilidade;

· Utilização de repositório de carga;

· Execuções de processos de forma paralela;

· Distribuição de carga entre os nodos do cluster.

Um dos mais importantes componentes da Oracle RAC é o Oracle


Clusterware, um software que agrupa todos os servidores individuais
para que cooperem como um único sistema. Este software pode
gerenciar todos os processos do cluster de forma independente
assegurando proteção para o ambiente clusterizado.

Qualquer processo que ele gere é conhecido como um recurso de


cluster, que pode ser uma instância ou um serviço. O Oracle
Clusterware possui quatro daemons que são iniciados em respawn, ou
seja, é responsável pela reinicialização do serviço caso seja finalizado
de forma inesperada ou incorreta. Os daemons são:

· CSSD (Cluster Syncronization Services Daemon): responsável por


controlar todos os nodos do cluster e ajudar no monitoramento de
saúde dos nós usando Voting Disk. Se falhar, o servidor é reiniciado
imediatamente. É o processo principal no cluster;

· CRSD (Cluster Ready Services Daemon): responsável pela realização


de todas as operações de recuperação e gerenciamento da alta
disponibilidade como o gerenciamento do OCR (Oracle Cluster
Registry). Caso algum recurso falhe, ele é reiniciado, e se o serviço
falhar, o serviço é reiniciado sem reiniciar o servidor;
· EVMD (Event Manager Daemon): responsável por publicar os
eventos que o CRS cria como, por exemplo: início da instância, parada
da instância, início e parada do listener. Caso falhe, é reiniciado sem
reiniciar o servidor;

· OPROCD (Process Monitor Daemon): responsável pela monitoração


do cluster a fim de fornecer I/O fencing. Quando o nodo apresentar
algum problema, esse processo I/O é removido. É um processo filho
do CSSD, e se falhar é reiniciado sem reiniciar o servidor.

OCR é o arquivo de controle do cluster onde são armazenadas


informações de status de cada recurso, como: os nomes dos nodos, os
endereços IPs e VIPs, qual a localização do Voting Disk, nome do
banco de dados e instâncias, nome dos listeners, etc.

A perda desse arquivo implica em parada total do ambiente. Já o


Voting Disk contém informações sobre a disponibilidade de cada
nodo, sendo que cada instância registra informações regularmente
nesse arquivo para indicar que estão ativas. Se um nó perder acesso ao
Voting Disk, ele será reiniciado imediatamente porque faz parte da
arquitetura do CSS (Serviço de Sincronização de Cluster).

Outros recursos importantes que o Oracle RAC possui são o VIP


(Virtual IP), FAN (Fast Application Notification), Database Services e
Cluster Verification Utility:

· VIP: é o endereço IP virtual de cada ponto do cluster. Se um nodo


cair, outro assume seu VIP. Assim os usuários não percebem a falha
do nodo;

· FAN (Fast Application Notification): é o mecanismo pelo qual as


aplicações são informadas da mudança no cluster e informações sobre
desempenho para que adaptem suas conexões;

· Database Services: São abstrações lógicas para gerenciar cargas de


trabalho de banco de dados;

· Cluster Verification Utility: é um utilitário para verificação de


componentes do Cluster que pode ser utilizado durante a instalação
ou mesmo para diagnosticar um problema em produção.
Nas seções seguintes serão apresentadas as etapas para instalação da
ferramenta Oracle RAC, iniciando da configuração do sistema
operacional. Em todo o processo de instalação foram utilizadas
máquinas virtuais usando VirtualBox, na versão 4.2.18 e sistema
operacional GNU/Linux Cent OS 5.9 i386 (x86-64), kernel 2.6.18-348.

Configuração do sistema operacional


A primeira etapa deste artigo deve ser feita para todos os nodos do
cluster. Estamos considerando que o sistema operacional está
instalado com uma memória RAM de no mínimo 2 GB, devido ao
mínimo exigido pelo software Oracle RAC.

Também é necessária a adição de duas interfaces de rede, uma para


conexão interna que será usada pelo nodo do cluster e a outra para
conexão externa, usada para receber conexões clientes. Foi instalado
o sistema operacional em três máquinas virtuais iguais, chamadas
respectivamente de RAC01, RAC02 e NFS conforme apresentado
na Figura 2.

Figura 2. Estrutura de nomes das máquinas virtuais

Em cada interface de rede criada na estrutura do Linux, foi dado o


nome eth0 para rede externa e eth1 para rede interna, com os IPs
definidos na Figura 3 configurados para os servidores RAC01, RAC02 e
NFS.
Figura 3. Definição dos IPs das interfaces de rede

Após configuração da rede é necessário informar os endereços IPs no


arquivo hosts do S.O. para que seja feito o relacionamento entre o
nome do computador e o endereço IP. Como será usado o recurso
SCAN do Oracle RAC, é necessário que sejam definidos no mínimo
três endereços IPs para cada nodo do cluster sendo: IP virtual, interno
e externo. No arquivo hosts foram estabelecidos os seguintes IPs
apresentados na Listagem 1.

Listagem 1. Lista de ips definidos.

# IP externo
192.168.1.10 rac01.rac.com rac01
192.168.1.20 rac02.rac.com rac02
# IP virtual
192.168.1.100 rac01-vip.rac.com rac01-vip
192.168.1.200 rac02-vip.rac.com rac02-vip
# IP interno
192.168.0.1 rac01-priv.rac.com rac01-priv
192.168.0.2 rac02-priv.rac.com rac02-priv
# NFS e DNS
192.168.1.25 nfs.rac.com nfs

Minimizar falhas e travamento do S.O. ajuda a manter o ambiente


clusterizado mais seguro. Para isso, os parâmetros lidos pela Oracle
RAC foram configurados e devem ser inseridos no arquivo sysctl.conf,
permitindo somente ser usado o valor máximo definido para cada
recurso visto na Tabela 1.
Parâmetros de kernel e limites de valores
fs.aio-max-nr 1048576
fs.file-max 6815744
kernel.shmmni 4096
kernel.sem 250 32000 100 128
net.ipv4.ip_local_port_range 9000 65500
net.core.rmem_default 262144
net.core.rmem_max 4194304
net.core.wmem_default 262144
net.core.wmem_max 1048586

Tabela 1. Parâmetros do kernel

Cada parâmetro é lido no momento da inicialização do S.O. Suas


funções são distintas e devem ser ajustadas para otimizar o máximo de
recurso possível dentro de um ambiente clusterizado. Para essa
configuração, valem as definições:

· fs.aio-max-nr: valor máximo de requisições I/O concorrentes


permitidas;

· fs.file-max: total de arquivos que o Linux deverá suportar em


paralelo;

· kernel.shmmni: máximo de segmentos de memória compartilhada;

· kernel.sem: máximo de semáforos para performance da rede;

· net.ipv4.ip_local_port_range: porta inicial e final para tráfego TCP e


UDP da rede;

· net.core.rmem_default: tamanho do buffer de recepção padrão para


todas as conexões;

· net.core.rmem_max: tamanho do buffer de recepção máximo para


todas as conexões;

· net.core.wmem_default: tamanho do buffer de envio padrão para


todas as conexões;
· net.core.wmem_max: tamanho do buffer de envio máximo para
todas as conexões.

Criação de usuários e grupos de usuários


A segunda etapa deve ser realizada para os nodos RAC01 e RAC02. O
usuário ‘oracle’ e os grupos de usuários ‘oinstall’ e ‘dba’ são criados por
medida de segurança para não comprometerem o funcionamento do
S.O., como pode ocorrer com o usuário administrador ao fazer
alterações em arquivos incorretamente. O grupo ‘dba’ se faz
necessário por identificar todas as contas de usuários que possuem
privilégios para acessar o banco de dados como ‘sysdba’. Já o grupo
‘oinstall’ serve para ter acesso ao catálogo de todo o software
instalado.

Com os usuários e grupos criados, foram atribuídos limites ao usuário


‘oracle’ para uso dos recursos do S.O.. Esta limitação foi feita para
melhorar o desempenho do software definindo a quantidade de
arquivos abertos e processos por usuários ou grupo de usuários.
A Tabela 2 apresenta valores definidos para o usuário ‘oracle’ nos
tipos soft e hard, e processos nproc, nofile e stack.

<dominio> <tipo> <item> <valor>


oracle Soft nproc 2047
oracle Hard nproc 16384
oracle Soft nofile 1024
oracle Hard nofile 65536
oracle Soft stack 10240

Tabela 2. Limitação de recurso para usuário ‘oracle’

O parâmetro soft serve para definir o mínimo e o hard definir o


máximo de recursos. Quanto ao nproc, serve para limitar qual o
número máximo de processos, e o nofile para limitar o número
máximo de arquivos abertos. Já o stack define o tamanho máximo de
pilha. Esses parâmetros devem ser descritos em linhas informando
um domínio, podendo ser o nome do usuário ou grupo de usuário, o
tipo, o item e o valor.
Configuração do servidor NFS
A configuração apresentada nesta etapa foi feita somente para o nodo
NFS, onde será o servidor de DNS e de balanceamento de carga. O
nome NFS vem de Network File System, é um sistema distribuído de
compartilhamento de arquivos e diretórios entre computadores
através da interface de rede chamada Sistema de Arquivo Virtual
(VFS), que utiliza protocolo TCP/IP.

Ele será usado para prover compartilhamento dos arquivos OCR,


Voting Disk e do banco de dados para instalação do Oracle RAC.

As duas instâncias (RAC01 e RAC02) referentes a cada nó do cluster


acessam o servidor NFS para efetuar a gravação e leitura nos arquivos
OCR e Voting Disk, a fim de monitorar as ações de cada nodo.
Na Figura 4 é ilustrado seu funcionamento.

Figura 4. Estrutura do servidor NFS

Para que os nodos do cluster acessem essas informações


compartilhadas no servidor NFS, se faz necessária a criação de
diretórios onde os arquivos OCR, Voting Disk serão armazenados e
esses diretórios devem ser montados para cada nodo do cluster. Com
isso, esses diretórios são montados com parâmetros específicos como:
leitura, gravação, qual tipo de acesso, etc., sendo adicionado do
arquivo ‘etc/exports’ do sistema operacional. Os principais parâmetros
são:

· ro: compartilhar para somente leitura;

· rw: compartilhar para leitura e gravação;

· sync: garante que os dados são gravados automaticamente em disco


após a transferência dos mesmos;

· async: responde as requisições antes da gravação em disco. Isso


resulta em perda de dados quando há perda de conexão do servidor;

· wdelay: aguarda todos os pedidos em fila antes da gravação do disco;

· no_wdelay: melhora o desempenho quando há várias solicitações de


gravação para o disco. Isso ocorre porque se houver um pedido de
gravação em andamento, a gravação do disco não é feita aguardando
esse pedido;

· secure_locks: exige autorização de todos usuários;

· insecure_locks: não exige autorização de todos os usuários;

· root_squash: impede que o usuário root tenha privilégios para alterar


os arquivos;

· no_root_squash: permite que o usuário root do S.O seja utilizado com


todos privilégios para alteração do arquivo.

No servidor NFS foi criado o arquivo exports montado da seguinte


forma:

· /shared_config
*(rw,sync,no_wdelay,insecure_locks,no_root_squash);

· /shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash).

Já os diretórios montados nos nodos do clusters no arquivo ‘etc/fstab’


do sistema operacional seguiram a estrutura:

· rw: monta o sistema para leitura e escrita;


· bg: se a primeira tentativa de montagem falhar, realiza a montagem
em segundo plano. Quando é feito em segundo plano, todas as outras
montagens também ficam em segundo plano;

· hard: se a operação do arquivo NFS tem um grande tempo de espera,


continua solicitando a operação;

· nointr: impede que as operações NFS sejam interrompidas enquanto


aguarda uma resposta do servidor;

· tcp: monta o sistema de arquivos usando protocolo TCP;

· vers: é uma alternativa para nfsvers. O nfsvers utiliza um número de


versão alternativo para entrar em contato com o servidor NFS no host
remoto;

· timeo: valor em décimos de segundo antes de enviar a primeira


retransmissão do arquivo. O valor padrão usado para TCP é 60
segundos;

· rsize: tamanho máximo de número de bytes usado para ler o arquivo;

· wsize: tamanho máximo de número de bytes usado para escrever no


arquivo;

· acregmin: o tempo mínimo em segundos que os atributos de um


arquivo normal devem estar em memória cache antes de solicitar
novas informações para o servidor;

· acregmax: o tempo máximo em segundos que os atributos de um


arquivo normal devem estar em memória cache antes de solicitar
novas informações para o servidor.

Os diretórios foram montados na seguinte estrutura:

· nfs:/shared_config /u01/shared_config nfs rw, bg, hard, nointr, tcp,


vers=3, timeo=600, rsize=32768, wsize=32768, actimeo=0, oac

· nfs:/shared_data /u01/oradata nfs rw, bg, hard, nointr, tcp, vers=3,


timeo=600, rsize=32768, wsize=32768, actimeo=0 0 0

Vale observar que antes dos diretórios serem montados, as pastas


‘shared_config’ e ‘shared_data’ foram criadas no servidor NFS
adicionando permissão ao usuário responsável pela instalação do
Oracle RAC.

Sem esta definição, o compartilhamento dos arquivos OCR e Voting


Disk não será realizado e isso trará total parada do cluster.

Configuração do DNS
O servidor DNS é o principal item para atender a outro recurso
chamado SCAN do Oracle RAC, com a funcionalidade do
balanceamento de carga estático utilizando algoritmo Round Robin.

Este algoritmo utiliza uma técnica que faz o direcionamento de forma


circular com as requisições que estão sendo distribuídas para os
servidores. Por exemplo, as conexões de entrada são direcionadas
para o servidor A, depois para o servidor B e para o servidor C,
retornando ao servidor A.

Por ser estático, o desempenho dos processadores é definido no início


da execução, tendo como objetivo reduzir o tempo de execução total
de um programa atual, enquanto minimiza o atraso de comunicação.

Em um ambiente onde vários nodos atuam como um único sistema, a


divisão da carga de trabalho é feita entre eles para que possam ter
aproveitamento do poder de processamento de cada máquina, assim
ganhando produtividade.

Conforme é ilustrado na Figura 5, as requisições clientes são


direcionadas para o servidor DNS e esse servidor retorna um endereço
IP ao cliente em uma ordem diferente para cada conexão. Durante a
instalação da ferramenta Oracle RAC, para cada um dos três
endereços IPs é criado um IP virtual SCAN e um ouvinte (listener),
criando uma relação de dependência entre eles.

Isso significa que cada par de recurso (IP virtual SCAN + listener) é
criado em um servidor diferente no cluster. Toda conexão que é
estabelecida é armazenada em parâmetros do banco de dados
chamados local_listerner e remote_listener. O local_listener especifica a
conexão do ouvinte local.

O remote_listener identifica os ouvintes SCAN. Quando um dos nodos


falha, o IP virtual SCAN irá perder conexão com o listener local. Ao
perder a conexão, o recurso SCAN irá redirecionar essa conexão para
o próximo endereço IP (listener local) que irá acessar os parâmetros
do banco de dados onde são armazenadas as conexões e direcionar a
conexão para o nodo com menor carga de trabalho.

Figura 5. Balanceamento de carga utilizando SCAN

Foi utilizado para implementação de DNS o BIND (Berkeley Internet


Name Domain) junto à ferramenta Nslookup, que serve para obter
informações de um determinado domínio, host e IP do servidor.

Com a instalação do BIND, o arquivo ‘named’ que significa Name


Daemon, seguiu as regras especificadas nas normas do protocolo
DNS. Para conexões das máquinas clientes, dos nodos dos clusters
para o servidor de DNS, a criação de zonas de conexões diretas e
reversas fazem parte do servidor de DNS. Isso irá garantir que o host
do servidor será traduzido para o seu endereço IP e vice-versa. Para as
conexões diretas foi criado:

zone "localdomain." IN { type master;

file "1.168.192.in-addr.arpa";

allow-update { none; }; };

E para conexões reversas:


zone "1.168.192.in-addr.arpa." IN { type master;

file "1.168.192.in-addr.arpa";

allow-update { none; }; };

Observando esses comandos, a instrução ‘IN’ é responsável por fazer


apontamento do host do servidor para o endereço IP e na segunda
instrução, efetuar o apontamento do endereço IP ao host. Para o
apontamento ser realizado no arquivo ‘localdomain.zone’ criado,
devem ser inseridos quais hosts e endereços IP compõem o servidor
de DNS informando qual host irá apontar para seu endereço IP. Veja o
exemplo da Listagem 2.

Listagem 2. Definição de IPs

IN NS localhost
localhost IN A 127.0.0.1
rac01 IN A 192.168.1.10
rac02 IN A 192.168.1.20
rac01-priv IN A 192.168.0.1
rac02-priv IN A 192.168.0.2
rac01-vip IN A 192.168.1.100
rac02-vip IN A 192.168.1.200
rac01-scan IN A 192.168.1.55
rac01-scan IN A 192.168.1.56
rac01-scan IN A 192.168.1.57

O mesmo é feito para o arquivo ‘1.168.192.in-addr.arpa.zone’. A


diferença dessas instruções está na instrução “IN PTR”, onde acontece
o apontamento reverso (ver Listagem 3). Vale ressaltar que cada nodo
do cluster precisa conter no arquivo ‘resolv.conf’ o IP do servidor de
DNS e por onde o host irá buscar para que haja comunicação entre
eles. O ‘named’ deve ser iniciado automaticamente e para isso deve ser
ativado seu respectivo servidor no sistema operacional.

Listagem 3. Arquivo 1.168.192.in-addr.arpa.zone’

$ORIGIN 1.168.192.in-addr.arpa.
$TTL 1H
@ IN SOA nfs.rac.com. root.nfs.rac.com. (
2
3H
1H
1W
1H )
0.168.192.in-addr.arpa. IN NS nfs.rac.com.

10 IN PTR rac01.rac.com.
20 IN PTR rac02.rac.com.
100 IN PTR rac01-vip.rac.com.
200 IN PTR rac02-vip.rac.com.
55 IN PTR rac01-scan.rac.com.
56 IN PTR rac01-scan.rac.com.
57 IN PTR rac01-scan.rac.com.

Criação de diretórios para arquivos de


configuração
Na instalação do Oracle RAC, vários arquivos de configurações são
criados como OCR, Voting Disk, Listeners, arquivos para manipulação
do cluster, arquivos de instalação, etc.

Para que esses arquivos fiquem de fácil acesso e controle, a criação de


uma estrutura de diretórios, como ilustrada na Figura 6, se faz
necessário nos nodos do cluster. Os mesmos diretórios não são
criados no servidor NFS.

Esses diretórios serão definidos na instalação do Oracle RAC, que é


feita somente no nodo RAC01 (nodo principal). Isso porque a própria
ferramenta já se encaminha de copiar os arquivos de configurações
criados para os outros nodos do cluster.
Figura 6. Estrutura de arquivos

Observe as pastas com destaque em amarelo. Elas foram criadas


somente no nodo NFS com o nome da pasta ‘rac01’, porque são pastas
compartilhadas que serão acessadas por todos os nodos do cluster.

Com os diretórios criados e definidos, o usuário do sistema


operacional responsável pelo acesso e manipulação da ferramenta
Oracle RAC precisa ter acesso a esses diretórios e os acessar de uma
forma rápida e eficiente.

Isso é feito inserindo os diretórios, nome do banco de dados,


localização dos arquivos de instalação, identificador de cada instância,
definição do terminal para o ambiente Linux, lista de diretórios
compartilhados e lista de classes Java compiladas. Os parâmetros que
serão adicionados ao arquivo ‘.bash_profile’ que contém
configurações que serão executas no momento da inicialização do
login do usuário são:

· ORACLE_HOSTNAME: nome host do servidor;


· ORACLE_UNQNAME: nome único para o banco de dados;

· ORACLE_BASE: especifica a base de estrutura de diretórios da


Oracle;

· ORACLE_HOME: especifica o diretório que contém o software da


Oracle;

· GRID_HOME: especifica o diretório que contém os arquivos


instalados do Oracle;

· ORACLE_SID: especifica o identificador do sistema Oracle. Cada


instância deve possuir seu identificador único;

· ORACLE_TERM: definição do terminal para o ambiente;

· PATH: usado pelo shell para localizar programas executáveis;

· LD_LIBRARY_PATH: especifica a lista de diretórios que estão


compartilhadas;

· CLASSPATH: especifica o diretório ou lista de diretórios que contém


classes Java compiladas.

Esses parâmetros foram configurados no nodo RAC01 e RAC02


conforme Tabela 3.

Parâmetro Valor
export RAC01.rac.com (para o RAC01)
ORACLE_HOSTNAME
RAC02.rac.com (para o RAC02)
export ORCL
ORACLE_UNQNAME
export ORACLE_BASE /u01/app/oracle
export $ORACLE_BASE/product/11.2.0/db_1
ORACLE_HOME
export GRID_HOME /u01/app/11.2.0/grid
export ORACLE_SID ORCL1 (para o RAC01)
ORCL2 (para o RAC02)
export Xterm
ORACLE_TERM
export PATH /usr/sbin:$PATH
export PATH $ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export $ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH
export CLASSPATH $ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HO

Tabela 3. Estrutura do arquivo .bash_profile

Relação de confiança entre os servidores


A relação de confiança permite que um usuário se conecte via ssh a
outro servidor sem precisar se autenticar, sendo importante para
comunicação entre os clusters. Primeiro cada serviço deve possuir sua
chave de segurança que é a validação na execução do ssh. O comando
utilizado para criar essa chave foi ‘ssh–keygen –t rsa’.

Depois, deve-se criar a relação de segurança. Isso irá garantir acesso


entre os servidores sem solicitar a senha. Para isso, foi usado o
comando ‘cat /home/oracle/.ssh/id_rsa.pub | ssh oracle@<nome host
do nodo> 'cat >> /home/oracle/.ssh/authorized_keys'’. O comando foi
executado primeiro no nodo RAC01 e depois RAC02.

No arquivo ‘known_host’s fica a habilitação de comunicação de


confiança entre os IPs. Ela foi feita usando os comandos em apenas
um nodo e copiando esse arquivo para o outro. Os comandos podem
ser vistos na Listagem 4.

Listagem 4. Definindo a relação de confiança entre os servidores

ssh RAC01 date


ssh RAC02 date
ssh RAC01-priv date
ssh RAC02-priv date
ssh RAC01.rac.com date
ssh RAC02.rac.com date
ssh RAC01-priv.rac.com date
ssh RAC02-priv.rac.com date

Vale ressaltar que a relação de confiança criada é para os servidores


do cluster, mas não é necessário para instalação do Oracle RAC,
porque no assistente gráfico da instalação da ferramenta há como
criar essa relação de confiança.

Instalação do Oracle RAC


Todos os processos de instalação do Oracle RAC são o uso das as
configurações e parametrizações definidas nas etapas vistas até aqui.
O que será feito a partir de agora é direcionar cada configuração para
cada etapa da instalação.

Antes da instalação ser iniciada, existe um processo junto aos arquivos


de instalação que serve para analisar se todas as configurações feitas
nas etapas acima serão válidas para a ferramenta Oracle RAC,
evitando assim problemas durante a instalação. No comando a seguir,
onde definimos RAC01 e RAC02 estamos definindo os nomes dados
aos nodos do cluster:

‘./runcluvfy.sh stage -pre crsinst -n RAC01,RAC02 -fixup –verbose’.

Para iniciar o assistente gráfico de instalação, deve-se ir ao diretório


onde o software foi baixado, acessar a pasta ‘install’ e executar o
comando ‘./runinstaller’. Até a etapa 4 desta instalação, temos
configurações para definição da estrutura do cluster sendo definido
‘Install and Configure Grid Infrastructure for a Cluster’ e tipo de
licença como gratuita.

Na próxima etapa, vista na Figura 7, é o local onde é definido o IP


público virtual (VIP) de cada nodo do cluster. Essa validação é
importante para que haja a relação de confiança entre eles e também
serão esses os IPs usados para mascarar quaisquer falhas que possam
a vir ocorrer em algum nodo.

Caso não tenha sido criada a relação de segurança descrita na etapa 6,


podemos realizar esta configuração nesta etapa da instalação
informando o usuário e senha criados no sistema operacional.
Figura 7. Instalação Oracle RAC

A próxima etapa ilustrada na Figura 8 é o local de criação dos arquivos


OCR e Voting Disk. A opção Shared File System (Sistema de Arquivo
Compartilhado) quer dizer que os arquivos serão criados no servidor
NFS, que possui todos os diretórios compartilhados.

Figura 8. Instalação Oracle RAC

Nas etapas 8, 9 e 10 é definida a localização para salvar o arquivo OCR


e Voting Disk utilizando a opção redundância externa (External
Redundancy), pois não está sendo utilizado ASM (Automatic Storage
Management) e não será feito o espelhamento entre os grupos de
volume.

O ASM é um gerenciador de volumes e, ao mesmo tempo, um sistema


de arquivos para banco de dados Oracle o qual suporta configurações
do tipo single-instance e RAC. O ASM é uma solução alternativa de
gerenciamento de volume de discos, sistemas de arquivos e raw
devices.
O ASM utiliza agrupamento de discos para armazenar arquivos de
dados. Um ASM disk group nada mais é do que uma coleção de discos
os quais o ASM gerencia como se fosse apenas uma unidade de disco.

No ambiente criado neste artigo, para o arquivo OCR foi informado o


diretório compartilhado ‘/u01/shared_config/rac01/ocr’ e para o
arquivo Voting Disk, o diretório ‘/u01/shared_config/rac01/vdsk’.

Observe que cada um desses arquivos é essencial para o


funcionamento do Oracle RAC. Esses arquivos não podem ser
apagados ou movidos para outro lugar sem alteração da configuração
do software ou sem ter o backup de segurança.

Nas etapas entre 10 e 15 foram feitas configurações dos grupos e


diretórios que serão usados pelo software.

Foi definido o local para salvar arquivos de instalação e criação do


inventário de softwares instalados. Na etapa 16 acontece a instalação e
cópia dos arquivos para os nodos RAC01 e RAC02.

Após todo processo de instalação, é necessária a execução de dois


scripts que serviram para criação dos arquivos OCR e Voting Disk em
cada nodo do cluster. Os scripts devem ser executados em cada nodo e
na ordem solicitada com o usuário “root” do sistema operacional.

O primeiro script ‘orainsRoot.sh’ é executado para definição de


privilégios ao usuário e grupo de usuário para ler e escrever
informações no diretório ‘/u01/app/oraInventory’. O segundo cria os
arquivos OCR e Voting Disk no servidor NFS com base nas
informações de cada nodo do cluster. Na Figura 9 é possível ver esses
scripts.
Figura 9. Scripts de Instalação Oracle RAC

A instalação do Oracle Cluster é concluída com a execução dos scripts.


O próximo passo é a instalação do Oracle Database e criação do banco
de dados. Para iniciar o assistente gráfico do Oracle Database, deve-se
acessar a pasta onde ele foi extraído e executar o comando
‘runinstaller’.

Até a etapa 2 da instalação temos as configurações da licença do


software, definindo a opção a ser instalada selecionando ‘install
database software only’. Na etapa 3 da Figura 10 temos a seleção dos
nodos do cluster que terão acesso compartilhado ao banco de dados.
Em nosso caso selecionamos os nodos RAC01 e RAC02.
Figura 10. Instalação Oracle Database

As configurações que foram feitas até a etapa 10 já foram definidas na


criação dos diretórios feitos na Etapa 5 deste artigo. Assim, foi
definido no assistente gráfico que a edição do software que foi usada
foi a Enterprise e também foram definidos o local onde foi instalado o
software e os grupos de usuários. Na próxima etapa apresentada
na Figura 11, é mostrado em tela um novo script que deve ser
executado nos nodos RAC01 e RAC02 para que sejam criados os
arquivos de configurações definidos anteriormente. Primeiro
devemos executar no nodo RAC01 e depois no RAC02.

Figura 11. Script de Instalação Oracle Database

O último processo dessa instalação é a criação do banco de dados, que


foi realizado utilizando o assistente gráfico da ferramenta Oracle
Database chamado pelo comando ‘dbca’. Na primeira etapa foi
selecionado “Oracle Real Application Clusters Database” e na segunda,
“Create a Database” para criar um novo banco de dados.

Na Figura 12 foi selecionado o template “General Purpose or


Transaction Processing (Uso Geral ou Processamento de Transações)”
para que esse ambiente clusterizado seja otimizado de forma que
possa receber milhares de transações com muitos usuários
concorrentes por dia. Essas transações consistem em leitura, gravação
e exclusão de dados no banco de dados.
Figura 12. Criação do banco de dados

Na instalação do Oracle RAC foi alterado o arquivo ‘.bash_profile’ feito


na Etapa 5 incluindo o parâmetro ‘ORACLE_UNQNAME’ como ‘ORCL’,
que é o nome único do banco de dados, sendo esse o nome e o prefixo
dado ao “Global Database Name” e “Sid Prefix” como ilustrado
na Figura 13.

Observe na imagem que os nodos RAC01 e RAC02 estão selecionados.


Isso irá garantir que o banco de dados será criado para os dois nodos.

Figura 13. Criação do banco de dados

Umas das etapas mais importantes é a configuração e a definição de


senhas para os usuários do banco de dados. Nessa atividade são
criados os usuários sys, system, dbsnmp e sysman. As funções desses
usuários são:
· sys: pode executar todas as funções administrativas tais como
backup e recuperação. Esse usuário concede privilégios ao usuário
sysdba;

· system: pode executar todas as funções administrativas exceto


backup, recuperação e atualização do banco de dados;

· dbsnmp: usado para monitorar e gerenciar o banco de dados no


Oracle Enterprise Manager;

· sysman: pode executar todas as funções administrativas no Oracle


Enterprise Manager.

Em seguida foi definido o local para armazenar todos os arquivos do


banco de dados usando um sistema de arquivos chamado Cluster File
System (CFS), criado especificamente para uso do cluster.

O CFS permite que o software da Oracle seja acessado por todos os


nodos do cluster. Todas as máquinas do CFS têm acesso igual a todos
os dados e podem processar qualquer transação. Dessa forma, o
Oracle RAC com CFS garante a redundância completa do software do
banco de dados para os clusters, enquanto simplifica a instalação e a
administração. Na Figura 14 foi definido o diretório do servidor NFS
‘/u01/oradata’.

Figura 14. Configuração do Cluster File System

A área de recuperação flash (Flash Recovery Area - FRA) tem como


função minimizar o gerenciamento do espaço em disco para os
arquivos de backup. Quanto maior for essa área, mais útil se torna. O
ideal é que ela seja grande o suficiente para conter todas as copias dos
arquivos de dados, backups, redo logs, arquivos de log e arquivos de
controle.

Neste artigo, na Figura 15 foi definido o local para essa função no


servidor NFS no diretório compartilhado chamado ‘/u01/oradata/’ com
tamanho 150000 MB reservado para a FRA.

Figura 15. Configuração da Flash Recovery Area

Nas etapas finais foram mantidas as configurações padrões. Essas


configurações são a definição da criação do Sample Schemas e
memória SGA e PGA.

O Sample Schemas são esquemas de exemplos do banco de dados,


podendo ou não ser criados no momento da instalação. Esses
esquemas fornecem uma plataforma comum para exemplos em cada
versão do banco de dados.

O SGA (System Global Area) é um grupo de estruturas de memória


compartilhada que contêm dados e informações de controle para cada
instância do banco de dados como, por exemplo: bloco de dados em
cache e áreas de SQL compartilhadas.

Já o PGA (Program Global Area) é uma região de memória que contém


dados e informações de controle para um processo do servidor, sendo
que sua memória não é compartilhada tendo acesso exclusivo
somente para processos do servidor. Veja na Figura 16 que foi
definido o tamanho total de memória 700MB alocada para essas
estruturas de memória.
Figura 16. Configuração da memória SGA e PGA

Com essa última configuração, a instalação do Oracle Real Application


Clusters com dois nodos e com um servidor de NFS e DNS com
balanceamento de carga Round Robin está concluída. Uma das formas
de saber se a instalação obteve sucesso é acessar o diretório
‘/u01/app/11.2.0/grid/bin’ e executar o comando ‘crsctl status resource
–t’. Ele irá mostrar que o banco de dados ORCL está com status “open”
para os dois nodos do cluster.

Este artigo apresentou todos os passos para a instalação da ferramenta


Oracle Real Application Cluster com balanceamento de carga Round
Robin, utilizando máquinas virtuais com o objetivo de criar um
ambiente clusterizado.

O processo de instalação exige um bom nível de conhecimento sobre


sistemas operacionais Linux, redes e a ferramenta Oracle RAC.
A Figura 17 representa o ambiente clusterizado criado neste artigo.
Ele recebe as requisições pelo servidor NFS e também de DNS e as
direciona para uma instância ativa fazendo o balanceamento de carga.
Figura 17. Estrutura do ambiente criado para Oracle RAC

Esta ferramenta é complementar a outras ferramentas da própria


Oracle, visando atingir altos níveis de disponibilidade e garantindo
segurança contra perda e acesso aos dados.

Você também pode gostar