はじめに
アプリケーション・コンティニュイティ(AC)は、リカバリ可能なシステム停止の後に実行中のデータベース・セッションをリカバリすることでシステム停止がエンドユーザーやアプリケーションに関知されないようにする機能であり,システム停止の後にその影響を受けたデータベース・セッションの実行中の作業がリカバリされるため、エンドユーザーやアプリケーションはシステムが停止したことに気づきません。このリカバリはアプリケーションの背後で実行されるため、アプリケーションからはこの停止が短時間の実行遅延のように見えます。
※上記の説明は下記の資料から抜粋:
https://www.oracle.com/jp/database/technologies/high-availability/app-continuity.html
AC、TAC はOracle Autonomous Databaseもに搭載されています。AC、TACの詳細について下記の資料をご参照ください。
https://oracle-japan.github.io/ocidocs/database/oracle%20database%20technology%20night/application-continuity/
ラボ環境
Autonomous Database (ATP) 19c
対象サービス名:
GB97D9D33012F31_ATPPUBTEST_low.adb.oraclecloud.com
Oracle Autonomous DatabaseのAC有効化/無効化
下記の作業はADMIN
ユーザーで行います。
事前確認
SELECT NAME,FAILOVER_TYPE FROM DBA_SERVICES WHERE NAME LIKE '%low%';
FAILOVER_TYPE
はNULL
or NONE
になっていること確認
AC有効化
DBMS_CLOUD_ADMIN.ENABLE_APP_CONTを実行
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_APP_CONT(
service_name => 'GB97D9D33012F31_ATPPUBTEST_low.adb.oraclecloud.com'
);
END;
AC有効化後確認
SELECT NAME,FAILOVER_TYPE, DRAIN_TIMEOUT FROM DBA_SERVICES WHERE NAME LIKE '%low%';
FAILOVER_TYPE
はTRANSACTION
になっていること確認
AC無効化
DBMS_CLOUD_ADMIN.DISABLE_APP_CONTを実行
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_APP_CONT(
service_name => 'GB97D9D33012F31_ATPPUBTEST_low.adb.oraclecloud.com'
);
END;
AC無効化後確認
SELECT NAME,FAILOVER_TYPE FROM DBA_SERVICES WHERE NAME LIKE '%low%';
Oracle Autonomous DatabaseのTAC有効化
下記の作業はADMIN
ユーザーで行います。
事前確認
SELECT NAME,FAILOVER_TYPE FROM DBA_SERVICES WHERE NAME LIKE '%low%';
FAILOVER_TYPE
はNULL
or NONE
になっていること確認
TAC有効化
DBMS_APP_CONT_ADMIN.ENABLE_TACを実行
BEGIN
DBMS_APP_CONT_ADMIN.ENABLE_TAC('GB97D9D33012F31_ATPPUBTEST_low.adb.oraclecloud.com','AUTO',1200) ;
END;
TAC有効化後確認
SELECT NAME,FAILOVER_TYPE FROM DBA_SERVICES WHERE NAME LIKE '%low%';
FAILOVER_TYPE
はAUTO
になっていること確認
TAC無効化
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVERを実行
BEGIN
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER('GB97D9D33012F31_ATPPUBTEST_low.adb.oraclecloud.com') ;
END;
TAC無効化後確認
SELECT NAME,FAILOVER_TYPE FROM DBA_SERVICES WHERE NAME LIKE '%low%';