Código de Disponibilidade Contínua

Seus aplicativos obtêm disponibilidade contínua quando a manutenção planejada, as paralisações não planejadas e os desequilíbrios da carga do banco da dados ficam ocultos do aplicativo. Uma combinação de melhores práticas de aplicativos, configuração simples e Oracle Autonomous AI Database garante que seus aplicativos estejam continuamente disponíveis.

A melhor abordagem para ocultar atividades de manutenção planejadas de seus aplicativos é drenar o trabalho de cada local de carga de trabalho do banco de dados de forma transparente antes da janela de manutenção desse local de carga de trabalho. Os pools de conexão e camadas intermediárias do sistema Oracle, incluindo o WebLogic Server, o Oracle Universal Connection Pool (UCP), o pool de Sessões do OCI e o Provedor Não Gerenciado do ODP.NET, têm conhecimento do mecanismo FAN (Fast Application Notification ) e, portanto, são notificados antes que os serviços de banco de dados sejam programados para serem movidos para permitir a drenagem normal do trabalho antes da manutenção. A notificação FAN aciona automaticamente o fechamento de conexões ociosas e a abertura de novas conexões no novo local de serviço, e permite um tempo configurável para que o trabalho ativo seja concluído no local de serviço prestes a ser desativado. As principais camadas intermediárias JDBC de terceiros, como IBM WebSphere, permitem o mesmo comportamento quando configuradas com o UCP. Para aplicativos baseados em JDBC que não podem usar o UCP, a Oracle fornece soluções usando o Oracle Drivers e testes de conexão.

Para ocultar interrupções não planejadas resultantes de um componente ou falha de comunicação, a Oracle fornece:

A TAC ou a AC também é executada durante a manutenção planejada para as sessões que não são drenadas (concluem a operação atual do banco de dados) durante o intervalo de drenagem alocado.

Lista de Verificação de Configuração do Aplicativo

Você disponibiliza continuamente seu aplicativo seguindo estas diretrizes:

Dica: Consulte Disponibilidade Contínua de Aplicativos no Artigo Técnico ATP-Direct para saber mais sobre as melhores práticas na implementação de disponibilidade contínua para aplicativos que usam um Autonomous AI Database.

Conectar Usando Serviços de Banco de Dados

Os serviços de banco de dados fornecem transparência para a infraestrutura subjacente: FAN, dados de conexão, TAC (Continuidade Transparente de Aplicativos), AC (Continuidade de Aplicativos), switchover e grupos de consumidores e muitos outros recursos e operações são previstos no uso dos serviços.

O Autonomous AI Database on Dedicated Exadata Infrastructure oferece vários pares de serviços de banco de dados predefinidos para escolha, conforme descrito em Nomes de Serviço de Banco de dados Predefinidos para Autonomous AI Databases. Todos fornecem FAN e drenagem, e os dois pares de processamento de transações têm a TAC ativada por padrão. Uma API está disponível para alterar as definições de TAC ou AC em todos os serviços predefinidos (consulte Ativar Atributos de Serviço para Failover).

Configurar String de Conexão para Alta Disponibilidade

A Oracle recomenda a configuração de String de Conexão mostrada abaixo durante a conexão com o Oracle Autonomous AI Database. As strings de conexão incorporadas no arquivo tnsnames.ora fornecido pela Oracle são configuradas dessa forma. Não use a Denominação Easy Connect no cliente porque tais conexões não têm recursos de alta disponibilidade.

