構成メタデータの詳細について

メタデータ・ファイルでは、TimesTenデータベースの属性およびメタデータを指定できます。これらのファイルを作成した後、これらのファイルをTimesTenコンテナに取得する機能を選択すると、TimesTenはこれらのファイルにアクセスして、データベースに固有の属性およびメタデータを判断します。

adminUser

adminUserファイルは、TimesTenデータベースにADMIN権限を持つ初期ユーザーを作成します。このファイルを指定すると、このユーザーはデータベースの作成後に作成されます。このファイルには、次の形式の1行が含まれている必要があります。

user/password

cachegroups.sql

cachegroups.sqlファイルには、データベースのキャッシュ・グループの作成定義およびキャッシュ・グループ操作が含まれます。このファイルでは、次のキャッシュ・グループ定義およびキャッシュ操作を指定できます。
  • (required): TimesTenキャッシュ・グループを作成するためのCREATE CACHE GROUP

  • (オプション): Oracle Databaseからキャッシュ・グループにデータをロードするためのLOAD CACHE GROUP

  • (オプション): キャッシュ表の統計を更新するためのttOptUpdateStatsまたはttOptEstimateStats TimesTen組込みプロシージャ

TimesTenClassicデプロイメントでTimesTen Cacheを使用している場合は、cachegroups.sqlファイルが必要です。この要件により、レプリケーションが構成される前にキャッシュ・グループが作成されます。ノート: インスタンス管理者は、ttIsqlユーティリティを使用してcachegroups.sqlファイルを実行します。

参照:

次に、cachegroups.sqlファイルの例を示します。このファイルでは、2つのキャッシュ・グループを定義して、データを1つのキャッシュ・グループにロードします。

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP writecache
FROM oratt.writetab (
  pk NUMBER NOT NULL PRIMARY KEY,
  attr VARCHAR2(40)
);
 
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;

cacheUser

cacheUserファイルでは、TimesTenキャッシュ・マネージャ・ユーザーを作成できます。このユーザーは、Oracle Databaseのキャッシュ管理ユーザーと同じ名前にし、Oracle Databaseにすでに存在している必要があります。『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』Oracleデータベース・ユーザーおよびデフォルトの表領域の作成を参照してください。

このファイルには、次の形式の1行が含まれている必要があります。

cacheUser/ttPassword/oraPassword

cacheUserはTimesTenキャッシュ・マネージャ・ユーザー、ttPasswordはTimesTen cacheUserユーザーのTimesTenパスワード、oraPasswordはOracle DatabaseでcacheUserユーザーを作成したときに指定したOracle Databaseパスワードです。

たとえば、Oracle Databaseでパスワードがoraclepwdcacheuser2キャッシュ管理ユーザーを作成していたとします。このcacheuser2ユーザーをTimesTenキャッシュ・マネージャ・ユーザーとして指定し、そのTimesTenパスワードをttpwdにするとします。この例の場合、cacheUserメタデータ・ファイルには次の行を含めます。

cacheuser2/ttpwd/oraclepwd

TimesTenオペレータは、ttpwdを持つcacheuser2ユーザーをTimesTenデータベースに作成します。このcacheuser2ユーザーは、TimesTenデータベースのキャッシュ・マネージャ・ユーザーとしての役割を果たすことになります。このTimesTenユーザーを作成する必要はありません。その操作は、オペレータが実行します。

『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』TimesTenユーザーの作成を参照してください。

オペレータは、TimesTenのcacheUserユーザー(この例ではcacheuser2)に、このユーザーのキャッシュ・マネージャとしてのロールに適した権限を付与します。これに該当する権限を次に示します。

  • CREATE SESSION

  • CACHE MANAGER

  • CREATE ANY TABLE

  • LOAD ANY CACHE GROUP

  • REFRESH ANY CACHE GROUP

  • FLUSH ANY CACHE GROUP

  • DROP ANY CACHE GROUP

  • ALTER ANY CACHE GROUP

  • UNLOAD ANY CACHE GROUP

  • SELECT ANY TABLE

  • INSERT ANY TABLE

  • UPDATE ANY TABLE

  • DELETE ANY TABLE

