Application Continuity in autonomer KI-Datenbank konfigurieren

Um Application Continuity zu konfigurieren, müssen Sie die Anwendungskontinuität für den von Ihrer Anwendung verwendeten Datenbankservice aktivieren und den Failover-Typ und den Drain-Timeout konfigurieren. Darüber hinaus müssen Sie mehrere Parameter für Verbindungszeichenfolgen festlegen, die High Availability ermöglichen.

Service für Application Continuity konfigurieren

Mit DBMS_APP_CONT_ADMIN können Sie Application Continuity oder Transparent Application Continuity aktivieren:

  • Application Continuity (AC): Legen Sie diese Failover-Option mit der Prozedur DBMS_APP_CONT_ADMIN.ENABLE_AC fest. Die ENABLE_AC-Prozedur nimmt drei Parameter an: SERVICE NAME ist der zu ändernde Servicename, FAILOVER_RESTORE, auf LEVEL1 gesetzt, um Application Continuity (AC) auszuwählen, und REPLAY_INITIATION_TIMEOUT ist der Wiedergabe-Timeout, der angibt, wie viele Sekunden nach dem Weiterleiten einer Anforderung die Wiedergabe dieser Anforderung zulässig ist.

    Beispiel: Um Application Continuity für den Service TPURGENT zu aktivieren, müssen Sie als ADMIN-Benutzer:

    execute DBMS_APP_CONT_ADMIN.ENABLE_AC(
            'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600);
  • Transparent Application Continuity (TAC): Legen Sie diese Failover-Option mit der Prozedur DBMS_APP_CONT_ADMIN.ENABLE_TAC fest. Die Prozedur ENABLE_TAC nimmt drei Parameter an: SERVICE NAME ist der zu ändernde Servicename, FAILOVER_RESTORE, auf AUTO gesetzt, um Transparent Application Continuity (TAC) auszuwählen, und REPLAY_INITIATION_TIMEOUT ist der Wiedergabe-Timeout, der angibt, wie viele Sekunden nach der Weiterleitung einer Anforderung zur Wiedergabe dieser Anforderung liegen.

    Beispiel: Um Transparent Application Continuity für den Service TP mit einem Wiedergabe-Timeout von 20 Minuten als ADMIN-Benutzer zu aktivieren, gehen Sie wie folgt vor:

    execute DBMS_APP_CONT_ADMIN.ENABLE_TAC(
            'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200);
    
  • Deaktiviert: Deaktivieren Sie das Failover mit der Prozedur DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER().

    Beispiel: Um als ADMIN-Benutzer das Failover für den TP-Service zu deaktivieren:

    execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER(
            'databaseid_tp.adb.oraclecloud.com');
    

Servicenamensparameter für Application Continuity suchen

Verwenden Sie je nach Workload-Typ einen Befehl ähnlich dem folgenden SELECT aus DBA_SERVICES in Ihrer Datenbank, und identifizieren Sie den Service, für den Sie Application Continuity aktivieren möchten:

  • 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                   
  • Transaktionsverarbeitung oder JSON Database

    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                   

Beachten Sie, dass FAILOVER_TYPE für den high-Service keinen Wert aufweist und angibt, dass Application Continuity deaktiviert ist.

Prüfen, ob Application Continuity für einen Service aktiviert ist

Prüfen Sie je nach Workload-Typ die Ausgabe der Abfrage in DBA_SERVICES, um zu prüfen, ob Application Continuity aktiviert ist.

  • 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                   
  • Transaktionsverarbeitung oder JSON Database

    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                   

Der FAILOVER_TYPE-Wert für den high-Service ist jetzt AUTO. Damit wird angegeben, dass Transparent Application Continuity (TAC) aktiviert ist und der FAILOVER_TYPE-Wert für den tpurgent-Service jetzt TRANSACTION lautet. Damit wird angegeben, dass Application Continuity (AC) aktiviert ist.

Fast Application Notification (FAN) verwenden

Beim Herstellen einer Verbindung zur autonomen KI-Datenbank konfiguriert die Oracle-Datenbank FAN automatisch. Bei Anwendungsbereitstellungen mit Autonomous AI Database werden Fast Application Notification-(FAN-)Ereignisse für ungeplante Ausfälle an den Connection Manager (CMAN) geleitet, und es sind keine Konfigurationsschritte für Clientanwendungen erforderlich, um FAN zu verwenden.

FAN wird automatisch vom Clienttreiber und vom Autonomous AI Database Connection Manager (CMAN) verarbeitet:

  • Bei geplanten Wartungsereignissen wird FAN in Band direkt an die Treiber gesendet. Dies erfordert, dass Anwendungen Oracle Pools oder TAC für Anforderungsgrenzen verwenden oder Verbindungstests verwenden.
  • Die Oracle Database- und Oracle-Clienttreiber nutzen Verbindungstests und Anforderungsgrenzen.

Weitere Informationen finden Sie unter Clientkonfiguration für kontinuierliche Verfügbarkeit in einer autonomen KI-Datenbank.

Verbindungszeichenfolge für High Availability konfigurieren

Um High Availability aufrechtzuerhalten, empfiehlt Oracle, bestimmte Verbindungszeichenfolgenparameter festzulegen, wenn Sie eine Verbindung zu Oracle Autonomous AI Database herstellen.

Legen Sie die Parameter CONNECT_TIMEOUT, RETRY_DELAY, RETRY_COUNT und TRANSPORT_CONNECT_TIMEOUT in der Verbindungszeichenfolge fest, wenn Sie eine Verbindung zu Oracle Autonomous AI Database herstellen. Die in die von Oracle bereitgestellte Datei tnsnames.ora eingebetteten Verbindungszeichenfolgen werden mit den entsprechenden Werten für die meisten Anwendungen vorkonfiguriert. In einigen Fällen müssen Sie, je nach den Anforderungen Ihrer Anwendungen, die vorkonfigurierten Werte für eine Verbindungszeichenfolge ändern.

Verwenden Sie diesen TNS für alle Oracle-Clients ab Version 12.2:

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)))

