160 DBMS_STORAGE_MAP

DBMS_STORAGE_MAPパッケージを使用すると、Oracleバックグラウンド・プロセスのFMONと通信して、マッピング・ビューを移入するマッピング操作を起動できます。FMONは、オペレーティング・システムやストレージ・システムのベンダーが供給するマッピング・ライブラリと通信します。

この章のトピックは、次のとおりです:

160.1 DBMS_STORAGE_MAPの概要

次に、DBMS_STORAGE_MAP APIを理解する上で役に立つ用語と解説を示します。

  • マッピング・ライブラリ

    マッピング・ライブラリは、I/O処理スタック要素のコンポーネントのマッピングに役立ちます。I/O処理コンポーネントの例には、ファイル、論理ボリュームおよびストレージ・アレイI/Oターゲットなどがあります。マッピング・ライブラリは、filemap.oraで識別されます。

  • マッピング・ファイル

    マッピング・ファイルは、ファイルを記述するマッピング構造です。ファイル・サイズ、ファイルを構成するエクステント数、ファイル・タイプなどの一連の属性を提供します。

  • マッピング要素とマッピング副要素

    マッピング要素は、I/Oスタック内の記憶域コンポーネントを示す抽象的なマッピング構造です。要素の例には、その構造がマッピングの基本要素である、ミラー化、ストライプ化、パーティション、RAID5、連結要素およびディスクなどがあります。マッピング副要素は、I/Oマッピング・スタック内の1つの要素と次の要素との間のリンクを示します。

  • マッピング・ファイル・エクステント

    マッピング・ファイル・エクステントは、1つの要素に常駐する連続的なブロックの集合を示します。これには、デバイス・オフセット、エクステント・サイズ、ファイル・オフセット、タイプ(データまたはパリティ)およびエクステントが常駐する要素の名前が含まれます。RAWデバイスまたはRAWボリュームの場合、ファイルは1つのファイル・エクステント・コンポーネントのみで構成されます。マッピング・ファイル・エクステントは、Oracleエクステントとは異なります。

    参照:

160.2 DBMS_STORAGE_MAPの使用上の注意

構成IDがサポートされている場合は、情報のマッピングがすでに存在するときにMAP_ELEMENTMAP_FILEおよびMAP_ALLファンクションを起動すると、マッピングがリフレッシュされます。構成情報IDがサポートされていない場合は、これらのファンクションの再起動によって、マッピングが再作成されます。

参照:

構成ID、変更される要素またはファイルの属性については、『Oracle Database管理者ガイド』を参照してください。

160.3 DBMS_STORAGE_MAPサブプログラムの要約

この表は、DBMS_STORAGE_MAPサブプログラムを示し、簡単に説明しています。

表160-1 DBMS_STORAGE_MAPパッケージのサブプログラム

サブプログラム 説明

DROP_ALLファンクション

インスタンスの共有メモリー内にあるマッピング情報をすべて削除します。

DROP_ELEMENTファンクション

elemnameによって定義された要素のマッピング情報を削除します。

DROP_FILEファンクション

filenameによって定義されたマッピング情報を削除します。

LOCK_MAPプロシージャ

インスタンスの共有メモリー内にあるマッピング情報をロックします。

MAP_ALLファンクション

すべてのタイプのOracleファイルに関する完全なマッピング情報を作成します(アーカイブ・ログを除く)。これには、すべての有向非巡回グラフ(DAG)要素が含まれます。

MAP_ELEMENTファンクション

elemnameで識別される要素のマッピング情報を作成します。

MAP_FILEファンクション

filenameで識別されるファイルのマッピング情報を作成します。

MAP_OBJECTファンクション

オブジェクト名、所有者およびタイプで識別されるOracleオブジェクトのマッピング情報を作成します。

RESTOREファンクション

データ・ディクショナリからインスタンスの共有メモリーに、完全なマッピング情報をロードします。

SAVEファンクション

データ・ディクショナリへの完全なマッピングの再生成に必要な情報を保存します。

UNLOCK_MAPプロシージャ

インスタンスの共有メモリー内にあるマッピング情報のロックを解除します。

160.3.1 DROP_ALLファンクション

このファンクションは、インスタンスの共有メモリー内にあるマッピング情報をすべて削除します。

構文

