O Oracle RAC é uma ferramenta bastante interessante que é amplamente utilizada por grandes empresas.
Por que grandes empresas ? Por dois motivos bastante simples…
1. Sua implementação é bastante cara (servidores, storage e licenças)
2. Só é aplicável quando se tem um número bastante grande de processos simultâneos.
Quando nos deparamos com a necessidade de implementar essa funcionalidade, percebemos, primeiramente, que há um gargalo bastante evidente nos processos, o servidor está trabalhando com carga total e não está dando conta de todas as requisições. às vezes tenta-se aumentar o número de webs, rever toda a aplicação e chega-se à conclusão de que, nem mesmo um servidor mais potente resolveria a situação.
Primeiro passo é justamente aumentar o poder de processamento e memória, dá um alívio temporário mas não dura muito a alegria.
Passamos então para resolução de gargalos, compra-se uma storage, pois o I/O é um dos principais gargalos dentro de um banco de dados, ganha-se um novo e temporário fôlego.
Percebe-se que há a necessidade de duplicar a capacidade de processamento, não com equipamento mais potente e sim com outro servidor dividindo o trabalho. Algumas empresas criam outros bancos de dados para dividir a carga, é uma solução, porém com o crescimento da emrpesa, você irá se deparar com inúmeros servidores independentes, quando pensa em formar um Data Warehouse (DW) você está com um grande problema, captar informações de todos os servidores distribuídos.
Como uma das funções de um DBA é “prever” o futuro, é mais sensato implementar o Oracle RAC, pois as informações estão agrupadas, facilitando um posterior trabalho de DW.
Para se implementar um serviço de RAC, é necessário, antes de mais nada, uma storage, pois os dados tem que ser compartilhados, e o melhor lugar para isso é dentro de uma storage.
Necessita de pelo menos dois servidores, um servidor não seria RAC (óbvio), e é aqui que começam os problemas…
A aplicação suporta vários servidores ? A grande maioria das aplicações fazem muito LOCK de linha e às vezes até mesmo de tabela, o que, em uma arquitetura compartilhada, é puro assassinato…
Após a configuração do aplicativo, adequando-o à nova situação, temos a configuração dos acessos, normalmente por AIS ou algum aplication server que gerencie os aplicativos. o balanceamento é de extrema importância, pois uma má configuração pode gerar um efeito gangorra, isto é, as conecções vão todas para um nó e depois, quando este nó começa a se tornar pesado as conecções “migram” para o outro nó. Quando está bem configurado, cada nó receberá o mesmo número de conecções.
Também temos o problema de muitos nós compondo um RAC, quanto mais nós mais complexo se torna a configuração e implementação dos recursos, não é simplesmente “engatar” novos nós, é uma cirurgia minunciosa e que deve ser feita com muito cuidado.
Depois de tudo configurado e funcionando, temos dois pontos importantes para destacar, a estratégia de backup / recover e contingência. Itens a ser tratados posteriormente.