Use este TNS para todos os clientes Oracle versão 12.2 ou mais recente:

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)
 (ADDRESS_LIST =
   (LOAD_BALANCE=on)
   (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Use o seguinte para conexões JDBC que utilizam o driver Oracle versão 12.1 ou mais antigo

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 15)(RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Usar FAN (Fast Application Notification)

O FAN fornece uma notificação imediata a um aplicativo em caso de interrupção ou retomada do serviço. Sem o FAN, os aplicativos podem travar no timeout de TCP/IP depois de falhas de hardware e rede e omitir o rebalanceamento quando os recursos são retomados. Todos os pools da Oracle e todos os servidores de aplicativos Oracle usam FAN. Os servidores de aplicativos JAVA de terceiros podem usar o UCP para ativar o FAN.

Nenhuma alteração de aplicativo é necessária para usar o FAN. Estas são apenas alterações de configuração.

Para serviço contínuo durante a manutenção planejada, use o FAN com:

Para um serviço contínuo durante interrupções não planejadas, use o FAN com:

Cobertura de FAN

Os eventos de FAN são integrados com:

Para Ativar o FAN no Cliente

Use o alias TNS mostrado em Configurar String de Conexão para Alta Disponibilidade. Esta string de conexão é usada para configurar automaticamente a inscrição do ONS (Oracle Notification Service) no cliente para recebimento de eventos FAN ao usar um driver de cliente Oracle Database 12c ou mais recente. O ONS fornece um caminho de comunicação seguro entre a camada do banco de dados e a camada do cliente, permitindo que o cliente seja notificado sobre a disponibilidade do serviço (componentes que são interrompidos ou iniciados) e avisos sobre balanceamento de carga no runtime, para melhor posicionamento do trabalho durante a operação normal.

Dependendo do cliente, ative o FAN nas propriedades de configuração do aplicativo da seguinte forma:

Os serviços de banco de dados predefinidos oferecem conexões TCPS que usam autenticação baseada em wallet TLS. Dependendo do tipo de aplicativo (JDBC ou Oracle Call Interface), a configuração da wallet deve seguir regras específicas, conforme descrito em Configurar Clientes para FAN Incluindo Wallets Opcionais.

Usar Práticas Recomendadas para Permitir a Drenagem

A melhor prática para uso do aplicativo é fazer o check-out das conexões durante o tempo necessário e depois fazer o check-in delas novamente para o pool quando a ação atual for concluída. Isso é importante para obter um bom desempenho, para o rebalanceamento do trabalho no runtime e durante janelas de manutenção para drenagem do trabalho.

A Oracle recomenda o uso de um pool de conexão Oracle com reconhecimento de FAN para ocultar a manutenção planejada. Não há impacto para os usuários quando seu aplicativo usa um Pool Oracle com o FAN e retorna conexões com o pool entre solicitações. Você não precisa fazer alterações no aplicativo para usar o FAN. Quando um pool de conexão Oracle recebe o evento FAN para inatividade planejada, ele marca todas as conexões na instância a serem drenadas. Imediatamente, as conexões submetidas a check-in são fechadas para que não sejam reutilizadas. À medida que as conexões em uso são retornadas ao pool, elas são fechadas. Isso permite que todas as conexões sejam fechadas normalmente ao longo do tempo.

Se você estiver usando um servidor de aplicativos baseado em Java de terceiros, o método mais eficaz para obter drenagem e failover será substituir a origem de dados com pool por UCP. Muitos servidores de aplicativos oferecem suporte a essa abordagem, incluindo Oracle WebLogic Server, IBM WebSphere, IBM Liberty, Apache Tomcat, Red Hat WildFly (JBoss), Spring, Hibernate e outros. White papers da Oracle e de outros provedores, como a IBM, descrevem como usar o UCP com esses servidores de aplicativos. O uso do UCP como a origem de dados permite que recursos do UCP, como Failover de Conexão Rápida, Balanceamento de Carga de Runtime, Continuidade de Aplicativos e Continuidade Transparente de Aplicativos, sejam usados com certificação completa.

Ativar TAC (Continuidade Transparente de Aplicativos) ou AC (Continuidade de Aplicativos)

A TAC rastreia e registra de forma transparente a sessão e o estado transacional para que uma sessão de banco de dados possa ser recuperada após interrupções recuperáveis. Os dois pares de processamento de transação de serviços de banco de dados predefinidos têm a TAC ativada por padrão.

A AC é personalizável, permitindo que você escolha repetir efeitos colaterais ou adicionar callbacks complexos no failover que a TAC não permite. Use a AC se estiver usando drivers do Oracle 12c (JDBC-thin ou Oracle Call Interface) ou se quiser personalizar com efeitos colaterais ou callbacks ou se tiver um aplicativo que use estado como tabelas temporárias de duração de sessão e não faça limpeza entre solicitações.

Etapas para Usar a Continuidade Transparente de Aplicativos

Etapas para Usar a Continuidade de Aplicativos

Conteúdo Relacionado