Application Continuity in Autonomous Database 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 zur Aktivierung von Application Continuity konfigurieren
Verwenden SieDBMS_APP_CONT_ADMIN
, um Application Continuity oder Transparent Application Continuity zu aktivieren: - Fast Application Notification (FAN) verwenden
Bei der Verbindung mit Autonomous Database konfiguriert die Oracle-Datenbank FAN automatisch. Bei Anwendungs-Deployments mit Autonomous Database werden Fast Application Notification-(FAN-)Ereignisse für ungeplante Ausfälle an den Connection Manager (CMAN) weitergeleitet, und es sind keine Konfigurationsschritte für Clientanwendungen erforderlich, um FAN zu verwenden. - Verbindungszeichenfolge für High Availability konfigurieren
Um High Availability aufrechtzuerhalten, empfiehlt Oracle, bestimmte Verbindungszeichenfolgenparameter festzulegen, wenn Sie eine Verbindung zu Oracle Autonomous Database herstellen. - 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 Autonomous Database herstellen
Übergeordnetes Thema: Application Continuity in Autonomous Database verwenden
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. DieENABLE_AC
-Prozedur nimmt drei Parameter an:SERVICE NAME
ist der zu ändernde Servicename,FAILOVER_RESTORE
, aufLEVEL1
gesetzt, um Application Continuity (AC) auszuwählen, undREPLAY_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 ProzedurENABLE_TAC
nimmt drei Parameter an:SERVICE NAME
ist der zu ändernde Servicename,FAILOVER_RESTORE
, aufAUTO
gesetzt, um Transparent Application Continuity (TAC) auszuwählen, undREPLAY_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:
-
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
-
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.
-
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
-
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.
Übergeordnetes Thema: Application Continuity in Autonomous Database konfigurieren
Fast Application Notification (FAN) verwenden
Beim Herstellen einer Verbindung zu Autonomous Database konfiguriert die Oracle-Datenbank FAN automatisch. Bei Anwendungs-Deployments mit Autonomous Database werden Fast Application Notification-(FAN-)Ereignisse für ungeplante Ausfälle an den Connection Manager (CMAN) weitergeleitet, und es sind keine Konfigurationsschritte für Clientanwendungen erforderlich, um FAN zu verwenden.
FAN wird automatisch vom Clienttreiber und vom Autonomous 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 Autonomous Database.
Übergeordnetes Thema: Application Continuity in Autonomous Database konfigurieren
Verbindungszeichenfolge für High Availability konfigurieren
Um High Availability aufrechtzuerhalten, empfiehlt Oracle, bestimmte Parameter für Verbindungszeichenfolgen festzulegen, wenn Sie eine Verbindung zu Oracle Autonomous 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 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.
Übergeordnetes Thema: Application Continuity in Autonomous Database konfigurieren
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 Autonomous Database herstellen
- JDBC-Thin-Treiber konfigurieren
Zeigt Details zur Verwendung von Application Continuity mit Autonomous Database mit einem Client mit dem JDBC-Thin-Treiber an. - Oracle Call Interface-(OCI-)Treiber konfigurieren
Zeigt Details zur Verwendung von Application Continuity mit Autonomous Database mit einem Client mit dem Oracle Call Interface-(OCI-)Treiber an. - Treiber für nicht verwalteten Provider konfigurieren ODP.NET
Zeigt Details zur Verwendung von Application Continuity mit Autonomous Database mit einem Client mit dem Treiber für nicht verwaltete Provider ODP.NET an.
Übergeordnetes Thema: Application Continuity in Autonomous Database konfigurieren
JDBC Thin-Treiber konfigurieren
Zeigt Details zur Verwendung von Application Continuity mit Autonomous Database mit einem Client, der den JDBC-Thin-Treiber verwendet.
Wenn Ihre Anwendung den JDBC-Thin-Treiber verwendet, befolgen Sie diese empfohlenen Vorgehensweisen:
-
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 vonopen_cursors
. Beispiel:oracle.jdbc.implicitStatementCacheSize=nnn
, wobeinnn
in der Regel zwischen 10 und 100 liegt und der Anzahl der geöffneten Cursor in der Anwendung entspricht. -
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.
-
Deaktivieren Sie bei Verwendung des Universal Connection Pools (UCP) Fast Connection Failover. Beispiel:
PoolDataSource.setFastConnectionFailoverEnabled(false)
Übergeordnetes Thema: Treiberspezifische Clientoptionen konfigurieren
Oracle Call Interface-(OCI-)Treiber konfigurieren
Zeigt Details zur Verwendung von Application Continuity mit Autonomous 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
durchOCIStmtPrepare2
.OCIStmtPrepare()
ist seit 12.2 veraltet. Alle Anwendungen müssenOCIStmtPrepare2()
verwenden. Transparent Application Continuity (TAC) und Application Continuity (AC) lassenOCIStmtPrepare
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 für Autonomous Database Serverless auch den Abschnitt <fan> nicht:
<fan>
<!-- only possible values are "trace" or "error" -->
<subscription_failure_action>
</subscription_failure_action>
</fan>
Übergeordnetes Thema: Treiberspezifische Clientoptionen konfigurieren
Treiber für nicht verwalteten ODP.NET-Provider konfigurieren
Zeigt Details zur Verwendung von Application Continuity mit Autonomous Database mit einem Client mit dem nicht verwalteten Providertreiber ODP.NET an.
Der ODP.NET-Treiber für nicht verwaltete Provider verwendet Application Continuity automatisch, wenn Application Continuity für den Datenbankservice aktiviert ist, mit dem Ihre Anwendung eine Verbindung zu Autonomous Database herstellt.
Wenn Sie eine ODP.NET-Anwendung mit Ihrer Autonomous Database Serverless verbinden, konfigurieren Sie keine ONS-Server in oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Übergeordnetes Thema: Treiberspezifische Clientoptionen konfigurieren