csWallet

TimesTenクライアント/サーバー環境では、デフォルトでクライアント・アプリケーションとTimesTenデータベースの間で暗号化されていないデータが送信されます。ただし、Client/Server用のTLSを構成すると、TimesTenのクライアントとサーバーの間でセキュアなネットワーク通信を確保できます。Client/Serverのトラフィックを暗号化するには、/ttconfig/csWalletファイルを指定します。このファイルには、サーバー用のOracleウォレットが含まれています。このウォレットに、TimesTenデータベースとClient/Serverアプリケーションの間のTLS暗号化の構成に使用される資格証明を含めます。このファイルは、TimesTenデータベースのコンテナのディレクトリ/tt/home/timesten/csWalletで使用できるようになります。このディレクトリは、db.iniファイルで参照できます(wallet接続属性を指定します)。「レプリケーションおよびClient/Server用のTLS証明書の作成」「レプリケーションおよびClient/Server用のTLS証明書の作成」を参照してください。

クライアント・ウォレットは、クライアント・アプリケーションでも使用できるようにする必要があります。「レプリケーションおよびClient/Server用のTLS証明書の作成」「Client/Server用のTLSの構成」を参照してください。

db.ini

db.iniファイルには、データベースのTimesTen DSN定義が含まれています。

TimesTen Classicでは、db.iniファイルにデータベースの接続属性が含まれます。このファイルは、インスタンスのsys.odbc.iniファイルを生成するために使用されます。db.iniファイルには、データ・ストア属性、初期接続属性および一般接続属性を指定できます。DSNの名前は、TimesTenClassicオブジェクトの名前です。たとえば、TimesTenClassicオブジェクトの名前がsampleの場合、DSNの名前はsampleになります。

TimesTenScaleoutでは、db.iniファイルにグリッド内のデータベースの各要素の接続属性が含まれます。データベース定義ファイル(dbDef)とその内容は、TimesTen Scaleoutデータベース定義の作成に使用されます。データベース定義の名前は、TimesTenScaleoutオブジェクトの名前です。たとえば、TimesTenScaleoutオブジェクトの名前がsampleの場合、データベース定義の名前はsampleです。TimesTen Scaleoutデータベースは、データベース定義に基づいて作成されます。TimesTen Scaleoutでのデータベースの作成およびデータベース定義の作成の詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』データベースの作成を参照してください。

TimesTenClassicデプロイメントでTimesTen Cacheを使用している場合は、db.iniファイルにOracleNetServiceNameおよびDatabaseCharacterSet接続属性を指定する必要があります。DatabaseCharacterSet値は、Oracle Databaseのデータベース文字セットの値と一致している必要があります。

DataStoreまたはLogDir接続属性をdb.iniファイルに指定しないでください。オペレータはこれらの属性を設定し、データベース・ファイルをKubernetesの永続ボリュームに配置します。

TimesTen接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』接続属性のリストを参照してください。

ノート:

/ttconfig/db.iniファイルがTimesTenコンテナ内に存在しない場合、TimesTenはデフォルトのsys.odbc.iniファイルを作成します。このデフォルトのsys.odbc.iniの場合、接続属性はPermsize=200およびDatabaseCharacterSet=AL32UTF8です。

この例では、TimesTen ClassicまたはTimesTen ScaleoutのTimesTenデータベースの様々な接続属性を含むサンプルのdb.iniファイルを示します。

PermSize=500
LogFileSize=1024
LogBufMB=1024
DatabaseCharacterSet=AL32UTF8

次に、TimesTen ClassicのTimesTen Cacheを使用するTimesTenデータベースのOracleNetServiceNameを含むサンプルのdb.iniファイルの例を示します。

