Oracle Databaseスキーマの変更時のキャッシュ・グループへの影響

Oracle Databaseスキーマに変更を加えるために、キャッシュされたOracle Database表に対してCREATEDROPALTERなどのDDL文を発行する必要がある場合は、Oracle Databaseスキーマを変更する前に、処理対象のキャッシュ・グループを削除します。削除しないと、自動リフレッシュなどの処理が失敗する場合があります。

列を追加するためにOracle Database表を変更する場合は、キャッシュ・グループを削除する必要はありません

Oracle Database表で他のDDL文を発行するには、最初に次のタスクを実行します。

  1. DROP CACHE GROUP文を使用して、処理対象のOracle Database表をキャッシュするすべてのキャッシュ・グループを削除します。AWTキャッシュ・グループを削除する場合は、そのキャッシュ・グループを削除する前に、ttRepSubscriberWait組込みプロシージャを使用して、そのグループのキャッシュ表にコミットされたすべての変更をキャッシュされたOracle Database表に伝播します。

    % ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
    Command> CALL ttRepSubscriberWait('_AWTREPSCHEME','TTREP','_ORACLE','sys1',-1);
  2. キャッシュ・エージェントを停止します。

  3. Oracle Databaseスキーマに必要な変更を加えます。

  4. CREATE CACHE GROUP文を使用してキャッシュ・グループを再作成します(可能な場合)。

自動リフレッシュを使用したキャッシュ・グループにキャッシュされるOracle Database表を切り捨てる場合は、次のタスクを実行します。

  1. ALTER CACHE GROUP文を使用して、キャッシュ・グループの自動リフレッシュ状態をPAUSEDに設定します。
  2. Oracle Database表を切り捨てます。
  3. WHERE句またはWITH ID句を指定せずにREFRESH CACHE GROUP文を使用して、キャッシュ・グループを手動でリフレッシュします。

キャッシュ・グループをリフレッシュすると、自動リフレッシュ処理が再開されます。