Oracle Databaseの移行でキャッシュ・オブジェクトのクリーン・アップが必要
キャッシュを設定すると、キャッシュ・オブジェクトおよびメタデータがTimesTenとOracleの両方のデータベースにインストールされます。Oracle Databaseを移行すると、バックエンドのOracle Databaseのキャッシュ・メタデータが正しくなくなります。したがって、Oracle Databaseを移行する前に、TimesTenとOracleの両方のデータベースからキャッシュ・オブジェクトとメタデータをクリーン・アップする必要があります。
-
DROP CACHE GROUP
文ですべてのキャッシュ・グループを削除します。次の例では、TimesTenキャッシュ管理ユーザーとして
cache1
データベースに接続し、customer_orders
キャッシュ・グループを削除します。% ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet" Command> DROP CACHE GROUP customer_orders;
「キャッシュ・グループの削除」を参照してください。
-
TimesTenとOracleの両方のデータベースでキャッシュをクリーン・アップします。TimesTenとOracleの両方のデータベースでキャッシュをクリーン・アップしないと、キャッシュ・エラーが発生します。
-
TimesTen Classicを使用する場合は、SQL*Plusスクリプト
timesten_home
/install/oraclescripts/cacheCleanUp.sql
をOracleキャッシュ管理ユーザーとして実行し、キャッシュ処理に使用されるOracle Databaseキャッシュ・オブジェクトおよびメタデータをクリーン・アップします。TimesTen Classicシステムのホスト名およびTimesTenデータベース(パスを含む)を引数としてcacheCleanUp.sql
スクリプトに渡します。 -
TimesTen Scaleoutでは、SQL*Plusスクリプト
timesten_home
/install/oraclescripts/scaleoutCacheCleanUp.sql
をOracleキャッシュ管理ユーザーとして実行し、キャッシュ処理に使用されるOracle Databaseキャッシュ・オブジェクトおよびメタデータをクリーン・アップします。グリッド名とTimesTenデータベース名は、引数としてscaleoutCacheCleanUp.sql
スクリプトに渡されます。次の例は、TimesTenデータベースに、キャッシュ表
sales.customers
およびsales.orders
を含む1つの読取り専用キャッシュ・グループcustomer_orders
を示しています。この例では、TimesTen ClassicシステムにcacheCleanUp.sql
スクリプトを使用します。これは、この2つのキャッシュ表に関連付けられている変更ログ表およびトリガーを削除します。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 **************************************************************************
-
-
Oracle Databaseの移行を実行します。
-
Oracleの移行によってOracleキャッシュ管理ユーザーとその表領域が排除された場合は、Oracle Databaseでキャッシュを再度設定します。TimesTenデータベースをチェックして、TimesTenキャッシュ管理ユーザーとスキーマ・ユーザーがまだ存在していることを確認します。「キャッシュ・インフラストラクチャの設定」を参照してください。
-
キャッシュ・グループを再作成します。「キャッシュ・グループの定義」を参照してください。