Configurar o AC (Application Continuity) no Autonomous 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_ADMIN
para ativar a Continuidade de Aplicativos 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 aplicativos com o Autonomous 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 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, você precisa garantir que o cliente esteja configurado corretamente para usar o Application Continuity quando se conectar ao Autonomous Database
Tópico principal: Usar a Continuidade de Aplicativos no Autonomous 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_AC
utiliza três parâmetros:SERVICE NAME
é o nome do serviço a ser alterado,FAILOVER_RESTORE
, definido comoLEVEL1
para 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_TAC
utiliza três parâmetros:SERVICE NAME
é o nome do serviço a ser alterado,FAILOVER_RESTORE
, definido comoAUTO
para 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
TP
com 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:
-
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
-
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.
-
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
-
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 Database
Usar FAN (Fast Application Notification)
Ao estabelecer conexão com o Autonomous Database, o banco de dados Oracle configura automaticamente a FAN. Para implantações de aplicativos com o Autonomous 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 pelo driver do cliente e pelo CMAN (Autonomous 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 Database para obter mais informações.
Tópico principal: Configurar a 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 quando você se conectar ao Oracle Autonomous 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_TIMEOUT
na 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 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 Database
- Configurar Driver JDBC Thin
Mostra detalhes para usar a Continuidade de Aplicativos com o Autonomous 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 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 Database com um cliente usando o Driver do Provedor Não Gerenciado ODP.NET.
Tópico principal: Configurar a Continuidade de Aplicativos no Autonomous Database
Configurar Driver JDBC Thin
Mostra detalhes para usar o Application Continuity com o Autonomous 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=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 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 Database com um cliente usando 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 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 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 o Application Continuity com o Autonomous 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 Database.
Ao conectar um aplicativo ODP.NET ao seu 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