CENTRO UNIVERSITÁRIO UNIOPET
ENGENHARIA DE SOFTWARE
WILLIAN DESPLANCHES COSTA
ATIVIDADE 02 – PESQUISA SOBRE O ORACLE RAC
CURITIBA
2024
SUMÁRIO
1. Oque é......................................................................................................3
2. Requisitos.................................................................................................3
3. Como utilizar.............................................................................................4
3.1. Criação do Oracle RAC Database.................................................4
3.2. Testando acesso aos servidores....................................................7
3.3. Liberação de acesso à porta 1521 para todos os IPs...................8
3.4. Configuração de conexão utilizando o SQL Developer................10
3.5. Teste de Failover para uma conexão...........................................12
4. Referências.............................................................................................14
Oque é?
O Oracle Real Application Clusters (RAC) permite que os clientes
executem um único Oracle Database em vários servidores para maximizar a
disponibilidade e permitir a escalabilidade horizontal, enquanto acessam o
armazenamento compartilhado. As sessões de usuário conectando-se a
instâncias do Oracle RAC podem executar failover e reproduzir com segurança
as alterações durante as interrupções, sem nenhuma alteração nas aplicações
do usuário final, ocultando o impacto das interrupções dos usuários finais.
Requisitos
Primeiramente, é necessário certificar-se que a sua conta na nuvem
contém créditos livres ao menos:
• 4 OCPUs
• 30 GBs de RAM
• 300 GBs de Disco
• 2 IPs Públicos
Este passo a passo está dividido em 5 etapas:
• Criação do Oracle RAC Database.
• Testando acesso aos servidores.
• Liberação de acesso à porta 1521 para todos os IPs.
• Configuração de conexão utilizando o SQL Developer.
• Teste de Failover para uma conexão.
Como utilizar?
1. Criação do Oracle RAC Database
Na Home Page do Oracle Database Cloud Service, clique em “Create
Service”.
Na tela que abrir, defina um nome de Serviço para o seu novo BD RAC.
O mais importante nesta tela e esculher em “Software Edition” o “Enterprise
Edition – Extreme Performance“, conforme já explicado no início deste artigo.
Isto irá desbloquear a opção “Database Clustering with RAC” em “Database
Type“.
Após terminar de preencher, avance para a próxima tela.
Defina um nome SID para o seu novo banco. Selecione em “Compute Shape” a
opção “OC4“. Crie um par de chave pública/privada e adicione o arquivo de
chave pública em “SSH Public Key“. Em “Cloud Storage Container“, preencha no
formato “Storage-/“, onde é o nome do seu domínio e é o nome do serviço
definido na etapa anterior. O usuário e senha do Storage Container são os
mesmos de login na Oracle Cloud.
Na página inicial do Oracle Database Cloud Service, o status ficará “In Progress”
até que a instalação esteja concluída.
A criação no meu caso levou cerca de 1h20. Dependendo da localidade
esculhida para o seu Oracle Public Cloud, esse tempo poderá ser menor. Após
finalizada a criação, clique no seu novo serviço para detalhar os nós que
compõem o seu Cluster:
A tela abaixo abrirá, nela será possível visualizar os IP’s Públicos de acesso aos
servidores e a string TNS de conexão ao servidor:
2. Testando acesso aos servidores
Agora que temos os servidores criados, é preciso testar a conexão com ambos
os nós e verificar se todos os serviços realmente estão de pé.
Conectando no primeiro nó, alpharac1:
Conectando no segundo nó, alpharac2:
Ótimo, a próxima etapa será se conectar ao Banco de Dados.
3. Liberação de acesso à porta 1521 para todos os IPs
Por padrão, após a criação de um novo serviço todas as portas do servidor
são bloqueadas para acessos externos, exceto a porta 22 – SSH.
Para podermos ter acesso ao servidor criado pela porta 1521, é preciso fazer a
liberação do scan listener para aceitar conexões de entrada de qualquer IP
Público.
Acesse o menu de “Oracle Compute Cloud Service” conforme orientado abaixo:
Na página inicial que se abrir, vá até a aba Network:
Note que já existe uma regra criada para a liberação do “Scan Listener” para a
internet pública. No entanto, esta regra vem desabilitada.
Clique nos três traços a direita da regra e selecione “Update Security Rule“:
Um pop-up surgirá e nele é possível alterar o status da regra para “Enabled“. Em
seguida clique em “Update“:
Por fim, confira se a regra de rede foi realmente atualizada:
OBS: Também seria possível utilizar túnel SSH reverso para conexão sem a
necessidade de liberação de portas.
4. Configuração de conexão utilizando o SQL Developer
Agora é hora de finalmente testarmos o acesso ao servidor. Primeiro vamos
testar a conexão a apenas um servidor.
Abra o SQL Developer e preencha com o IP Públic do nó 1, nome do serviço e
usuário e senha do SYS definido durante a criação do Banco de Dados RAC.
Ao clicar em Testar, certifique-se que a conexão foi estabelecida com sucesso:
No entanto, nosso objetivo com um servidor RAC é usufruir da alta
disponibilidade e não permitir que a queda em um dos nós gere falha na conexão
de uma aplicação.
Para isso, vamos criar uma conexão utilizando o “Transparent Application
Failover” (ou TAF) onde o Oracle Client, em caso de perda de conexão com um
dos listener, instruirá a Oracle Net a continuar a conexão de modo transparente
em um listener diferente como se o link original nunca tivesse falhado.
Primeiramente, precisaremos anotar a própria “Connect String” fornecida pelo
serviço criado. No meu caso, ela é:
No SQL Developer, ao criar uma conexão selecione “Avançado” e preencha com
a URL JDBC do seu serviço:
OBS: Por padrão, o Oracle Client que vêm com o SQL Developer não possui os
drivers que permitem que o TAF funcione. Portanto, caso ainda não tenha sido
feito, será necessário baixar um Oracle Client que venha com OCI e especificá-
lo em “Preferências -> Banco de Dados -> Avançado -> Usar Oracle Client”
5. Teste de Failover para uma conexão
Para testarmos que o TAF está funcionando adequadamente, vamos testar
forçando um Failover.
Primeiro vamos verificar a qual servidor estamos conectados:
Em seguida, vamos finalizar o serviço de Banco de Dados na instância que
estamos conectados.
Para isto, conecte-se ao servidor e finalize o serviço executando:
OBS: Adicione “-o abort” para forçar um failover. Caso deseje apenas parar a
instância, remova esta cláusula.
Por fim, ainda conectado no SQL Developer, execute novamente a mesma
instrução SQL que retornará a instância conectada e note que ele não
apresentará qualquer erro ou falha de conexão, apenas o resultado será a outra
instância:
Tudo funcionando conforme esperado.
Portanto, neste artigo vimos como podemos criar um BD RAC em menos de 2
horas com alta disponibilidade testada e funcionando conforme esperado.
Referências:
[Link]
[Link]
[Link]