DBMS_STORAGE_MAP.DROP_ALL(
      dictionary_update IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-2 DROP_ALLファンクションのパラメータ

パラメータ 説明

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

160.3.2 DROP_ELEMENTファンクション

このファンクションは、elemnameによって定義された要素のマッピング情報を削除します。

構文

DBMS_STORAGE_MAP.DROP_ELEMENT(
   elemname          IN VARCHAR2,
   cascade           IN BOOLEAN,
   dictionary_update IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-3 DROP_ELEMENTファンクションのパラメータ

パラメータ 説明

elemname

マッピング情報を削除する要素。

cascade

TRUEの場合は、elemnameによって定義されたDAGの全要素に対して、DROP_ELEMENTが必要に応じて再帰的に起動されます。

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

160.3.3 DROP_FILEファンクション

このファンクションは、filenameによって定義されたマッピング情報を削除します。

構文

DBMS_STORAGE_MAP.DROP_FILE(
   filename          IN VARCHAR2,
   cascade           IN BOOLEAN,
   dictionary_update IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-4 DROP_FILEファンクションのパラメータ

パラメータ 説明

filename

マッピング情報を削除するファイル。

cascade

TRUEの場合は、ファイルが常駐している要素のマッピングDAGも、必要に応じて削除されます。

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

160.3.4 LOCK_MAPプロシージャ

このプロシージャは、インスタンスの共有メモリー内にあるマッピング情報をロックします。

V$MAP表の一貫したスナップショットが必要な場合に便利です。マッピング情報をロックしないと、V$MAP_ELEMENTV$MAP_SUBELEMENTなどの一貫性が失われる可能性があります。

構文

DBMS_STORAGE_MAP.LOCK_MAP;

160.3.5 MAP_ALLファンクション

このファンクションは、すべてのタイプのOracleファイルに関する完全なマッピング情報を作成し(アーカイブ・ログを除く)、これには、すべての有向非巡回グラフ(DAG)要素が含まれます。これは、すべてのマッピング・ライブラリを明示的に同期するため、最新のマッピング情報を取得します。

構文

DBMS_STORAGE_MAP.MAP_ALL(
   max_num_fileext   IN NUMBER DEFAULT 100,
   dictionary_update IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-5 MAP_ALLファンクションのパラメータ

パラメータ 説明

max_num_fileext

マップするファイル・エクステントの最大数を定義します。この指定によって、ファイル・エクステントのマッピング時に使用するメモリー量が制限されます。デフォルト値は、100で、max_num_fileextentは、オーバーロードされた引数です。

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

使用上の注意

MAP_ALLは、コールド・スタートの際に明示的にコールする必要があります。

160.3.6 MAP_ELEMENTファンクション

このファンクションは、filenameで識別される要素のマッピング情報を作成します。明示的な同期化を必要とするライブラリが、マップする要素またはそのI/Oスタック内のいずれか1つの要素を所有している場合(cascadeTRUEの場合)は、最新のマッピング情報を取得できない可能性があります。

構文

DBMS_STORAGE_MAP.MAP_ELEMENT(
   elemname          IN VARCHAR2,
   cascade           IN BOOLEAN,
   dictionary_update IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-6 MAP_ELEMENTファンクションのパラメータ

パラメータ 説明

elemname

マッピング情報を作成する要素。

cascade

TRUEの場合は、elemnameのI/OスタックDAG内の全要素がマップされます。

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

160.3.7 MAP_FILEファンクション

このファンクションは、filenameで識別されるファイルのマッピング情報を作成します。このファンクションは、ある特定のファイルのマッピングが変更された場合に使用します。Oracle Databaseサーバーでは完全なマッピングを再作成する必要はありません。

構文

DBMS_STORAGE_MAP.MAP_FILE(
   filename           IN VARCHAR2, 
   filetype           IN VARCHAR2,
   cascade            IN BOOLEAN,
   max_num_fileextent IN NUMBER DEFAULT 100,
   dictionary_update  IN BOOLEAN DEFAULT TRUE);

パラメータ

表160-7 MAP_FILEファンクションのパラメータ

パラメータ 説明

filename

マッピング情報を作成するファイル。

filetype

マップするファイルのタイプ。"DATAFILE"、"SPFILE"、"TEMPFILE"、"CONTROLFILE"、"LOGFILE"または"ARCHIVEFILE"を指定できます。

cascade

記憶域の再構成が発生する場合にのみ、TRUEを指定してください。ファイル・サイズの変更(ALTER SYSTEMコマンドまたは拡張ファイルのDML操作のいずれかを使用した)など、他のすべてのインスタンスの場合は、マッピング変更がファイル・エクステントのみに制限されるため、cascadeFALSEに設定できます。

TRUEの場合は、ファイルが常駐している要素に対してもマッピングDAGが作成されます。

max_num_fileextent

マップするファイル・エクステントの最大数を定義します。この指定によって、ファイル・エクステントのマッピング時に使用するメモリー量が制限されます。デフォルト値は、100で、max_num_fileextentは、オーバーロードされた引数です。

dictionary_update

TRUEの場合、データ・ディクショナリ内のマッピング情報が更新され、変更が反映されます。デフォルト値はTRUEで、dictionary_updateは、オーバーロードされた引数です。

使用上の注意

このファンクションは、明示的な同期化を必要とするライブラリが、マップするファイルまたはそのI/Oスタック内のいずれか1つの要素を所有している場合(cascadeTRUEの場合)は、最新のマッピング情報を取得できない可能性があります。

160.3.8 MAP_OBJECTファンクション

このファンクションは、オブジェクト名、所有者およびタイプで識別されるOracleオブジェクトのマッピング情報を作成します。

構文

DBMS_STORAGE_MAP.MAP_OBJECT(
   objname  IN  VARCHAR2,
   owner    IN  VARCHAR2,
   objtype  IN  VARCHAR2);

パラメータ

表160-8 MAP_OBJECTファンクションのパラメータ

パラメータ 説明

objname

オブジェクトの名前。

owner

オブジェクトの所有者。

objtype

オブジェクトのタイプ。

160.3.9 RESTOREファンクション

このファンクションは、データ・ディクショナリからインスタンスの共有メモリーに、完全なマッピング情報をロードします。

RESTOREを起動できるのは、SAVE操作を実行した後のみです。RESTOREは、ウォーム・スタートの際に明示的にコールする必要があります。

構文

DBMS_STORAGE_MAP.RESTORE;

160.3.10 SAVEファンクション

このファンクションは、データ・ディクショナリへの完全なマッピングの再生成に必要な情報を保存します。

構文

DBMS_STORAGE_MAP.SAVE;

160.3.11 UNLOCK_MAPプロシージャ

このプロシージャは、インスタンスの共有メモリー内にあるマッピング情報のロックを解除します。

構文

DBMS_STORAGE_MAP.UNLOCK_MAP;