ttMigrateユーティリティを使用したTimesTen Classicデータベースのバックアップおよびリストア
ttMigrate
ユーティリティは、TimesTen Classicデータベースの表および索引をバイナリ・ファイルに保存します。
キャッシュ・グループが移行されてバイナリ・ファイルに含まれている場合、キャッシュ・グループの定義およびスキーマは含まれていますが、キャッシュ・グループのデータは移行されていません。
ノート:
『Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド』の「TimesTen Classicでのデータのバックアップ、リストアおよび移行」および『Oracle TimesTen In-Memory Databaseリファレンス』の「ttMigrate」を参照してください。
リストア済データベースが元々接続していたデータベースとは別のバックエンドOracle Databaseに接続する場合で、データベースのバックアップおよびリストアにttMigrate
ユーティリティを使用する場合は、次の手順を実行します。
-
キャッシュ・エージェントを停止します。
% ttIsql -connstr "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet" Command> call ttCacheStop; Command> exit Disconnecting... Done.
-
ttMigrate -c
ユーティリティ・コマンドを実行して、データベースおよびそのオブジェクトをバイナリ・ファイルに保存します。% ttMigrate -c "DSN=cache1" cache1.ttm ... Saving user CACHEADMIN User successfully saved. Saving user sales User successfully saved. Saving table CACHEADMIN.READTAB Saving rows... 2/2 rows saved. Table successfully saved. Saving cache group CACHEADMIN.READCACHE Saving cached table SALES.READTAB Cache group successfully saved.
-
(オプション) TimesTenデータベースからすべてのキャッシュ・グループを削除します。データベースはキャッシュ・グループにまだ存在するため、TimesTenではキャッシュ・グループを削除することをお薦めします。TimesTenデータベースを破棄する前にすべてのキャッシュ・グループを削除すると、Oracle Databaseにあるそのキャッシュ・グループのメタデータがすべて削除されます。ただし、今後のステップで
cacheCleanup.sql
スクリプトを使用する場合、このスクリプトはOracle Databaseのメタデータを削除します。エラーが報告される場合もありますが、これは無視しても差し支えありません。
Command> DROP CACHE GROUP readcache; Command> exit Disconnecting... Done.
-
TimesTenデータベースを破棄します。
% ttDestroy cache1
-
Oracle Databaseでオブジェクトをクリーン・アップします。前述のステップでキャッシュ・グループを削除しなかった場合は、Oracleキャッシュ管理ユーザーとしてSQL*Plusスクリプトtimesten_home
/install/oraclescripts/cacheCleanUp.sql
を実行すると、自動リフレッシュ処理の実装に使用されるOracle Databaseオブジェクトを削除できます。TimesTen Classicシステムのホスト名およびTimesTenデータベース(パスを含む)を引数としてcacheCleanUp.sql
スクリプトに渡します。ttCacheInfo
ユーティリティまたはcacheInfo.sql
スクリプトをOracleキャッシュ管理ユーザーとして実行し、ホスト名およびデータベース名を確認できます。% cd timesten_home/install/oraclescripts % sqlplus cacheadmin/orapwd SQL> @cacheCleanUp "sys1" "/users/OracleCache/cache1" *****************************OUTPUT************************************** Performing cleanup for object_id: 69959 which belongs to table : CUSTOMER Executing: delete from tt_05_agent_status where host = sys1 and datastore = /users/OracleCache/cache1 and object_id = 69959 Executing: drop table tt_05_69959_L Executing: drop trigger tt_05_69959_T Executing: delete from tt_05_user_count where object_id = object_id1 Performing cleanup for object_id: 69966 which belongs to table : ORDERS Executing: delete from tt_05_agent_status where host = sys1 and datastore = /users/OracleCache/cache1 and object_id = 69966 Executing: drop table tt_05_69966_L Executing: drop trigger tt_05_69966_T Executing: delete from tt_05_user_count where object_id = object_id1 **************************************************************************
-
データベースを作成してリストアします。
-
最初の接続リクエストでTimesTenデータベースを作成します。
-
キャッシュ表ユーザーおよびTimesTenキャッシュ管理ユーザーを作成します。これらのユーザーに適切な権限を付与します。
ノート:
移行元のTimesTen Classicのリリースによっては、ユーザーおよび権限が移行されない場合があります。Oracle TimesTen In-Memory DatabaseリファレンスのttMigrateを参照してください。
% ttIsql cache1 Command> CREATE USER cacheadmin IDENTIFIED BY timesten; User created. Command> GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE TO cacheadmin; Command> CREATE USER sales IDENTIFIED BY timesten; User created. Command> exit Disconnecting... Done.
-
ttCacheUidPwdSet
組込みプロシージャを使用してOracleキャッシュ管理者ユーザーの名前およびパスワードを登録します。% ttIsql -connstr "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet" Command> call ttCacheUidPwdSet('cacheadmin','orapwd'); Command> exit Disconnecting... Done.
-
-
ttMigrate -r
ユーティリティ・コマンドを使用して、保存したバイナリ・ファイルからデータベースをリストアします。% ttMigrate -r -relaxedUpgrade -cacheuid cacheadmin -cachepwd orapwd -connstr "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet" cache1.ttm ... Restoring table CACHEADMIN.READTAB Restoring rows... 2/2 rows restored. Table successfully restored. Restoring cache group CACHEADMIN.READCACHE Restoring cached table SALES.READTAB 1/1 cached table restored. Cache group successfully restored.
-
リストアされたデータベースに接続し、キャッシュの自動リフレッシュ状態をリセットします。
-
ttIsqlを使用してTimesTenデータベースに接続します。
-
キャッシュ・エージェントを起動します。
-
自動リフレッシュの状態を
ON
に設定するようキャッシュ・グループを変更します。% ttIsql -connstr "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet" Command> call ttCacheStart; Command> ALTER CACHE GROUP readcache SET AUTOREFRESH STATE ON;
-
ノート:
リストア済TimesTenデータベースがどのバックエンドOracle Databaseとも接続できない場合、TimesTenは読取り専用キャッシュ・グループのデータを自動リフレッシュできません。