その他の拡張機能

データベース・リソース・マネージャの拡張機能

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVEにSWITCH_TIME_IN_CALLパラメータを追加された。

DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING機能を追加された。

再開可能領域

Oracle Databaseでは、領域割当てが失敗した場合に大規模なデータベース処理を一時停止して、後で再開するための方法が提供されています。これにより、Oracle Databaseサーバーがユーザーにエラーを返すかわりに対処措置を講じることができます。エラー条件が訂正されると、一時停止していた処理が自動的に再開します。この機能のことを、再開可能領域割当てと呼びます。また、影響を受ける文のことを、再開可能文と呼びます。

再開可能領域割当の動作

再開可能領域割当ての動作の概要は、次のとおりです。詳細はこの後の各項で説明します。
1 文が再開可能モードで実行されるのは、その文のセッションが、次のいずれかの処理によって再開可能領域割当てに対応している場合のみです。

  • RESUMABLE_TIMEOUT初期化パラメータが0(ゼロ)以外の値に設定された。
  • ALTER SESSION ENABLE RESUMABLE文が発行された。

2 次のいずれかの条件が成立すると、再開可能文が一時停止します(非再開可能文では、これらの条件に対応するエラーが通知されます)。

  • 領域不足条件
  • 最大エクステント数到達条件
  • スペース割当制限超過条件

3 再開可能文の実行が一時停止すると、ユーザー指定の操作の実行、エラーの記録および文の実行状態の問合せを行うメカニズムがただちに動作します。再開可能文が一時停止すると、次の処理が実行されます。

  • エラーがアラート・ログに記録されます。
  • 一時停止された再開可能セッションのアラートが発行されます。
  • ユーザーがAFTER SUSPENDシステム・イベントに対してトリガーを登録していた場合は、そのユーザー・トリガーが実行されます。ユーザー指定のPL/SQLプロシージャは、DBMS_RESUMABLEパッケージとDBA_RESUMABLEまたはUSER_RESUMABLEビューを使用して、エラー・メッセージ・データにアクセスできます。

4 文の一時停止によって自動的にトランザクションが一時停止します。その結果、すべてのトランザクション・リソースが文の一時停止から再開までの間保持されます。
5 ユーザーの介入や他の問合せによってソート領域が解放されるなどの結果としてエラー条件が解決されると、一時停止していた文が自動的に実行を再開し、一時停止された再開可能セッションのアラートが消去されます。
6 一時停止した文は、DBMS_RESUMABLE.ABORT()プロシージャを使用して、強制的に例外を発生できます。このプロシージャは、DBAまたは文を発行したユーザーがコールできます。
7 一時停止のタイムアウト間隔は、再開可能文に対応付けられています。タイムアウト間隔(デフォルトは2時間)の間一時停止していた再開可能文がリストアすると、ユーザーに例外が返されます。
8 再開可能文は、実行中に一時停止と再開を複数回繰り返すことができます。

再開可能領域割当てと分散処理

分散環境で、ユーザーが再開可能領域割当てを有効または無効にした場合、またはDBAとしてRESUMABLE_TIMEOUT初期化パラメータを変更した場合、その影響を受けるのはローカルのインスタンスのみです。分散トランザクションで、セッションまたはリモート・インスタンスが一時停止されるのは、RESUMABLEがリモート・インスタンスで有効な場合のみです。

パラレル実行と再開可能領域割当て

パラレル実行では、パラレル実行サーバー・プロセスの1つで訂正可能なエラーが発生した場合、そのサーバー・プロセスの実行が一時停止します。他のパラレル実行サーバー・プロセスでは、エラーが発生するまで、または一時停止したサーバー・プロセスに(直接または間接に)ブロックされるまで、個々のタスクの実行が継続されます。訂正可能なエラーが解決すると、一時停止したプロセスが実行を再開し、パラレル操作の実行は継続されます。一時停止したプロセスが終了した場合、パラレル操作は中断し、ユーザーに対してエラーが返されます。
異なるパラレル実行プロセスで、1つ以上の訂正可能なエラーが発生することがあります。この結果、AFTER SUSPENDトリガーが複数回、パラレルに発行される場合があります。また、あるパラレル実行サーバー・プロセスが一時停止中に他のパラレル実行サーバー・プロセスで訂正不可能なエラーが発生すると、一時停止していた文はただちに強制終了します。
パラレル実行については、すべてのパラレル実行コーディネータとサーバー・プロセスがDBA_RESUMABLEまたはUSER_RESUMABLEビューに独自のエントリを持っています。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License