50 DBMS_DBFS_HS
DBMS_DBFS_HS
パッケージにはOracle Database File System Hierarchical Storeが実装されています。このパッケージを使用すると、ユーザーはデータベース表の情報ライフサイクル管理を行う場合に、テープまたはAmazon S3 Webサービスをストレージ層として使用できるようになります。
この章のトピックは、次のとおりです:
50.1 DBMS_DBFS_HSの概要
DBMS_DBFS_HS
パッケージは、データの記憶域としてテープまたはAmazon S3 Webサービスを使用できるようにするDBMS_DBFS_CONTENT
パッケージの下にあるサービス・プロバイダです。
テープまたはAmazon S3 Webサービス上のデータはOracle Databaseの一部であり、すべての標準インタフェースを使用してアクセスできますが、データベースを介してのみアクセスが可能です。このパッケージを使用することで、ユーザーは、コンテンツの情報ライフサイクル管理を行う場合に、テープまたはAmazon S3 Webサービスをストレージ層として使用できるようになります。
パッケージは最初にすべてのコンテンツ・ファイルをレベル1キャッシュとして格納します。レベル1キャッシュがいっぱいになると、コンテンツ・ファイルはレベル2キャッシュに移動された後、バルク書込みを使用して、外部ストレージ・デバイスに移動されます。
50.3 DBMS_DBFS_HSの定数
DBMS_DBFS_HS
パッケージでは、このトピックの表に示す定数が使用されます。
表50-1 DBMS_DBFS_HSの定数: CREATESTOREプロシージャが使用
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
テープをストレージ層として使用します。 |
|
|
|
Amazon S3 Webサービスをストレージ層として使用します。 |
表50-2 DBMS_DBFS_HSの定数: SETSTOREPROPERTYプロシージャおよびGETSTOREPROPERTYファンクションが使用
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
Hierarchical Storeによってストレージ層として使用されるAWSバケットを指定します。 バケット名には次の制限があります。 1)バケット名に使用できる文字は、小文字、数字、ピリオド( 2)バケット名の先頭は数字または文字であることが必要です。 3)バケット名をIPアドレスのスタイル( 4)バケット名の長さは3から63文字の間です。 5)バケット名の末尾をダッシュにすることはできません。 6)ピリオドの隣にダッシュを使用することはできません。たとえば、 |
|
|
|
Hierarchical Storeが使用する累積キャッシュ・サイズを指定します。このプロパティはCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。値をGETSTOREPROPERTYファンクションで問い合せることはできますが、値をSETSTOREPROPERTYプロシージャで変更することはできません。 |
|
|
|
DBFS階層ストアに格納されたファイルの圧縮を有効にするために使用します。ファイルの圧縮に使用する圧縮レベルを指定します。 |
|
|
|
このプロパティが' |
|
|
|
Amazon S3ストレージ・サービスにアクセスするために必要なHTTPプロキシがある場合、そのDNS名を指定します。 |
|
|
|
ライブラリ |
|
|
|
レベル1キャッシュに割り当てられている このプロパティは、SETSTOREPROPERTYプロシージャで変更することはできませんが、値をGETSTOREPROPERTYファンクションで問い合せることはできます。値はCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。 |
|
|
|
コンテンツの格納に使用するメディア・プール番号を指定します。 |
|
|
|
圧縮されていないことを示します。 |
|
|
|
圧縮レベルを |
|
|
|
圧縮レベルを |
|
|
|
圧縮レベルを |
|
|
|
アーカイブ・ファイルの設定可能な最大サイズとして 複数のコンテンツ・ファイルが1つのアーカイブ・ファイルにまとめられ、このアーカイブ・ファイルがテープまたはAmazon S3に転送されます。これは、ストアのコンテンツ・ファイルそれぞれに対してテープまたはAmazon S3で1つのファイルを作成する操作がきわめて非効率的なためです。 このプロパティは、SETSTOREPROPERTYプロシージャで変更することはできませんが、値をGETSTOREPROPERTYファンクションで問い合せることはできます。値はCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。 |
|
|
|
テープまたはS3からデータを転送するためにSBTプロトコルで使用するサイズを指定します。このチャンクは、アーカイブ・ストアからコンテンツ・ファイルを取得するためのトランザクションごとにメモリーに割り当てられるため、このプロパティの値は低くする必要があります。通常、ほとんどのユーザーの場合はデフォルト・サイズの1MBが適しています。 |
|
|
|
Amazon S3ストレージ・サービスの |
|
|
|
Amazon S3と通信するためにRMANによって使用される共有ライブラリのパスを指定します。 |
|
|
|
このストアでバッファ・ベースの |
|
|
|
このプロパティの値は次のいずれかの形式になります。
対象となっているストアに関連付けられているAmazon S3アカウントの資格証明を含むOracle Walletを定義します。
Windowsでの
UNIXまたはLinuxでは、次の例のようになります。
パッケージがOracle Databaseサーバーで実行される場合は、データベース・サーバーからWalletにアクセスします。
|
|
|
|
テープまたはS3にデータを転送するためにSBTプロトコルで使用するサイズを指定します。 このチャンクは、アーカイブ・ストアにコンテンツ・ファイルを 通常、ほとんどのユーザーの場合はデフォルト・サイズの1MBが適しています。 |
表50-3 DBMS_DBFS_HSの定数 - REGISTERSTORECOMMANDファンクションが使用
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
|
|
|
|
リモート・デバイスからの |
表50-4 DBMS_DBFS_HSの定数: 失敗/成功/エラー
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
プロシージャまたはファンクションが正常に実行されませんでした。 |
|
|
|
プロシージャまたはファンクションが正常に完了しました。 |
|
|
|
プロシージャまたはファンクションによってエラーが戻されました。 |
50.4 DBMS_DBFS_HSの操作上のノート
DBMS_DBFS_HS
パッケージがOracle Databaseサーバーで実行される場合は、データベース・サーバーからWalletにアクセスします。
50.5 DBMS_DBFS_HSサブプログラムの要約
この表に、DBMS_DBFS_HS
パッケージのサブプログラムをリストし、説明します。
表50-5 DBMS_DBFS_HSパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
現在使用されているデータがない外部ストレージ・デバイスで作成されたファイルを削除します。 |
|
Hierarchical Storeがデータを移動できる |
|
新しい階層ストアを作成します。 |
|
RECONFIGCACHEプロシージャを使用して以前にストアと関連付けられているコマンドを削除します。 |
|
以前に作成した階層ストアを削除します。 |
|
使用済のコンテンツをレベル1キャッシュからフラッシュ(書出し)します。 |
|
ストアのプロパティの値を取得します。 |
|
ストアが使用するデータベース・キャッシュのパラメータを再構成します。 |
|
ストアに関連付けられた外部ストレージ・デバイスのメディア・マネージャに送信されるHierarchical Storeにストアのコマンドを登録します。 |
|
外部ストレージ・デバイスのメディア・マネージャで実行されるコマンドを送信します。 |
|
ストアのプロパティをデータベースに格納します。 |
|
ローカルにステージングされたデータをリモート・ストレージにプッシュします。 |
50.5.1 CLEANUPUNUSEDBACKUPFILESプロシージャ
このプロシージャは、現在使用されているデータがない外部ストレージ・デバイスで作成されたファイルを削除します。
構文
DBMS_DBFS_HS.CLEANUPUNUSEDBACKUPFILES ( store_name IN VARCHAR2);
パラメータ
表50-6 CLEANUPUNUSEDBACKUPFILESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
使用上のノート
-
外部ストレージ・デバイスからファイルを削除するアクションはロールバックできません。
-
このメソッドは定期的に実行して外部ストレージ・デバイスの領域をクリアできます。外部ストレージ・デバイスから非同期でコンテンツを削除することは、OLTPのパフォーマンスへの影響が最小限に抑えられるため有効です。DBMS_SCHEDULERパッケージを使用して、定期的なスケジューリングを実行できます。
50.5.2 CREATEBUCKETプロシージャ
このプロシージャは、Hierarchical Storeがデータを移動できるSTORETYPE_AMAZONS3
タイプのストアと関連付けられたAWSバケットを作成します。
構文
DBMS_DBFS_HS.CREATEBUCKET ( store_name IN VARCHAR2);
パラメータ
表50-7 CREATEBUCKETプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
使用上のノート
-
ストアの
PROPNAME_BUCKET
プロパティは、このサブプログラムをコールする前に設定する必要があります。 -
このプロシージャによりAmazon S3に正常にバケットが作成されると、S3にログインしてバケットのデータ(ディレクトリ、ファイルおよびその他の項目)を削除するなど、帯域外の方法を使用しなければ削除できません。
50.5.3 CREATESTOREプロシージャ
このプロシージャは、起動セッション・ユーザーの所有下にあるスキーマschema_name
(デフォルトは現行のスキーマ)のSTORE_TYPE
(STORETYPE_TAPE
またはSTORETYPE_AMAZONS3
)タイプの新しい階層ストアstore_name
を作成します。
構文
DBMS_DBFS_HS.CREATESTORE ( store_name IN VARCHAR2, store_type IN VARCHAR2, tbl_name IN VARCHAR2, tbs_name IN VARCHAR2, cache_size IN NUMBER, lob_cache_quota IN NUMBER DEFAULT NULL, optimal_tarball_size IN NUMBER DEFAULT NULL, schema_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表50-8 CREATESTOREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
|
|
ストアエントリの表。 |
|
ストアの表領域。 |
|
指定した表領域にキャッシュ・コンテンツを格納するためにストアが使用する領域容量。 |
|
レベル1キャッシュに割り当てられているcache_sizeの割合。このパラメータのデフォルト値は |
|
アーカイブ・ファイルの設定可能な最大サイズ。 複数のコンテンツ・ファイルが1つのアーカイブ・ファイルにまとめられ、このアーカイブ・ファイルがテープまたはAmazon S3に転送されます。これは、ストアのコンテンツ・ファイルそれぞれに対してテープまたはAmazon S3で1つのファイルを作成する操作がきわめて非効率的なためです。 値はデフォルトでテープは10GB、Amazon S3は100MBに設定されます。 |
|
ストアのスキーマ。 |
使用上のノート
CREATESTORE()
では、ストアの特定のプロパティがデフォルト値に設定されます。ユーザーは、メソッドSETSTOREPROPERTY()
およびRECONFIGCACHE()
を使用して、プロパティ値を適切に変更したり、ストアのその他のプロパティを設定できます。
-
ストア名は、所有者に対して一意である必要があります。同じストア名を別の所有者が所有する別のストアに使用することはできます。
-
ストアのコンテンツをデータベースに格納するために表領域を指定すると、後で変更することはできません。
-
このサブプログラムはDDL文のように実行され、実行の前後に自動
COMMIT
を実行します。 -
DBMS_DBFS_HS
を使用するストアは、単一のマウントを使用できません。これは、単一のパラメータはFALSE
であり、store_mount
パラメータはDBMS_DBFS_CONTENT
.MOUNTSTORE
プロシージャへのコールでNULL
以外の値を持つ必要があるということです。
50.5.4 DEREGSTORECOMMANDファンクション
このプロシージャは、REGISTERSTORECOMMANDプロシージャを使用して以前にストアと関連付けられているコマンドを削除します。
構文
DBMS_DBFS_HS.DEREGSTORECOMMAND ( store_name IN VARCHAR2, message IN VARCHAR2);
パラメータ
表50-9 DEREGSTORECOMMANDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
登録解除されるメッセージ。 |
使用上のノート
このサブプログラムが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。ユーザーが以前の状態をリストアするには、REGISTERSTORECOMMANDプロシージャをコールする必要があります。
50.5.5 DROPSTOREプロシージャ
このプロシージャは、名前で指定され、起動セッション・ユーザーが所有する、以前に作成された階層ストアを削除します。
構文
DBMS_DBFS_HS.DROPSTORE ( store_name IN VARCHAR2, opt_flags IN INTEGER DEFAULT 0);
パラメータ
表50-10 DROPSTOREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
起動セッション・ユーザーが所有するストアの名前。 |
|
ユーザーはオプションのフラグを指定できます。 |
使用上のノート
-
実行前後に自動コミットする点で、このプロシージャはDDLのように実行します。
-
CLEANUPBACKUPFILES
がプロシージャの間無効にされている場合、ユーザーは使用されていないバックアップ・ファイルをクリーンアップするために帯域外の方法を使用する必要があります。削除されたストアに階層ストアを通じてさらにCLEANUPBACKFILES
を起動することはできません。 -
このサブプログラムは、ストアを
DBMS_DBFS_CONTENT
パッケージから登録解除します。指定したストアのすべてのファイルは、ストア(テープまたはAmazon S3 Webサービス)から削除されます。データベースでストアのエントリを保持しているデータベース表もこのサブプログラムにより削除されます。
50.5.6 FLUSHCACHEプロシージャ
このプロシージャはレベル1キャッシュ(ロック可能)から使用済コンテンツをレベル2キャッシュにフラッシュ・アウトし、レベル1キャッシュの領域を解放します。
構文
DBMS_DBFS_HS.FLUSHCACHE ( store_name IN VARCHAR2);
パラメータ
表50-11 FLUSHCACHEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
50.5.7 GETSTOREPROPERTYファンクション
このファンクションは、プロパティの値を取得します。
構文
DBMS_DBFS_HS.GETSTOREPROPERTY ( store_name IN VARCHAR2, property_name IN VARCHAR2, noexcp IN BOOLEAN DEFAULT FALSE) RETURN VARCHAR2;
パラメータ
表50-12 GETSTOREPROPERTYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
プロパティの名前。 |
|
|
戻り値
プロパティの値。
使用上のノート
指定したストアは、すでに作成されている必要があります。
50.5.8 RECONFIGCACHEプロシージャ
このプロシージャは、ストアが使用しているデータベース・キャッシュのパラメータを再構成します。
構文
DBMS_DBFS_HS.RECONFIGCACHE ( store_name IN VARCHAR2, cache_size IN NUMBER DEFAULT NULL, lobcache_quota IN NUMBER DEFAULT NULL, optimal_tarball_size IN NUMBER DEFAULT NULL);
パラメータ
表50-13 RECONFIGCACHEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
Hierarchical Storeが使用する累積キャッシュ・サイズ。 |
|
レベル1キャッシュに割り当てられているキャッシュ・サイズの割合。 |
|
アーカイブ・ファイルの設定可能な最大サイズ。ストアのコンテンツ・ファイルそれぞれに対してテープまたはAmazon S3で1つのファイルを作成する操作はきわめて非効率的なため、テープまたはAmazon S3に転送するために複数のコンテンツ・ファイルが1つのアーカイブ・ファイルにまとめられます。 |
使用上のノート
-
指定したストアは、再構成の前にすでに作成されている必要があります。
-
Hierarchical Storeはレベル1キャッシュとレベル2キャッシュを使用します。レベル1キャッシュがほとんどのワーキング・セットを包含し、レベル2キャッシュはバックエンド・デバイスにバルク書込みを実行するために使用されます。
-
最後の3つのパラメータのいずれかが
NULL
の場合、ストア作成時に指定された値が使用されます。CREATESTOREプロシージャに対してコールが発行されたときにパラメータがNULL
だった場合、DBMS_DBFS_HS
パッケージがデフォルト値を割り当てます。レベル2キャッシュには最低1 TAR書庫サイズが必要ですが、
DBMS_DBFS_HS
パッケージは同時実行を促進するために1 TAR書庫分を超えるサイズをレベル2キャッシュにオプティミスティックに割り当てようとします。累積キャッシュ・サイズとLOBキャッシュ割当ての値が2つのキャッシュへの領域の割当てを決定します。値が指定されていない場合、
INSUFFICIENT_CACHE
例外が発生する可能性があります。この場合、作業ストアを持つためにキャッシュ・パラメータを修正することをお薦めします。 -
このサブプログラムが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。この場合、ユーザーは新しいまたは変更したパラメータで再度
RECONFIGCACHE
をコールする必要があります。
50.5.9 REGISTERSTORECOMMANDプロシージャ
このプロシージャは、ストア用のコマンドをHierarchical Storeに登録します。これらのコマンドは、ストアに関連付けられた外部ストレージ・デバイスのメディア・マネージャに送信されます。
構文
DBMS_DBFS_HS.REGISTERSTORECOMMAND ( store_name IN VARCHAR2, message IN VARCHAR2, flags IN NUMBER);
パラメータ
表50-14 REGISTERSTORECOMMANDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
外部ストアのメディア・マネージャに送信されるメッセージ。 |
|
有効な値は次のとおりです。
|
使用上のノート
-
これらのコマンドは、コンテンツの次の読取りまたは書込みの前に送信されます。Hierarchical Storeがストレージ・デバイスに(または、ストレージ・デバイスから)データをプッシュ(または、取得)する場合、Hierarchical Storeが(デバイスと通信するために)セッションを開始します。セッション開始後、データの書込み(または取得)を行う前に、関連するデバイスにすべての登録済コマンドを送信します。
-
このメソッドが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。以前の状態をリストアするには、ユーザーはDEREGSTORECOMMANDファンクションをコールする必要があります。
50.5.10 SENDCOMMANDプロシージャ
このプロシージャは、外部ストレージ・デバイスのメディア・マネージャで実行されるコマンドを送信します。
構文
DBMS_DBFS_HS.SENDCOMMAND ( store_name IN VARCHAR2, message IN VARCHAR2);
パラメータ
表50-15 SENDCOMMANDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
実行されるメッセージ文字列。 |
50.5.11 SETSTOREPROPERTYプロシージャ
このプロシージャは、ストアのプロパティを名前/値ペアとしてデータベースに格納します。
構文
DBMS_DBFS_HS.SETSTOREPROPERTY ( store_name IN VARCHAR2, property_name IN VARCHAR2, property_value IN VARCHAR2);
パラメータ
表50-16 SETSTOREPROPERTYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
テープ・デバイスを使用するストアの場合、ユーザーが設定する必要がある3つのプロパティ、およびデフォルト値を持つ4つのプロパティがあります。 |
|
テープ・デバイスを使用するストア。 次のプロパティの値は、ユーザーが設定する必要があります。
次のプロパティには、ストアの作成時に割り当てられるデフォルト値があり、チューニングすることで十分な効果が得られます。
|
|
次のプロパティには割り当てられた値があることが必須であり、デフォルト値が指定されています。
|
|
次のプロパティはオプションです。
|
使用上のノート
-
指定したストアは、すでに作成されている必要があります。
-
このサブプログラムが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。
-
このサブプログラムを使用して、同じプロパティを同じ値または異なる値に複数回設定できます。
-
PROPNAME_ENABLECLEANUPONDELETE
動作については、DBMS_DBFS_HS
により各ストアに対してジョブが作成され、未使用のファイルが外部ストレージから削除されます。デフォルトでは、ジョブはSTORETYPE_AMAZONS3
では使用可能、STORETYPE_TAPE
では使用不可に設定されます。ENABLECLEANUPONDELETE
プロパティがTRUE
に設定されると、ジョブは使用可能、FALSE
に設定されると使用不可になります。ジョブが使用可能な場合、デフォルトではジョブは1時間間隔で実行されます。DBMS_SCHEDULER
パッケージを使用して、スケジュールを変更できます。ジョブの名前は、prop_name
=
'DELJOB_NAME
'でUSER_DBFS_HS_FIXED_PROPERTIES
を問い合せることで取得できます。
例
形式
Windowsでのwallet_path
の形式には、次のような例があります。
file:c:\WINNT\Profiles\<username>\WALLETS
UNIXまたはLinuxでのwallet_path
の形式には、次のような例があります。
file:/home/username/wallets
50.5.12 STOREPUSHプロシージャ
このプロシージャは、ローカルにステージングされたデータをリモート・ストレージにプッシュします。
構文
DBMS_DBFS_HS.STOREPUSH ( store_name IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
パラメータ
表50-17 STOREPUSHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
コンテンツをクライアントがローカル・キャッシュから外部ストアに書き込むストアの名前。 |
|
ストア内の非マウント修飾(マウント・ポイントがない)パス。デフォルトでは、値は |
使用上のノート
-
Hierarchical Storeは、コンテンツ・ファイルをデータベース表にローカルにキャッシュします。外部ストレージ・デバイスに効率的に書き込むために十分なコンテンツがキャッシュに蓄積された(またはキャッシュが完全にいっぱいになった)場合、Hierarchical Storeはローカル・コンテンツからTAR書庫を作成し、ファイルとして外部デバイスに書き込みます。Hierarchical Storeによって作成されるTAR書庫のサイズは、ストア・プロパティ
PROPNAME_OPTTARBALLSIZE
によって制御されます。 -
キャッシュの空き領域容量が、コンテンツ・ファイルのキャッシングにより使用領域が
cache_size
より上にプッシュされるようになると、Hierarchical Storeが内部的にSTOREPUSH
をコールします。STOREPUSH
プロシージャ
は、キャッシュにある使用済のまたは変更されたコンテンツ・ファイルからTAR書庫を作成し、外部デバイスに書き出します。他のセッションにロックされているファイルがある場合もあるため、STOREPUSH
コールによってすべての使用済コンテンツがローカル・キャッシュから外部ストレージに書き込まれることは保証されません。 -
STOREPUSH
には、自動的に操作を再開できる機能が組み込まれています。いくつかのTAR書庫を外部デバイスに転送した後に、STOREPUSH
コールが(ネットワークの停止などにより)中断された場合、停止の終了後に再起動でき、中断されたポイントからデータの転送を再開します。つまり、停止が終了する前に処理は完了しています。STOREPUSH
は、安全に再起動でき、停止が発生しなかったかのように影響されません。 -
このメソッドが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。
-
デフォルトでは、
path
がNULL
の場合、ストア内のすべてのファイルがSTOREPUSH
の候補です。path
に有効な入力値がある場合は、指定したパスのネームスペース下にあるすべてのファイルがローカル・キャッシュから外部ストアに書き込まれます。指定したパスが既存のファイルである場合、再度リモート・ストアにプッシュされます。