PermSize=500
LogFileSize=1024
LogBufMB=1024
DatabaseCharacterSet=AL32UTF8 
OracleNetServiceName=OraCache

epilog.sql

TimesTen Classicでは、epilog.sqlファイルに、レプリケーション・スキームを作成してレプリケーション・エージェントを起動した後に発生する操作が含まれます。たとえば、レプリケートされたXLAのブックマークを作成する場合は、このファイルにttXlaBookmarkCreate TimesTen組込みプロシージャを含めることができます。

オペレータはインスタンス管理者に、ttIsqlユーティリティを使用してepilog.sqlファイルを実行するように指示します。

次に、epilog.sqlファイルの例を示します。この例では、ttXlaBookmarkCreate TimesTen組込みプロシージャをコールしてXLAブックマークを作成します。

call ttXlaBookmarkCreate('mybookmark',0x01);

レプリケートされたブックマークの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttXlaBookmarkCreate TimesTen組込みプロシージャを参照してください。

replicationWallet

TimesTen Classicでは、デフォルトでTimesTenレプリケーションは、TimesTenデータベース間で暗号化されていないデータを送信します。ただし、レプリケーション用のTLSを構成すると、レプリケートされたTimesTenデータベース間でセキュアなネットワーク通信を確保できます。これを行うには、/ttconfig/replicationWalletファイルを指定します。このファイルにはOracleウォレットが含まれています。このウォレットには、TimesTenデータベースのアクティブ・スタンバイ・ペア間でTLS暗号化を構成するためにTimesTenレプリケーションで使用される資格証明が含まれています。「レプリケーションおよびClient/Server用のTLS証明書の作成」「レプリケーション用のTLSの構成」を参照してください。

このファイルを指定する場合は、replicationCipherSuiteフィールドを含める必要があり、オプションでTimesTenClassicオブジェクト定義にreplicationSSLMandatoryフィールドを含めます。TimesTenClassicSpecSpecreplicationCipherSuiteエントリとreplicationSSLMandatoryエントリおよび「レプリケーション用のTLSの構成」を参照してください。

schema.sql

TimesTenオペレータは、ユーザー、表、順序などのスキーマ・オブジェクトを使用してデータベースを自動的に初期化できます。オペレータでこれを行うには、schema.sqlファイルを作成します。

オペレータはインスタンス管理者に、ttIsqlユーティリティを使用して、データベースの作成直後にschema.sqlファイルを実行するように指示します。この操作は、オペレータがTimesTenデータベースにレプリケーションまたはキャッシュを構成する前に行われます。

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

このファイルには、キャッシュ定義を含めません。そのかわりに、cachegroups.sqlメタデータ・ファイルを使用します。cachegroups.sqlを参照してください。

sqlnet.ora

Oracle Database sqlnet.oraファイルでは、クライアント・アプリケーションがOracle Databaseと通信する方法のオプションを定義します。TimesTen Cacheを使用する場合やttLoadFromOracleなどのツールを使用する場合は、sqlnet.oraファイルを定義します。このファイルには、TimesTenなどのアプリケーションがOracleデータベースに接続する方法が記述されています。ノート: sqlnet.oraファイルを定義する場合は、tnsnames.oraファイルを定義する必要があります。tnsnames.oraを参照してください。

次に、sqlnet.oraファイルの例を示します。

NAME.DIRECTORY_PATH= {TNSNAMES, EZCONNECT, HOSTNAME}
SQLNET.EXPIRE_TIME = 10
SSL_VERSION = 1.2

testUser

testUserファイルは、testユーザーを定義します。このユーザーは、helm testコマンドでTimesTenをテストするために使用されます。ユーザーにはCONNECT権限が付与されます。テストでは、testユーザーとしてTimesTenデータベースに接続します。このテストでは、TimesTen Classicデータベースが稼働中であることを確認します。

testUserファイルには、次の形式の1行が含まれている必要があります。
testuser/testuserpassword
ここで、testusertestユーザーの名前、testuserpasswordはこのテスト・ユーザーのパスワードです。

