Configurar a Continuidade de Aplicativos no Autonomous AI Database
Para configurar a Continuidade de Aplicativos, você deve ativar a continuidade do aplicativo para o serviço de banco de dados que seu aplicativo usa e configurar o tipo de failover e o timeout de drenagem. Além disso, você deve definir vários parâmetros de string de conexão que permitam alta disponibilidade.
- Configurar Seu Serviço para Ativar a Continuidade de Aplicativos
UseDBMS_APP_CONT_ADMINpara ativar a Continuidade de Aplicativos ou a Continuidade Transparente de Aplicativos: - Usar FAN (Fast Application Notification)
Ao estabelecer conexão com o Autonomous AI Database, o banco de dados Oracle configura automaticamente o FAN. Para implantações de aplicativos com o Autonomous AI Database, os eventos de FAN (Fast Application Notification) para interrupções não planejadas são direcionados ao CMAN (gerenciador de conexões) e nenhuma etapa de configuração de aplicativo cliente é necessária para usar o FAN. - Configurar String de Conexão para Alta Disponibilidade
Para manter a alta disponibilidade, a Oracle recomenda que você defina determinados parâmetros de string de conexão ao se conectar ao Oracle Autonomous AI Database. - Configurar Opções de Cliente Específicas do Driver
Dependendo do seu cliente e do seu driver, você precisa garantir que o cliente esteja configurado corretamente para usar o Application Continuity ao se conectar ao Autonomous AI Database
Tópico principal: Usar a Continuidade de Aplicativos no Autonomous AI Database
Configurar Seu Serviço para Ativar a Continuidade de Aplicativos
Use DBMS_APP_CONT_ADMIN para ativar a Continuidade de Aplicativos ou a Continuidade Transparente de Aplicativos:
-
Continuidade do Aplicativo (AC): Defina essa opção de failover usando o procedimento
DBMS_APP_CONT_ADMIN.ENABLE_AC. O procedimentoENABLE_ACutiliza três parâmetros:SERVICE NAMEé o nome do serviço a ser alterado,FAILOVER_RESTORE, definido comoLEVEL1para selecionar a Continuidade do Aplicativo (AC) eREPLAY_INITIATION_TIMEOUT, é o timeout de repetição que especifica quantos segundos após o envio de uma solicitação para permitir que essa solicitação seja repetida.Por exemplo, como usuário ADMIN, para ativar a Continuidade do Aplicativo para o serviço
TPURGENT:execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600); -
Continuidade Transparente de Aplicativos (TAC): Defina essa opção de failover usando o procedimento
DBMS_APP_CONT_ADMIN.ENABLE_TAC. O procedimentoENABLE_TACutiliza três parâmetros:SERVICE NAMEé o nome do serviço a ser alterado,FAILOVER_RESTORE, definido comoAUTOpara selecionar TAC (Transparent Application Continuity, Continuidade Transparente de Aplicativos) eREPLAY_INITIATION_TIMEOUTé o timeout de repetição que especifica quantos segundos após o envio de uma solicitação para permitir que essa solicitação seja repetida.Por exemplo, como usuário ADMIN, para ativar a Continuidade Transparente de Aplicativos para o serviço
TPcom o timeout de repetição definido como 20 minutos:execute DBMS_APP_CONT_ADMIN.ENABLE_TAC( 'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200); -
Desativado: Desative o failover usando o procedimento
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER().Por exemplo, como usuário ADMIN, para desativar o failover para o serviço
TP:execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com');
Localizar o Parâmetro do Nome do Serviço para Continuidade do Aplicativo
Dependendo do seu tipo de carga de trabalho, use um comando semelhante ao seguinte para SELECT do DBA_SERVICES no seu banco de dados e identifique o serviço no qual você deseja ativar a Continuidade de Aplicativos:
-
Lakehouse
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com -
Processamento de Transações ou Banco de Dados JSON
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ---------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com
Observe que o FAILOVER_TYPE do serviço high não tem valor e indica que a Continuidade de Aplicativos está desativada.
Verificar se a Continuidade do Aplicativo está Ativada para um Serviço
Dependendo do seu tipo de carga de trabalho, verifique a saída da consulta em DBA_SERVICES para verificar se a Continuidade de Aplicativos está ativada.
-
Lakehouse
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com -
Processamento de Transações ou Banco de Dados JSON
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com TRANSACTION nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com
O valor FAILOVER_TYPE para o serviço high agora é AUTO, indicando que a Continuidade Transparente de Aplicativos (TAC) está ativada e o valor FAILOVER_TYPE para o serviço tpurgent agora é TRANSACTION, indicando que a Continuidade de Aplicativos (AC) está ativada.
Tópico principal: Configurar a Continuidade de Aplicativos no Autonomous AI Database
Usar FAN (Fast Application Notification)
Ao estabelecer conexão com o Autonomous AI Database, o banco de dados Oracle configura automaticamente o FAN. Para implantações de aplicativos com o Autonomous AI Database, os eventos de FAN (Fast Application Notification) para interrupções não planejadas são direcionados ao CMAN (gerenciador de conexões) e nenhuma etapa de configuração de aplicativo cliente é necessária para usar o FAN.
O FAN é tratado automaticamente para você pelo driver do cliente e pelo CMAN (Autonomous AI Database Connection Manager):
- Para os eventos de manutenção planeados, o FAN é enviado em banda, diretamente aos condutores. Isso requer que os aplicativos usem Oracle Pools ou TAC para atender aos limites da solicitação ou usem testes de conexão.
- Os drivers do Oracle Database e do cliente Oracle se esgotam em testes de conexão e limites de solicitação.
Consulte Configuração do Cliente para Disponibilidade Contínua no Autonomous AI Database para obter mais informações.
Tópico principal: Configurar a Continuidade de Aplicativos no Autonomous AI Database
Configurar String de Conexão para Alta Disponibilidade
Para manter a alta disponibilidade, a Oracle recomenda que você defina determinados parâmetros de string de conexão ao se conectar ao Oracle Autonomous AI Database.
Defina os parâmetros CONNECT_TIMEOUT, RETRY_DELAY, RETRY_COUNT e TRANSPORT_CONNECT_TIMEOUT na string de conexão quando você se conectar ao Oracle Autonomous AI Database. As strings de conexão incorporadas no arquivo tnsnames.ora fornecido pelo sistema Oracle são pré-configuradas com valores apropriados para a maioria dos aplicativos. Em alguns casos, dependendo das necessidades de seus aplicativos, talvez seja necessário alterar os valores pré-configurados de uma string de conexão.
Use este TNS para todos os clientes Oracle versão 12.2 ou mais recente:
alias = (DESCRIPTION = (CONNECT_TIMEOUT= 90)(RETRY_COUNT=50) (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=50) (RETRY_DELAY=3) (ADDRESS_LIST = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST=scan-host)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = service-name)))
Observações para strings de conexão:
-
Para clientes JDBC e ODP, o tempo de espera da conexão do pool deve ser configurado para ser maior que o
CONNECT_TIMEOUTna string de conexão. -
Não use o Easy Connect Naming no cliente porque essas conexões não possuem recursos de alta disponibilidade.
Consulte Fazer Download das Credenciais do Cliente (Wallets) para obter informações sobre o arquivo tnsnames.ora.
Tópico principal: Configurar a Continuidade de Aplicativos no Autonomous AI Database
Configurar Opções de Cliente Específicas do Driver
Dependendo do seu cliente e do seu driver, você precisa garantir que o cliente esteja configurado corretamente para usar o Application Continuity ao se conectar ao Autonomous AI Database
- Configurar Driver JDBC Thin
Mostra detalhes para usar a Continuidade de Aplicativos com o Autonomous AI Database com um cliente usando o Driver JDBC Thin. - Configurar Driver do OCI (Oracle Call Interface)
Mostra detalhes para usar o Application Continuity com o Autonomous AI Database com um cliente usando o driver do OCI (Oracle Call Interface). - Configurar ODP.NET Driver do Provedor Não Gerenciado
Mostra detalhes para usar a Continuidade de Aplicativos com o Autonomous AI Database com um cliente usando o Driver do Provedor Não Gerenciado ODP.NET.
Tópico principal: Configurar a Continuidade de Aplicativos no Autonomous AI Database
Configurar Driver JDBC Thin
Mostra detalhes para usar a Continuidade de Aplicativos com o Autonomous AI Database com um cliente usando o Driver JDBC Thin.
Se o seu aplicativo usar o Driver JDBC Thin, siga estas práticas recomendadas:
-
Use o Cache de Instruções JDBC para Cobertura e Desempenho.
Para obter melhor cobertura e desempenho, use o cache de instruções do driver JDBC no lugar de um cache de instruções do servidor de aplicativos. Isso permite que o driver saiba que as instruções estão fechadas e a memória deve ser liberada no final das solicitações.
Para usar o cache de instruções JDBC, use a propriedade de conexão
oracle.jdbc.implicitStatementCacheSize(OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE). O cache de instruções é por conexão. O valor do tamanho do cache corresponde ao seu número deopen_cursors. Por exemplo:oracle.jdbc.implicitStatementCacheSize=nnnem quennngeralmente está entre 10 e 100 e é igual ao número de cursores abertos que seu aplicativo mantém. -
Ajuste o Coletor de Lixo.
Para muitos aplicativos, o ajuste padrão do Coletor de Lixo é suficiente. Para aplicativos que retornam e mantêm grandes volumes de dados, você pode usar valores mais altos, como 2 GB ou mais. Por exemplo:
java -Xms3072m -Xmx3072m
É recomendável definir a alocação de memória para o tamanho de heap Java inicial (ms) e o tamanho máximo de heap (mx) para o mesmo valor. Isso impede o uso de recursos do sistema no crescimento e na redução do heap de memória.
-
Ao usar o Universal Connection Pool (UCP), desative o Failover de Conexão Rápida. Por exemplo:
PoolDataSource.setFastConnectionFailoverEnabled(false)
Tópico principal: Configurar Opções de Cliente Específicas do Driver
Configurar Driver do Oracle Call Interface (OCI)
Mostra detalhes para usar o Application Continuity com o Autonomous AI Database com um cliente usando o driver da Oracle Call Interface (OCI).
Se o aplicativo cliente usar o Driver do OCI (Oracle Call Interface), siga esta prática recomendada:
-
Substitua
OCIStmtPrepareporOCIStmtPrepare2. A funçãoOCIStmtPrepare()tornou-se obsoleta desde a versão 12.2. Todos os aplicativos devem usarOCIStmtPrepare2(). A TAC (Continuidade Transparente de Aplicativos) e a AC (Continuidade de Aplicativos) permitemOCIStmtPrepare, mas não repetem essa instrução.
Não configure servidores ONS em oraaccess.xml:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>Além disso, para o Autonomous AI Database Serverless, não configure a seção <fan>:
<fan>
<!-- only possible values are "trace" or "error" -->
<subscription_failure_action>
</subscription_failure_action>
</fan>Tópico principal: Configurar Opções de Cliente Específicas do Driver
Configurar Driver de Provedor Não Gerenciado do ODP.NET
Mostra detalhes para usar a Continuidade de Aplicativos com o Autonomous AI Database com um cliente usando o Driver do Provedor Não Gerenciado ODP.NET.
O driver do Provedor Não Gerenciado ODP.NET usa automaticamente a Continuidade de Aplicativos quando a Continuidade de Aplicativos está ativada no serviço de banco de dados que seu aplicativo usa para estabelecer conexão com o Autonomous AI Database.
Ao conectar um aplicativo ODP.NET ao seu Autonomous AI Database Serverless, não configure servidores ONS em oraaccess.xml:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>Tópico principal: Configurar Opções de Cliente Específicas do Driver