構成メタデータの詳細について
メタデータ・ファイルでは、TimesTenデータベースの属性およびメタデータを指定できます。これらのファイルを作成した後、これらのファイルをTimesTenコンテナに取得する機能を選択すると、TimesTenはこれらのファイルにアクセスして、データベースに固有の属性およびメタデータを判断します。
adminUser
adminUserファイルは、TimesTenデータベースにADMIN権限を持つ初期ユーザーを作成します。このファイルを指定すると、このユーザーはデータベースの作成後に作成されます。このファイルには、次の形式の1行が含まれている必要があります。
user/password
cachegroups.sql
cachegroups.sqlファイルには、データベースのキャッシュ・グループの作成定義およびキャッシュ・グループ操作が含まれます。このファイルでは、次のキャッシュ・グループ定義およびキャッシュ操作を指定できます。
-
(required): TimesTenキャッシュ・グループを作成するための
CREATECACHEGROUP文 -
(オプション): Oracle Databaseからキャッシュ・グループにデータをロードするための
LOADCACHEGROUP文 -
(オプション): キャッシュ表の統計を更新するための
ttOptUpdateStatsまたはttOptEstimateStatsTimesTen組込みプロシージャ
TimesTenClassicデプロイメントでTimesTen Cacheを使用している場合は、cachegroups.sqlファイルが必要です。この要件により、レプリケーションが構成される前にキャッシュ・グループが作成されます。ノート: インスタンス管理者は、ttIsqlユーティリティを使用してcachegroups.sqlファイルを実行します。
参照:
-
Oracle TimesTen In-Memory Database SQLリファレンスのCREATE CACHE GROUPおよびLOAD CACHE GROUP
-
『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』のキャッシュ・グループ・タイプ
-
Oracle TimesTen In-Memory DatabaseリファレンスのttOptpdateStatsおよびttOptEstimateStats
次に、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でパスワードがoraclepwdのcacheuser2キャッシュ管理ユーザーを作成していたとします。このcacheuser2ユーザーをTimesTenキャッシュ・マネージャ・ユーザーとして指定し、そのTimesTenパスワードをttpwdにするとします。この例の場合、cacheUserメタデータ・ファイルには次の行を含めます。
cacheuser2/ttpwd/oraclepwd
TimesTenオペレータは、ttpwdを持つcacheuser2ユーザーをTimesTenデータベースに作成します。このcacheuser2ユーザーは、TimesTenデータベースのキャッシュ・マネージャ・ユーザーとしての役割を果たすことになります。このTimesTenユーザーを作成する必要はありません。その操作は、オペレータが実行します。
『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』のTimesTenユーザーの作成を参照してください。
オペレータは、TimesTenのcacheUserユーザー(この例ではcacheuser2)に、このユーザーのキャッシュ・マネージャとしてのロールに適した権限を付与します。これに該当する権限を次に示します。
-
CREATESESSION -
CACHEMANAGER -
CREATEANYTABLE -
LOADANYCACHEGROUP -
REFRESHANYCACHEGROUP -
FLUSHANYCACHEGROUP -
DROPANYCACHEGROUP -
ALTERANYCACHEGROUP -
UNLOADANYCACHEGROUP -
SELECTANYTABLE -
INSERTANYTABLE -
UPDATEANYTABLE -
DELETEANYTABLE
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=OraCacheepilog.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フィールドを含めます。TimesTenClassicSpecSpecのreplicationCipherSuiteエントリと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.2testUser
testUserファイルは、testユーザーを定義します。このユーザーは、helm testコマンドでTimesTenをテストするために使用されます。ユーザーにはCONNECT権限が付与されます。テストでは、testユーザーとしてTimesTenデータベースに接続します。テストにより、アクティブ・データベースとスタンバイ・データベースの両方が稼働中であり、それらの間のレプリケーションが機能していることが検証されます。
testUserファイルには、次の形式の1行が含まれている必要があります。testuser/testuserpassword ここで、testuserはtestユーザーの名前、testuserpasswordはこのテスト・ユーザーのパスワードです。
Helmの使用およびhelm testコマンドを使用したTimesTenのテストの詳細は、「Helmを使用したTimesTen KubernetesオペレータおよびTimesTenClassicオブジェクトのデプロイ」および「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ユーザーズ・ガイド』のデータベースへの接続を参照してください。