自動リフレッシュを使用したキャッシュ・グループで使用されているOracle Databaseオブジェクトの削除
TimesTenデータベースは、たとえば、TimesTenシステムがオフラインになったり、自動リフレッシュを使用したキャッシュ・グループを削除せずにデータベースを破棄すると使用不可能になります。
また、TimesTenデータベースが使用されなくなったが、自動リフレッシュありのキャッシュ・グループがまだそれに含まれている場合は、自動リフレッシュ処理の実装に使用されているOracleデータベース・オブジェクトは、Oracleデータベース内に存在し続けます。行が引き続き変更ログ表に蓄積されます。これは、他のTimesTenデータベースに対する自動リフレッシュのパフォーマンスに影響を与えます。このため、使用不可能になったり破棄されたTimesTenデータベースに関連付けられているこれらのOracle Databaseオブジェクトをクリーン・アップすることをお薦めします。
-
TimesTen Classicを使用する場合は、SQL*Plusスクリプト
timesten_home
/install/oraclescripts/cacheCleanUp.sql
をOracleキャッシュ管理ユーザーとして実行し、自動リフレッシュ処理の実装に使用されるOracle Databaseオブジェクトをクリーン・アップします。TimesTen Classicシステムのホスト名およびTimesTenデータベース(パスを含む)を引数としてcacheCleanUp.sql
スクリプトに渡します。ttCacheInfo
ユーティリティまたはcacheInfo.sql
スクリプトをOracleキャッシュ管理ユーザーとして実行し、ホスト名およびデータベース名を確認できます。 -
TimesTen Scaleoutでは、SQL*Plusスクリプト
timesten_home
/install/oraclescripts/scaleoutCacheCleanUp.sql
をOracleキャッシュ管理ユーザーとして実行し、自動リフレッシュ処理の実装に使用されるOracle Databaseオブジェクトをクリーン・アップします。グリッド名とTimesTenデータベース名は、引数としてscaleoutCacheCleanUp.sql
スクリプトに渡されます。cacheInfo.sql
スクリプトをOracleキャッシュ管理ユーザーとして実行し、グリッド名およびデータベース名を確認できます。
cacheInfo.sql
スクリプトまたはttCacheInfo
ユーティリティを使用して、自動リフレッシュ処理の実装に使用されるオブジェクトがOracle Databaseに存在するかどうかを判断できます。
次の例では、自動リフレッシュを使用したキャッシュ・グループのOracleデータベース・オブジェクトを削除する方法を示します。この例では、TimesTen ClassicシステムにcacheCleanUp.sql
スクリプトを使用します。これは、customers
およびorders
キャッシュ表に関連付けられている変更ログ表およびトリガーを削除します。scaleoutCacheCleanup.sql
スクリプトは、入力パラメータとしてグリッド名とデータベース名を必要とする点を除き、TimesTen Scaleoutの場合と同じ方法で実行されます。
% cd timesten_home/install/oraclescripts
% sqlplus cacheadmin/orapwd
SQL> @cacheCleanUp "sys1" "/disk1/databases/database1"
*****************************OUTPUT**************************************
Performing cleanup for object_id: 69959 which belongs to table : CUSTOMERS
Executing: delete from tt_07_agent_status where host = sys1 and datastore =
/disk1/databases/database1 and object_id = 69959
Executing: drop table tt_07_69959_L
Executing: drop trigger tt_07_69959_T
Executing: delete from tt_07_user_count where object_id = object_id1
Performing cleanup for object_id: 69966 which belongs to table : ORDERS
Executing: delete from tt_07_agent_status where host = sys1 and datastore =
/disk1/databases/database1 and object_id = 69966
Executing: drop table tt_07_69966_L
Executing: drop trigger tt_07_69966_T
Executing: delete from tt_07_user_count where object_id = object_id1
**************************************************************************
このガイドの「キャッシュ用のSQL*Plusスクリプト」および『Oracle TimesTen In-Memory Databaseリファレンス』のttCacheInfoを参照してください。