Verwenden Sie Folgendes für JDBC-Verbindungen mit Oracle-Treiberversion 12.1 oder niedriger.:

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)))

Hinweise zu Verbindungszeichenfolgen:

  • Bei JDBC- und ODP-Clients muss die Wartezeit der Poolverbindung so konfiguriert werden, dass sie länger als CONNECT_TIMEOUT in der Verbindungszeichenfolge ist.

  • Verwenden Sie nicht Easy Connect-Benennung für den Client, da solche Verbindungen nicht über High-Availability-Funktionen verfügen.

Informationen zur Datei tnsnames.ora finden Sie unter Clientzugangsdaten (Wallets) herunterladen.

Treiberspezifische Clientoptionen konfigurieren

Je nach Client und Treiber müssen Sie sicherstellen, dass der Client ordnungsgemäß für die Verwendung von Application Continuity konfiguriert ist, wenn Sie eine Verbindung zu einer autonomen KI-Datenbank herstellen

JDBC Thin-Treiber konfigurieren

Zeigt Details zur Verwendung von Application Continuity mit einer autonomen KI-Datenbank mit einem Client mit dem JDBC-Thin-Treiber an.

Wenn Ihre Anwendung den JDBC-Thin-Treiber verwendet, befolgen Sie diese empfohlenen Vorgehensweisen:

  1. JDBC-Anweisungscache für Abdeckung und Performance verwenden.

    Um eine optimale Abdeckung und Performance zu erzielen, verwenden Sie den Anweisungscache des JDBC-Treibers anstelle des Anweisungscache eines Anwendungsservers. Dadurch wird der Treiber am Ende von Anforderungen informiert, dass Anweisungen geschlossen sind und der Arbeitsspeicher freigegeben werden muss.

    Um den JDBC-Anweisungscache zu verwenden, verwenden Sie die Verbindungseigenschaft oracle.jdbc.implicitStatementCacheSize (OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE). Der Anweisungscache ist verbindungsabhängig. Der Wert für die Cachegröße entspricht der Anzahl von open_cursors. Beispiel:

    oracle.jdbc.implicitStatementCacheSize=nnn, wobei nnn in der Regel zwischen 10 und 100 liegt und der Anzahl der geöffneten Cursor in der Anwendung entspricht.

  2. Garbage Collector optimieren.

    Für viele Anwendungen ist die standardmäßige Optimierung des Garbage Collectors ausreichend. Für Anwendungen, die große Datenmengen zurückgeben und aufbewahren, können Sie höhere Werte verwenden, z.B. 2 GB oder mehr. Beispiel:

    java -Xms3072m -Xmx3072m 

    Es wird empfohlen, die Arbeitsspeicherzuweisung für die anfängliche Java Heap-Größe (ms) und die maximale Heap-Größe (mx) auf denselben Wert zu setzen. Dadurch wird verhindert, dass Systemressourcen den Arbeitsspeicher-Heap vergrößern und verkleinern.

  3. Deaktivieren Sie bei Verwendung des Universal Connection Pools (UCP) Fast Connection Failover. Beispiel:

    PoolDataSource.setFastConnectionFailoverEnabled(false)

Oracle Call Interface-(OCI-)Treiber konfigurieren

Zeigt Details zur Verwendung von Application Continuity mit Autonomous AI Database mit einem Client, der den Oracle Call Interface-(OCI-)Treiber verwendet.

Wenn die Clientanwendung den Oracle Call Interface-(OCI-)Treiber verwendet, befolgen Sie diese empfohlene Übung:

  • Ersetzen Sie OCIStmtPrepare durch OCIStmtPrepare2. OCIStmtPrepare() ist seit 12.2 veraltet. Alle Anwendungen müssen OCIStmtPrepare2() verwenden. Transparent Application Continuity (TAC) und Application Continuity (AC) lassen OCIStmtPrepare zu, wiederholen diese Anweisung jedoch nicht.

Konfigurieren Sie keine ONS-Server in oraaccess.xml:

<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>

Konfigurieren Sie außerdem für Autonomous AI Database Serverless den Abschnitt <fan> nicht:

<fan>  
<!-- only possible values are "trace" or "error" -->  
    <subscription_failure_action>
   </subscription_failure_action>  
</fan>

Treiber für nicht verwalteten ODP.NET-Provider konfigurieren

Zeigt Details zur Verwendung von Application Continuity mit einer autonomen KI-Datenbank mit einem Client mit dem nicht verwalteten Providertreiber ODP.NET an.

Der Treiber ODP.NET "Nicht verwalteter Provider" verwendet Application Continuity automatisch, wenn Application Continuity für den Datenbankservice aktiviert ist, mit dem Ihre Anwendung eine Verbindung zur autonomen KI-Datenbank herstellt.

Wenn Sie eine ODP.NET-Anwendung mit der autonomen KI-Datenbankserverlos verbinden, konfigurieren Sie keine ONS-Server in oraaccess.xml:

<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>