
Estamos procurando algum substituto para nosso cluster mysql - Oracle ou pgsql. Li todo o documento sobre HA no sistema de banco de dados Oracle 11, mas realmente não consegui entendê-lo o suficiente. O que entendi é que é o RAC que está fazendo HA. Existe algum proxy por trás como mysql-proxy? Ou o cluster está alterando o endereço IP com algum software semelhante ao batimento cardíaco? ou as aplicações devem ter na string de conexão outro destino em caso de falha do primário? Preciso disso para avaliar quanto esforço é necessário para recodificar os aplicativos principais.
Responder1
O funcionamento do Oracle RAC é um pouco complicado, mas simplificado é o seguinte:
O Oracle RAC consiste em nós de banco de dados Oracle. Cada nó possui um ouvinte local e todo o cluster possui um ou mais ouvintes SCAN (Single Client Access Name). Cada ouvinte possui seu próprio endereço IP virtual. Se um host morrer, o endereço do ouvinte do host morto será usado por outro host. Os hosts devem ter uma interface de interconexão dedicada na qual o heartbeat flui e a sincronização entre os servidores é feita.
Um cliente precisa se conectar apenas a um ouvinte SCAN, e o endereço IP dele é constante (se o cluster tiver mais SCANs, então o DNS deve resolver um nome para esses endereços, fazendo com que os clientes se conectem aos SCANs usando round-robin) . Quando um cliente se conecta, o cluster redireciona o cliente para o melhor ouvinte local, mas para isso o cliente não precisa de nenhuma configuração adicional.
A Oracle possui uma documentação bastante boa sobre RACs, mas implementar e administrar um não é simples (para dizer o mínimo). Você deve seguir o conselho do pfo e contratar um profissional se quiser usar o RAC.
Responder2
RAC é RAC / é praticamente uma caixa preta. Todo o material de HA é tratado nos níveis RAC e driver. A recodificação do aplicativo só é necessária porque o Oracle não é MySql.