15 TimesTen Cacheの操作

TimesTenオペレータでは、Kubernetes環境での、TimesTen ClassicおよびTimesTen Scaleoutと、TimesTen Cacheの併用がサポートされています。

TimesTen Cacheの使用について

TimesTenオペレータでは、キャッシュ・グループを構成するためにTimesTen ClassicおよびTimesTen Scaleoutで使用できるインタフェースが提供されます。

提供できるキャッシュ関連メタデータ・ファイルを次に示します。
  • cacheUser: このファイルには、TimesTenキャッシュ・マネージャ・ユーザーが含まれています。その形式はuser/ttpwd/orapwdであり、ユーザー名、TimesTenパスワード、およびユーザーのOracleパスワードが含まれています。TimesTen ClassicまたはTimesTen Scaleoutを作成してデプロイする前に、Oracleユーザー(Oracle Databaseではキャッシュ管理ユーザーと呼ばれる)が存在している必要があります。オペレータによって、指定した名前とパスワードでTimesTenデータベースにTimesTenユーザーが作成されます。また、オペレータによって、このユーザーに適切な権限が付与されます。

    次に例を示します。
    cachemanageruser/ttmgrpwd/oramgrpwd

    詳細は、「cacheUser」を参照してください。

  • cachegroups.sql: このファイルには、TimesTenデータベースの作成時にオペレータによって自動的に実行されるように、CREATE CACHE GROUP文およびLOAD CACHE GROUP文を含めることができます。このファイルには、キャッシュ・グループ表内の統計(ttOptEstimateStatsttOptUpdateStatsなど)を更新するためのTimesTen組込みプロシージャも含まれています。

    次に例を示します。
    CREATE READONLY CACHE GROUP readcache
    AUTOREFRESH
      INTERVAL 5 SECONDS
    FROM oratt.readtab (
      keyval NUMBER NOT NULL PRIMARY KEY,
      str VARCHAR2(32)
    );
     
    LOAD CACHE GROUP readcache COMMIT EVERY 256 ROWS;

    詳細は、「cachegroups.sql」を参照してください。

cacheUserファイルとcachegroups.sqlファイルを提供した場合は、オペレータによってそれらが使用されて、新しいデータベースの作成時にTimesTen Cacheがプロビジョニングされます。

次のメタデータ・ファイルもTimesTen Cacheに関連しています:

  • tnsnames.ora: このファイルは必須です。これにより、アプリケーションの接続先となるOracle Net Servicesを定義します。TimesTen Cacheの場合は、このファイルでTimesTenとOracle Database (データのキャッシュ元)の間の接続を構成します。このコンテキストでは、TimesTenがOracle Databaseに接続するアプリケーションです。詳細は、「tnsnames.ora」を参照してください。

  • sqlnet.ora: このファイルはオプションです。ただし、Oracle Databaseの構成によっては必要になることがあります。このファイルでは、クライアント・アプリケーションがOracle Databaseと通信する方法のオプションを定義します。このコンテキストでは、TimesTenがアプリケーションです。tnsnames.orasqlnet.oraの両方のファイルで、アプリケーションがOracle Databaseと通信する方法を定義します。

    詳細は、「sqlnet.ora」を参照してください。

  • db.ini: このファイルは必須です。その内容には、TimesTenデータベースのTimesTen接続属性が含まれます。これらのファイルは、TimesTen ClassicではTimesTenのsys.odbc.iniファイルに含まれ、TimesTen Scaeloutではデータベース定義ファイル(dbDef)に含まれています。このファイルでは、接続属性のOracleNetServiceNameDatabaseCharacterSetを指定する必要があります。DatabaseCharacterSet値は、Oracleデータベースの文字セット値と一致している必要があります。

    詳細は、「db.ini」を参照してください。

  • schema.sql: このファイルは必要な場合があります。TimesTen Cacheでは、1人または複数のキャッシュ表ユーザーがキャッシュ表を所有します。このキャッシュ表ユーザーがキャッシュ・マネージャ・ユーザーでない場合は、schema.sqlファイルを提供し、そのファイル内にスキーマ・ユーザーを含める必要があります。また、このスキーマ・ユーザーに適切な権限を割り当てる必要があります。たとえば、Oracle Databaseでorattスキーマ・ユーザーが作成されていたときに、このユーザーがTimesTenキャッシュ・マネージャ・ユーザーでない場合は、このファイルにTimesTen orattユーザーを作成する必要があります。

    インスタンス管理者は、ttIsqlユーティリティを使用して、このファイルをデータベースの作成直後に実行します。このファイルは、オペレータによってTimesTen Cacheが構成される前に実行されるため、このファイル内にキャッシュ定義がないことを確認してください。

    Oracle Databaseのスキーマ・ユーザーの詳細は、「Oracle Databaseユーザーの作成」を参照してください。schema.sqlファイルの詳細は、「schema.sql」を参照してください。

TimesTen Classicでは、cachegroups.sqlファイルの内容は、それがスタンバイに複製される前に、アクティブ・データベースで実行されます。cachegroups.sqlファイルで指定した自動リフレッシュ・キャッシュ・グループが存在する場合、そのグループはアクティブ・データベースをスタンバイに複製する前にエージェントによって一時停止されます。複製プロセスが完了すると、該当する自動リフレッシュ・キャッシュ・グループは再度有効化されます。

TimesTen Scaleoutでは、cachegroups.sqlファイルの内容は、データベース作成中に実行されます。

作成されロールアウトされた後は、オペレータによってTimesTen Cacheが監視されることも管理されることもありません。具体的には、オペレータはキャッシュ・エージェントの状態を監視しなくなり、それらのエージェントを起動または停止するための追加の処理を実行することもなくなります。さらに、オペレータは、TimesTenデータベースとOracle Databaseの間でデータが正しく伝播されていることを検証しません。

TimesTenClassicまたはTimesTenScaleoutオブジェクトを削除すると、オペレータによってOracle Databaseメタデータが自動的にクリーン・アップされます。しかしながら、Oracle Databaseメタデータを保持する必要がある場合は、TimesTenClassicまたはTimesTen Scaleoutオブジェクト定義内でcacheCleanUpデータ項目を指定し、その値をfalseに設定してください。「TimesTenClassicSpecSpec」および「TimesTenScaleoutSpecSpec」で「cacheCleanup」データ項目を参照してください。

完成例については、次を参照してください: