8 シナリオ: 透過的アプリケーション・コンティニュイティの構成
このシナリオでは、Oracle Database ApplianceでのOracle Data Guardを使用した透過的アプリケーション・コンティニュイティ(TAC)の構成について説明します。
アプリケーション・コンティニュイティ(AC)は、Oracle Real Application Clusters (Oracle RAC)、Oracle RAC One NodeおよびOracle Active Data Guardオプションで使用できます。 停止後に影響を受けるデータベース・セッションの進行中の作業をリカバリすることで、エンド・ユーザーおよびアプリケーションの停止をマスクします。 ACは、アプリケーションの下でこのリカバリを実行するため、停止はわずかに遅延した実行としてアプリケーションに表示されます。 これにより、計画外停止と計画メンテナンスの両方のユーザー・エクスペリエンスが向上します。 これにより、Oracleデータベースを使用するシステムおよびアプリケーションのフォルト・トレランスが強化されます。 待機時間、プライマリとスタンバイの間の帯域幅によっては、完全なサイト・フェイルオーバーが必要になる場合があります。そうしないと、プライマリ・サイトでまだ実行されているアプリケーションのレスポンス時間が、2つのサイト間のネットワーク・レイテンシに苦しむ可能性があります。 詳細は、「連続可用性」 yの技術概要を参照してください。 この技術概要で説明するすべてのオプションは、Oracle Database Applianceに適用されます。
- 「環境」
2ノードのプライマリOracle RACデータベースおよび2ノードのスタンバイOracle RACデータベース環境で透過的アプリケーション・コンティニュイティ(TAC)を設定する環境を理解します。 - 「Oracle Data Guardの構成」
アプリケーション・コンティニュイティを使用してOracle Data Guardを構成するステップを理解します。
環境
2ノードのプライマリOracle RACデータベースおよび2ノードのスタンバイOracle RACデータベース環境で透過的アプリケーション・コンティニュイティ(TAC)を設定する環境を理解します。
コンポーネント | プライマリOracle Database Appliance | スタンバイOracle Database Appliance |
---|---|---|
Database型 | 2ノードのOracle RACデータベース | 2ノードのOracle RACデータベース |
データベース名 | ラック | ラック |
一意のデータベース名 | racwtac_pri | racwtac_stby |
TACで保護するプラガブル・データベース(PDB) | buda | buda |
Oracle Data Guardの構成
アプリケーション・コンティニュイティを使用してOracle Data Guardを構成するステップを理解します。
- プライマリ・アプライアンスとスタンバイ・アプライアンスの間にOracle Active Data Guardが構成されていることを確認します:
# odacli list-dataguardstatus Updated about 1 minute(s) ago It can take up to several minutes to update Data Guard status. You can re-run the command to obtain the latest status. ID Name Database Name Role Protection Mode Apply Lag Transport Lag Apply Rate Status ---------------------------------------- -------------------------------- -------------------- ---------- ------------------ --------------- --------------- --------------- ---------- 9511c5cc-365c-4e85-9dee-8a55ae6f01fa racwtac_pri_racwtac_stby racwtac PRIMARY MAX_PERFORMANCE 0 seconds 0 seconds 2.00 KByte/s CONFIGURED
- プライマリ・システムで、いずれかのノードで
oracle
ユーザーとしてログインし、ロールベースの透過的アプリケーション・コンティニュイティ・タイプのサービスを構成します:$ export ORACLE_HOME=path_of_the_RDBMS_home $ $ORACLE_HOME/bin/srvctl add service -db racwtac_pri -service tacservice -pdb buda -preferred racwtac1,racwtac2 -failover_restore AUTO -commit_outcome TRUE -failovertype AUTO -replay_init_time 600 -retention 86400 -notification TRUE -drain_timeout 300 -stopoption IMMEDIATE -role PRIMARY
ここで、failovertype = AUTOまたはTRANSACTION(アプリケーション・コンティニュイティの場合)、commit_outcome = TRUE(トランザクション・ガードの場合)、failoverretry =リプレイ当たりの接続再試行回数、failoverdelay =接続再試行間の遅延(秒)。
- プライマリでサービスを開始します:
$ $ORACLE_HOME/bin/srvctl start service -s tacservice -d racwtac_pri $ $ORACLE_HOME/bin/srvctl status service -s tacservice -d racwtac_pri Service tacservice is running on instance(s) racwtac1,racwtac2 $ORACLE_HOME/bin/srvctl config service -d racwtac_pri -s tacservice Service name: tacservice Server pool: Cardinality: 2 Service role: PRIMARY Management policy: AUTOMATIC DTP transaction: false AQ HA notifications: true Global: false Commit Outcome: true Failover type: AUTO Failover method: Failover retries: 30 Failover delay: 10 Failover restore: AUTO Connection Load Balancing Goal: LONG Runtime Load Balancing Goal: NONE TAF policy specification: NONE Edition: Pluggable database name: buda Hub service: Maximum lag time: ANY SQL Translation Profile: Retention: 86400 seconds Replay Initiation Time: 600 seconds Drain timeout: 300 seconds Stop option: immediate Session State Consistency: AUTO GSM Flags: 0 Service is enabled Preferred instances: racwtac1,racwtac2 Available instances: CSS critical: no Service uses Java: false
- スタンバイ・システムで、いずれかのノードで
oracle
ユーザーとしてログインし、同じロールベースの透過的アプリケーション・コンティニュイティ・タイプのサービスを構成します:$ $ORACLE_HOME/bin/srvctl add service -db racwtac_stby -service tacservice -pdb buda -preferred racwtac1,racwtac2 -failover_restore AUTO -commit_outcome TRUE -failovertype AUTO -replay_init_time 600 -retention 86400 -notification TRUE -drain_timeout 300 -stopoption IMMEDIATE -role PRIMARY
- 次に、TACが提供するすべての利点にアクセスするためにアプリケーションで使用する必要があるJDBC接続文字列を示します:
jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=90)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=50)(RETRY_DELAY=3)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL = TCP)(HOST = primary-scan.oracle.com)(PORT = 1521)))(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL = TCP)(HOST = standby-scan.oracle.com)(PORT = 1521)))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = tacservice.oracle.com)))