Configurar o AC (Application Continuity) no Autonomous Database
Para configurar o AC (Application Continuity), ative a continuidade de aplicativos para o serviço de banco de dados que o seu aplicativo usa e configure o tipo de failover e o timeout de drenagem. Além disso, defina vários parâmetros de string de conexão que permitam alta disponibilidade.
- Configurar seu Serviço para Ativar o AC (Application Continuity)
UseDBMS_APP_CONT_ADMIN
para ativar o AC (Application Continuity) ou a Continuidade Transparente de Aplicativos: - Usar FAN (Fast Application Notification)
Ao estabelecer conexão com o Autonomous Database, o banco de dados Oracle configura automaticamente o FAN. Para implantações de aplicativo com o Autonomous Database, os eventos do serviço Fast Application Notification (FAN) para interrupções não planejadas são direcionados ao gerenciador de conexões (CMAN) 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 estabelecer conexão com o Oracle Autonomous Database. - Configurar Opções de Cliente Específicas do Driver
Dependendo do seu cliente e do seu driver, certifique-se de que o cliente esteja configurado corretamente para usar o AC (Application Continuity) quando você estabelecer conexão com o Autonomous Database
Tópico principal: Usar o Continuidade de Aplicativos no Autonomous Database
Configurar o Seu Serviço para Ativar o Application Continuity
Use DBMS_APP_CONT_ADMIN
para ativar o Application Continuity ou a Continuidade Transparente de Aplicativos:
-
AC (Application Continuity): Defina essa opção de failover usando o procedimento
DBMS_APP_CONT_ADMIN.ENABLE_AC
. O procedimentoENABLE_AC
usa três parâmetros:SERVICE NAME
é o nome do serviço a ser alterado,FAILOVER_RESTORE
, definido comoLEVEL1
para selecionar o Continuidade de Aplicativos (AC) eREPLAY_INITIATION_TIMEOUT
é o timeout de reprodução que especifica quantos segundos após uma solicitação ser submetida para permitir que essa solicitação seja reproduzida.Por exemplo, como usuário do ADMIN, para ativar o Continuidade de Aplicativos para o serviço
TPURGENT
:execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600);
-
Continuidade Transparente de Aplicativos: Defina essa opção de failover usando o procedimento
DBMS_APP_CONT_ADMIN.ENABLE_TAC
. O procedimentoENABLE_TAC
usa três parâmetros:SERVICE NAME
é o nome do serviço a ser alterado,FAILOVER_RESTORE
, definido comoAUTO
para selecionar a Continuidade Transparente de Aplicativos (TAC) eREPLAY_INITIATION_TIMEOUT
é o timeout de reprodução que especifica quantos segundos após a solicitação ser submetida, essa solicitação pode ser reproduzida.Por exemplo, como usuário ADMIN, para ativar a Continuidade Transparente de Aplicativos para o serviço
TP
com o timeout de reproduçã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 de Nome do Serviço para o AC (Application Continuity)
Dependendo do seu tipo de carga de trabalho, use um comando semelhante ao seguinte para SELECT
em DBA_SERVICES
no seu banco de dados e identifique o serviço no qual você deseja ativar o Continuidade de Aplicativos:
-
Data Warehouse
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
-
Transaction Processing 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
para o serviço high
não tem valor e indica que o Application Continuity está desativado.
Verificar se o Application Continuity está Ativado para um Serviço
Dependendo do seu tipo de carga de trabalho, verifique a saída da consulta em DBA_SERVICES
para confirmar se o Application Continuity está ativado.
-
Data Warehouse
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
-
Transaction Processing 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
do serviço high
agora é AUTO
, indicando que a Continuidade Transparente de Aplicativos (TAC) está ativada e o valor FAILOVER_TYPE
do serviço tpurgent
agora é TRANSACTION
, indicando que o AC (Application Continuity) está ativado.
Tópico principal: Configurar o Continuidade de Aplicativos no Autonomous Database
Usar FAN (Fast Application Notification)
Ao estabelecer conexão com o Autonomous Database, o banco de dados Oracle configura automaticamente o mecanismo FAN. Para implantações de aplicativo com o Autonomous Database, os eventos do serviço Fast Application Notification (FAN) para interrupções não planejadas são direcionados ao gerenciador de conexões (CMAN) e nenhuma etapa de configuração de aplicativo cliente é necessária para usar o FAN.
O mecanismo FAN é tratado automaticamente para você pelo driver cliente e pelo CMAN (Autonomous Database Connection Manager):
- Para eventos de manutenção planejados, o FAN é enviado dentro da faixa, diretamente para os drivers. Isso exige que os aplicativos usem Pools Oracle ou TAC para limites de solicitações ou usem testes de conexão.
- Os drivers clientes Oracle Database e Oracle drenam os testes de conexão e os limites de solicitação.
Consulte Configuração do Cliente para Disponibilidade Continuada no Autonomous Database para obter mais informações.
Tópico principal: Configurar o Continuidade de Aplicativos no Autonomous 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 estabelecer conexão com o Oracle Autonomous Database.
Defina os parâmetros CONNECT_TIMEOUT
, RETRY_DELAY
, RETRY_COUNT
e TRANSPORT_CONNECT_TIMEOUT
na string de conexão ao estabelecer conexão com o Oracle Autonomous Database. As strings de conexão incorporadas no arquivo tnsnames.ora
fornecido pela Oracle são pré-configuradas com valores apropriados para a maioria dos aplicativos. Em alguns casos, dependendo das necessidades dos aplicativos, talvez você precise 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 no pool deve ser configurado como maior que o
CONNECT_TIMEOUT
na string de conexão. -
Não use a Nomeação Easy Connect no cliente porque essas conexões não têm recursos de alta disponibilidade.
Consulte Download das Credenciais do Cliente (Wallets) para obter informações sobre o arquivo tnsnames.ora
.
Tópico principal: Configurar o Continuidade de Aplicativos no Autonomous Database
Configurar opções de cliente específicas do driver
Dependendo do seu cliente e do seu driver, certifique-se de que o cliente esteja configurado corretamente para usar o AC (Application Continuity) quando você estabelecer conexão com o Autonomous Database
- Configurar o Driver JDBC Thin
Mostra os detalhes de uso do AC (Application Continuity) com o Autonomous Database, com um cliente que usa o Driver JDBC Thin. - Configurar Driver do OCI
Mostra os detalhes de uso do AC (Application Continuity) com o Autonomous Database, com um cliente que usa o driver do OCI (Oracle Call Interface). - Configurar Driver de Provedor Não Gerenciado ODP.NET
Mostra os detalhes de uso do AC (Application Continuity) com o Autonomous Database, com um cliente que usa o Driver de Provedor Não Gerenciado ODP.NET.
Tópico principal: Configurar o Continuidade de Aplicativos no Autonomous Database
Configurar Driver JDBC Thin
Mostra os detalhes de uso do Continuidade de Aplicativos com o Autonomous Database, com um cliente que usa 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 ao driver saber que as instruções estão fechadas e que a memória 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=nnn
em quennn
geralmente 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 UCP (Universal Connection Pool), 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 o Driver do OCI (Oracle Call Interface)
Mostra os detalhes de uso do Continuidade de Aplicativos com o Autonomous Database, com um cliente que usa o driver do OCI (Oracle Call Interface).
Se o aplicativo cliente usar o Driver do OCI (Oracle Call Interface), siga esta prática recomendada:
-
Substitua
OCIStmtPrepare
porOCIStmtPrepare2
. A funçãoOCIStmtPrepare()
tornou-se obsoleta desde a versão 12.2. Todos os aplicativos devem usarOCIStmtPrepare2()
. A Continuidade Transparente de Aplicativos (TAC) e o Application Continuity (AC) permitemOCIStmtPrepare
, mas não reproduzem 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 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 os detalhes de uso do AC (Application Continuity) com o Autonomous Database, com um cliente que usa o Driver do Provedor Não Gerenciado ODP.NET.
O driver do Provedor Não Gerenciado ODP.NET usa automaticamente o AC (Application Continuity) quando ele está ativado no serviço de banco de dados que seu aplicativo usa para estabelecer conexão com o Autonomous Database.
Ao conectar um aplicativo ODP.NET ao Autonomous 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