Helmの使用およびhelm testコマンドを使用してTimesTenをテストする方法の詳細は、「TimesTen Kubernetesオペレータ環境でのHelmの使用」および「レプリケートされた構成のTimesTenのテスト」を参照してください。

tnsnames.ora

Oracle Databaseのtnsnames.oraファイルでは、アプリケーションが接続するOracle Net Servicesを定義します。次を使用する場合は、tnsnames.ora (および場合によってはsqlnet.oraで説明されているsqlnet.oraファイル)を使用する必要があります。

  • TimesTen Cache

  • Pro*C、OCI、ODPI-CなどのSQL API

  • ttLoadFromOracle機能

ttLoadFromOracle TimesTen組込みプロシージャの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttLoadFromOracleを参照してください。

次に、tnsnames.oraファイルの例を示します。

OraTest =   
 (DESCRIPTION = 
   (ADDRESS = (PROTOCOL = TCP)(HOST = database.mynamespace.svc.cluster.local)
     (PORT = 1521))     
   (CONNECT_DATA =       
     (SERVER = DEDICATED)       
     (SERVICE_NAME = OraTest.my.sample.com)))
OraCache =  
 (DESCRIPTION =   
   (ADDRESS = (PROTOCOL = TCP)(HOST = database.mynamespace.svc.cluster.local)
     (PORT = 1521))     
   (CONNECT_DATA =       
     (SERVER = DEDICATED)       
     (SERVICE_NAME = OraCache.my.sample.com)))

*.connect

名前が.connect拡張子で終わるファイルは、TimesTen Scaleoutのデータベースへのダイレクト・モード・アクセス用の直接接続可能オブジェクトを1つ以上定義します。直接接続可能オブジェクトはいくつでも作成できます。直接接続可能オブジェクトは、データベースの一般接続属性設定のセットを指定します。有効なDSN名であるかぎり、直接接続可能オブジェクトの任意の名前を選択できます。TimesTenオペレータは、作成する直接接続可能オブジェクト・ファイルごとに1つの直接接続可能オブジェクトを作成します。.connect拡張子は直接接続可能オブジェクトを示します。.connect拡張子が小文字であることを確認します。

次の例では、直接接続可能オブジェクトを1つ作成します。ファイル名はsample.connectです。TimesTenオペレータは、sample.connectファイルの内容に基づいてsample直接接続可能オブジェクトを作成します。

ConnectionCharacterSet=AL32UTF8

直接接続可能オブジェクトの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』接続可能オブジェクトの操作および『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』データベースへの接続を参照してください。

*.csconnect

名前が.csconnect拡張子で終わるファイルは、TimesTen Scaleoutのデータベースへのクライアント/サーバー・アクセス用のクライアント/サーバー接続可能オブジェクトを1つ以上定義します。クライアント/サーバー接続可能オブジェクトはいくつでも作成できます。クライアント/サーバー接続可能オブジェクトは、データベースの一般接続属性設定のセットを指定します。有効なDSN名であるかぎり、クライアント/サーバー接続可能オブジェクトの任意の名前を選択できます。TimesTenオペレータは、作成するクライアント/サーバー接続可能オブジェクト・ファイルごとに1つのクライアント/サーバー接続可能オブジェクトを作成します。.csconnect拡張子は、クライアント/サーバー接続可能オブジェクトを示します。.csconnect拡張子が小文字であることを確認します。

次の例では、クライアント/サーバー接続可能オブジェクトを1つ作成します。ファイル名はsamplecs.csconnectです。TimesTenオペレータは、samplecs.csconnectファイルの内容に基づいてsamplecsクライアント/サーバー接続可能オブジェクトを作成します。

ConnectionCharacterSet=AL32UTF8
TTC_Timeout=30

クライアント/サーバー接続可能オブジェクトの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』接続可能オブジェクトの操作および『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』データベースへの接続を参照してください。