2.5 True Cache構成の確認

True Cacheおよびデータベース・アプリケーション・サービスが予期したとおりに機能していることを確認します。

2.5.1 True Cacheが想定どおりに動作していることの確認

True CacheがREDOを適用して進行中であることを確認するには、True Cacheに対する次の問合せを確認します。

  1. True CacheでSQL*Plusを実行します。

    sqlplus / as SYSDBA
  2. 次の問合せを入力します。

    SELECT database_role, open_mode FROM v$database;

    出力は、次のようになります。

    DATABASE_ROLE    OPEN_MODE
    ---------------- --------------------
    TRUE CACHE       READ ONLY WITH APPLY

    OPEN_MODEREAD ONLY WITH APPLYの場合、True CacheのREDO Applyがアクティブに動作していることを意味します。

  3. 次の問合せを複数回入力します:

    SELECT current_scn FROM v$database;

    CURRENT_SCNが時間とともに進んでいる場合は、True Cacheが予想どおりに進んでいることを意味します。

  4. 各ログ・ファイルのサイズを確認するには、次の問合せを入力します:

    SELECT THREAD#, SEQUENCE#, BYTES FROM v$standby_log;

2.5.2 リモート・リスナー構成の検証

データベース・アプリケーション・サービスがTrue Cacheで起動した後、lsnrctlコマンドを使用して、True Cacheサービス登録のリモート・リスナー・サービスを検証します。

ノート:

Oracle RACプライマリ・データベースの場合、lsnrctlコマンドを使用する前に、環境変数$ORACLE_HOMEをOracle Grid Infrastructureホーム(Gridホーム)のパスに設定します。

次の例は、Oracle RACプライマリ・データベースのSCANリスナーに登録されている2つのTrue Cacheを示しています。

lsnrctl services LISTENER_SCAN1

Service "sales_tc" has 2 instance(s).
    Instance "tcdb1", status READY, has 1 handler(s) for this service...
        Handler(s):
            "DEDICATED" established:0 refused:0 state:ready
                REMOTE SERVER       
                (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tc1.example.com)(PORT=1521)))
    Instance "tcdb2", status READY, has 1 handler(s) for this service...
        Handler(s):
            "DEDICATED" established:0 refused:0 state:ready
                REMOTE SERVER       
                (ADDRESS=(PROTOCOL=TCP)(HOST=tc2.example.com)(PORT=1521))

ノート:

True Cacheサービスがリモート・リスナーに登録されていない場合は、リモート・リスナー招待ノードと、REMOTE_LISTENERまたはLISTENER_NETWORKSのTrue Cache初期化パラメータを検証します。

2.5.3 True Cacheおよびプライマリ・データベース・アプリケーション・サービスの確認

プライマリ・データベースとTrue Cacheの両方で、すべてのデータベース・アプリケーション・サービスがアクティブであることを確認します。

True Cache

  1. True CacheでSQL*Plusを実行します。

    sqlplus / as SYSDBA
  2. 次の問合せを入力します。

    SELECT service_id, name FROM v$active_services WHERE name='true_cache_service_name';

    例:

    SELECT service_id, name FROM v$active_services WHERE name='SALES_TC';
    
    SERVICE_ID  NAME
    ----------  ---------
            28  SALES_TC

プライマリ・データベース

  1. プライマリ・データベースでSQL*Plusを実行します。

    sqlplus / as SYSDBA
  2. 次の問合せを入力します。

    SELECT service_id, name, true_cache_service FROM v$active_services WHERE name='primary_db_service_name';

    例:

    SELECT service_id, name, true_cache_service FROM v$active_services WHERE name='SALES';
    
    SERVICE_ID   NAME    TRUE_CACHE_SERVICE
    ----------   ------  ----------------
            29   SALES   SALES_TC