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.2 DBMS_DBFS_HSのセキュリティ・モデル

DBMS_DBFS_HSパッケージは、実行者の権限で実行されます。

50.3 DBMS_DBFS_HSの定数

DBMS_DBFS_HSパッケージでは、このトピックの表に示す定数が使用されます。

表50-1 DBMS_DBFS_HSの定数: CREATESTOREプロシージャが使用

定数 タイプ 説明

STORETYPE_TAPE

VARCHAR2(50)

'HS_TAPE'

テープをストレージ層として使用します。

STORETYPE_AMAZONS3

VARCHAR2(50)

'HS_S3'

Amazon S3 Webサービスをストレージ層として使用します。

表50-2 DBMS_DBFS_HSの定数: SETSTOREPROPERTYプロシージャおよびGETSTOREPROPERTYファンクションが使用

定数 タイプ 説明

PROPNAME_BUCKET

VARCHAR2(50)

'BUCKET'

Hierarchical Storeによってストレージ層として使用されるAWSバケットを指定します。

バケット名には次の制限があります。

1)バケット名に使用できる文字は、小文字、数字、ピリオド(.)およびダッシュ(-)のみです。アンダースコア(_)は無効であることに注意してください。

2)バケット名の先頭は数字または文字であることが必要です。

3)バケット名をIPアドレスのスタイル(192.168.5.4)にすることはできません。

4)バケット名の長さは3から63文字の間です。

5)バケット名の末尾をダッシュにすることはできません。

6)ピリオドの隣にダッシュを使用することはできません。たとえば、my-.bucket.comは無効です。

PROPNAME_CACHESIZE

VARCHAR2(50)

'CACHE_SIZE'

Hierarchical Storeが使用する累積キャッシュ・サイズを指定します。このプロパティはCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。値をGETSTOREPROPERTYファンクションで問い合せることはできますが、値をSETSTOREPROPERTYプロシージャで変更することはできません。

PROPNAME_COMPRESSLEVEL

VARCHAR2(50)

'COMPRESSION_LEVEL'

DBFS階層ストアに格納されたファイルの圧縮を有効にするために使用します。ファイルの圧縮に使用する圧縮レベルを指定します。

PROPNAME_ENABLECLEANUPONDELETE

VARCHAR2(50)

'ENABLE_CLEANUP_ON_DELETE'

このプロパティが'TRUE'に設定されている場合、DBMS_DBFS_HSストアにある DBMS_DBFS_CONTENT インタフェースでユーザーがDELETEFILEプロシージャを起動するたびに、DBMS_DBFS_HSは、ユーザー・ファイルを含む外部ストレージにあるファイルを削除します。ただし、ファイルに他の有効なデータが含まれていないことが条件です。デフォルトでは、プロパティはSTORETYPE_AMAZONS3に対して'TRUE'に、STORETYPE_TAPEに対して'FALSE'に設定されています。

PROPNAME_HTTPPROXY

VARCHAR2(50)

'HTTP_PROXY'

Amazon S3ストレージ・サービスにアクセスするために必要なHTTPプロキシがある場合、そのDNS名を指定します。

PROPNAME_LICENSEID

VARCHAR2(50)

'LICENSE_ID'

ライブラリlibosbws11.soと関連付けられているライセンスIDを指定します。

PROPNAME_LOBCACHE_QUOTA

VARCHAR2(50)

'LOBCACHE_QUOTA'

レベル1キャッシュに割り当てられているcache_sizeの割合を指定します。このパラメータのデフォルト値はNULLで、cache_sizeの0.8(= 80%)がレベル1キャッシュに使用されることを意味します。

このプロパティは、SETSTOREPROPERTYプロシージャで変更することはできませんが、値をGETSTOREPROPERTYファンクションで問い合せることはできます。値はCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。

PROPNAME_MEDIAPOOL

VARCHAR2(50)

'MEDIA_POOL'

コンテンツの格納に使用するメディア・プール番号を指定します。

PROPVAL_COMPLVL_NONE

VARCHAR2(50)

'NONE'

圧縮されていないことを示します。

PROPVAL_COMPLVL_LOW

VARCHAR2(50)

'LOW'

圧縮レベルをLOWに設定するために使用します。適切な圧縮率と同時に最適なパフォーマンスを得るには、このレベルを指定します。

PROPVAL_COMPLVL_MEDIUM

VARCHAR2(50)

'MEDIUM'

圧縮レベルをMEDIUMに設定するために使用します。この圧縮レベルでは、LOWより優れた圧縮率が得られますが、圧縮に要する時間が圧縮レベルLOWより長くなります。

PROPVAL_COMPLVL_HIGH

VARCHAR2(50)

'HIGH'

圧縮レベルをHIGHに設定するために使用します。この圧縮レベルでは、最も優れた圧縮率が得られますが、通常圧縮に要する時間が3つの圧縮レベルの中で最も長くなります。

PROPNAME_OPTTARBALLSIZE

VARCHAR2(50)

'OPTIMAL_TARBALL_SIZE'

アーカイブ・ファイルの設定可能な最大サイズとしてoptimal_tarball_sizeを指定します。

複数のコンテンツ・ファイルが1つのアーカイブ・ファイルにまとめられ、このアーカイブ・ファイルがテープまたはAmazon S3に転送されます。これは、ストアのコンテンツ・ファイルそれぞれに対してテープまたはAmazon S3で1つのファイルを作成する操作がきわめて非効率的なためです。

このプロパティは、SETSTOREPROPERTYプロシージャで変更することはできませんが、値をGETSTOREPROPERTYファンクションで問い合せることはできます。値はCREATESTOREプロシージャで設定し、RECONFIGCACHEプロシージャで変更できます。

PROPNAME_READCHUNKSIZE

VARCHAR2(50)

'READ_CHUNK_SIZE'

テープまたはS3からデータを転送するためにSBTプロトコルで使用するサイズを指定します。このチャンクは、アーカイブ・ストアからコンテンツ・ファイルを取得するためのトランザクションごとにメモリーに割り当てられるため、このプロパティの値は低くする必要があります。通常、ほとんどのユーザーの場合はデフォルト・サイズの1MBが適しています。

PROPNAME_S3HOST

VARCHAR2(50)

'S3_HOST'

Amazon S3ストレージ・サービスのHOST名を指定します。s3.amazonaws.comにする必要があります。

PROPNAME_SBT_LIBRARY

VARCHAR2(50)

'SBT_LIBRARY'

Amazon S3と通信するためにRMANによって使用される共有ライブラリのパスを指定します。libosbws11.soという名前が付けられ、rdbms/libディレクトリで使用できます。

PROPNAME_STREAMABLE

VARCHAR2(50)

'STREAMABLE'

このストアでバッファ・ベースのPUTまたはGETを実行する必要があるかどうかを示します。有効な値はTRUEおよびFALSEです。このプロパティのデフォルト値はTRUEです。

PROPNAME_WALLET

VARCHAR2(50)

'WALLET'

このプロパティの値は次のいずれかの形式になります。

LOCATION=file:filename CREDENTIAL_ALIAS=access/secret_alias

PROXY_AUTH_ALIAS=proxyusername/password alias

対象となっているストアに関連付けられているAmazon S3アカウントの資格証明を含むOracle Walletを定義します。

LOCATION: Oracle Walletを含むディレクトリ・パス。形式はfile:directory-pathです

Windowsでのwallet_pathの形式には、次のような例があります。

file:c:\WINNT\Profiles\username\WALLETS

UNIXまたはLinuxでは、次の例のようになります。

file:/home/username/wallets

パッケージがOracle Databaseサーバーで実行される場合は、データベース・サーバーからWalletにアクセスします。

PASSWORD: Walletのパスワードを定義します。Walletでauto-loginが有効な場合(この設定はOWMユーティリティで変更可能)、このパラメータを指定する必要はありません。デフォルトでは、mkstoreユーティリティでauto-loginを有効にします。

CREDENTIAL_ALIAS: ACCESS_KEYおよびSECRET_KEYの資格証明の別名を定義します。

PROPNAME_WRITECHUNKSIZ

VARCHAR2(50)

'WRITE_CHUNK_SIZE'

テープまたはS3にデータを転送するためにSBTプロトコルで使用するサイズを指定します。

このチャンクは、アーカイブ・ストアにコンテンツ・ファイルをPUTするためのトランザクションごとにメモリに割り当てられるため、値を低くする必要があります。

通常、ほとんどのユーザーの場合はデフォルト・サイズの1MBが適しています。

表50-3 DBMS_DBFS_HSの定数 - REGISTERSTORECOMMANDファンクションが使用

定数 タイプ 説明

BEFORE_PUT

NUMBER

'1'

SECUREFILEをリモート・ストアに書き込む前に、指定された操作を実行する必要があります。

BEFORE_GET

NUMBER

'2'

リモート・デバイスからのSECUREFILEの読取りなどの取得操作を実行する前に、指定された操作を実行する必要があります。

表50-4 DBMS_DBFS_HSの定数: 失敗/成功/エラー

定数 タイプ 説明

FAIL

NUMBER

'0'

プロシージャまたはファンクションが正常に実行されませんでした。

SUCCESS

NUMBER

'1'

プロシージャまたはファンクションが正常に完了しました。

ERROR

NUMBER

'2'

プロシージャまたはファンクションによってエラーが戻されました。

50.4 DBMS_DBFS_HSの操作上のノート

DBMS_DBFS_HSパッケージがOracle Databaseサーバーで実行される場合は、データベース・サーバーからWalletにアクセスします。

50.5 DBMS_DBFS_HSサブプログラムの要約

この表に、DBMS_DBFS_HSパッケージのサブプログラムをリストし、説明します。

表50-5 DBMS_DBFS_HSパッケージのサブプログラム

サブプログラム 説明

CLEANUPUNUSEDBACKUPFILESプロシージャ

現在使用されているデータがない外部ストレージ・デバイスで作成されたファイルを削除します。

CREATEBUCKETプロシージャ

Hierarchical Storeがデータを移動できるSTORETYPE_AMAZONS3タイプのストアと関連付けられたAWSバケットを作成します。

CREATESTOREプロシージャ

新しい階層ストアを作成します。

DEREGSTORECOMMANDファンクション

RECONFIGCACHEプロシージャを使用して以前にストアと関連付けられているコマンドを削除します。

DROPSTOREプロシージャ

以前に作成した階層ストアを削除します。

FLUSHCACHEプロシージャ

使用済のコンテンツをレベル1キャッシュからフラッシュ(書出し)します。

GETSTOREPROPERTYファンクション

ストアのプロパティの値を取得します。

RECONFIGCACHEプロシージャ

ストアが使用するデータベース・キャッシュのパラメータを再構成します。

REGISTERSTORECOMMANDプロシージャ

ストアに関連付けられた外部ストレージ・デバイスのメディア・マネージャに送信されるHierarchical Storeにストアのコマンドを登録します。

SENDCOMMANDプロシージャ

外部ストレージ・デバイスのメディア・マネージャで実行されるコマンドを送信します。

SETSTOREPROPERTYプロシージャ

ストアのプロパティをデータベースに格納します。

STOREPUSHプロシージャ

ローカルにステージングされたデータをリモート・ストレージにプッシュします。

50.5.1 CLEANUPUNUSEDBACKUPFILESプロシージャ

このプロシージャは、現在使用されているデータがない外部ストレージ・デバイスで作成されたファイルを削除します。

構文

DBMS_DBFS_HS.CLEANUPUNUSEDBACKUPFILES (
   store_name     IN     VARCHAR2);

パラメータ

表50-6 CLEANUPUNUSEDBACKUPFILESプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

使用上のノート

  • 外部ストレージ・デバイスからファイルを削除するアクションはロールバックできません。

  • このメソッドは定期的に実行して外部ストレージ・デバイスの領域をクリアできます。外部ストレージ・デバイスから非同期でコンテンツを削除することは、OLTPのパフォーマンスへの影響が最小限に抑えられるため有効です。DBMS_SCHEDULERパッケージを使用して、定期的なスケジューリングを実行できます。

50.5.2 CREATEBUCKETプロシージャ

このプロシージャは、Hierarchical Storeがデータを移動できるSTORETYPE_AMAZONS3タイプのストアと関連付けられたAWSバケットを作成します。

構文

DBMS_DBFS_HS.CREATEBUCKET  (
   store_name    IN     VARCHAR2);

パラメータ

表50-7 CREATEBUCKETプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

使用上のノート

  • ストアの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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

store_type

STORETYPE_TAPEまたはSTORETYPE_AMAZONS3

tbl_name

ストアエントリの表。

tbs_name

ストアの表領域。

cache_size

指定した表領域にキャッシュ・コンテンツを格納するためにストアが使用する領域容量。

lob_cache_quota

レベル1キャッシュに割り当てられているcache_sizeの割合。このパラメータのデフォルト値はNULLで、cache_sizeの0.8(= 80%)がレベル1キャッシュに使用されることを意味します。

optimal_tarball_size

アーカイブ・ファイルの設定可能な最大サイズ。

複数のコンテンツ・ファイルが1つのアーカイブ・ファイルにまとめられ、このアーカイブ・ファイルがテープまたはAmazon S3に転送されます。これは、ストアのコンテンツ・ファイルそれぞれに対してテープまたはAmazon S3で1つのファイルを作成する操作がきわめて非効率的なためです。

値はデフォルトでテープは10GB、Amazon S3は100MBに設定されます。

schema_name

ストアのスキーマ。

使用上のノート

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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

message

登録解除されるメッセージ。

使用上のノート

このサブプログラムが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。ユーザーが以前の状態をリストアするには、REGISTERSTORECOMMANDプロシージャをコールする必要があります。

50.5.5 DROPSTOREプロシージャ

このプロシージャは、名前で指定され、起動セッション・ユーザーが所有する、以前に作成された階層ストアを削除します。

構文

DBMS_DBFS_HS.DROPSTORE  (
   store_name   IN     VARCHAR2,
   opt_flags    IN     INTEGER DEFAULT 0);

パラメータ

表50-10 DROPSTOREプロシージャのパラメータ

パラメータ 説明

store_name

起動セッション・ユーザーが所有するストアの名前。

opt_flags

ユーザーはオプションのフラグを指定できます。DISABLE_CLEANUPBACKUPFILESが、オプションのフラグの1つとして指定された場合、CLEANUPUNUSEDBACKUPFILES Procedureへのコールは発行されません。デフォルトでは、このフラグが設定されていないとき、プロシージャは使用されていないすべてのバックアップ・ファイルを暗黙的にクリーンアップします。

使用上のノート

  • 実行前後に自動コミットする点で、このプロシージャは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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

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ファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

property_name

プロパティの名前。

noexcp

FALSEに設定すると、プロパティがデータベースに存在しない場合、例外が発生します。noexcpTRUEに設定すると、プロパティが存在しない場合、NULLを戻します。

戻り値

プロパティの値。

使用上のノート

指定したストアは、すでに作成されている必要があります。

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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

cache_size

Hierarchical Storeが使用する累積キャッシュ・サイズ。

lobcache_quota

レベル1キャッシュに割り当てられているキャッシュ・サイズの割合。

optimal_tarball_size

アーカイブ・ファイルの設定可能な最大サイズ。ストアのコンテンツ・ファイルそれぞれに対してテープまたは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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

message

外部ストアのメディア・マネージャに送信されるメッセージ。

flags

有効な値は次のとおりです。

  • BEFORE_PUT CONSTANT NUMBER := 1;

  • BEFORE_GET CONSTANT NUMBER := 2;

使用上のノート

  • これらのコマンドは、コンテンツの次の読取りまたは書込みの前に送信されます。Hierarchical Storeがストレージ・デバイスに(または、ストレージ・デバイスから)データをプッシュ(または、取得)する場合、Hierarchical Storeが(デバイスと通信するために)セッションを開始します。セッション開始後、データの書込み(または取得)を行う前に、関連するデバイスにすべての登録済コマンドを送信します。

  • このメソッドが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。以前の状態をリストアするには、ユーザーはDEREGSTORECOMMANDファンクションをコールする必要があります。

50.5.10 SENDCOMMANDプロシージャ

このプロシージャは、外部ストレージ・デバイスのメディア・マネージャで実行されるコマンドを送信します。

構文

DBMS_DBFS_HS.SENDCOMMAND (
   store_name    IN       VARCHAR2,
   message       IN       VARCHAR2);

パラメータ

表50-15 SENDCOMMANDプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

message

実行されるメッセージ文字列。

50.5.11 SETSTOREPROPERTYプロシージャ

このプロシージャは、ストアのプロパティを名前/値ペアとしてデータベースに格納します。

構文

DBMS_DBFS_HS.SETSTOREPROPERTY  (
   store_name      IN     VARCHAR2,
   property_name   IN     VARCHAR2,
   property_value  IN     VARCHAR2);

パラメータ

表50-16 SETSTOREPROPERTYプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

property_name

テープ・デバイスを使用するストアの場合、ユーザーが設定する必要がある3つのプロパティ、およびデフォルト値を持つ4つのプロパティがあります。STORETYPE_AMAZONS3タイプのストアには、デフォルト値を含むプロパティがあります。両方のタイプのストアに対する様々なオプションは、property_valueで詳細に説明しています。

property_value

テープ・デバイスを使用するストア。

次のプロパティの値は、ユーザーが設定する必要があります。

  • PROPNAME_SBTLIBRARY: 外部テープ・デバイスと通信するためにRMANによって使用される共有ライブラリを指します。通常、libobk.soという名前です。

  • PROPNAME_MEDIAPOOL: コンテンツを格納するメディア・プール番号。

  • PROPNAME_CACHE_SIZE: このストアのキャッシュに使用される領域容量(バイト単位)。

次のプロパティには、ストアの作成時に割り当てられるデフォルト値があり、チューニングすることで十分な効果が得られます。

  • PROPNAME_READCHUNKSIZEおよびPROPNAME_WRITECHUNKSIZE: テープとの間でデータを転送する場合にSBTプロトコルで使用されるサイズです。これらのチャンクはトランザクションごとにメモリーに割り当てられるため、値は低くする必要があります。デフォルトのサイズは1MBです。

  • PROPNAME_STREAMABLE: DBFS_LINKが読込み操作(たとえば、SELECTまたはDBMS_LOB.READ)を直接ストアから実行できるかどうか、または読み込む前にデータベースにコピーして戻す必要があるかどうかを示します。

  • PROPNAME_ENABLECLEANUPONDELETE: 外部ストレージで使用されていないファイルをDBMS_DBFS_HSによって削除するかどうかを示します。このプロパティに有効な値はSTORETYPE_TAPEに対する'FALSE'です。

  • PROPNAME_COMPRESSLEVEL: テープに書き込まれるファイルを圧縮する方法を説明します。PROPVAL_COMPLVL_NONEPROPVAL_COMPLVL_LOWPROPVAL_COMPLVL_MEDIUMまたはPROPVAL_COMPLVL_HIGHに設定できます。デフォルトでは、PROPVAL_COMPLVL_NONEに設定されています。

(続き) property_value

STORETYPE_AMAZONS3タイプのストア

次のプロパティには割り当てられた値があることが必須であり、デフォルト値が指定されています。

  • PROPNAME_SBTLIBRARY: Amazon S3と通信するためにRMANによって使用される共有ライブラリのパスを指定します。libosbws11.soという名前が付けられ、rdbms/libディレクトリで使用できます。

  • PROPNAME_S3HOST: Amazon S3ストレージ・サービスのHOST名を定義します。s3.amazonaws.comにする必要があります。

  • PROPNAME_BUCKET: Hierarchical Storeによってストレージ層として使用されるAWSバケットを定義します。バケット名には次の制限があります。

    --バケット名に使用できる文字は、小文字、数字、ピリオド(.)およびダッシュ(-)のみです。アンダースコア(_)の使用は無効です。

    --バケット名の先頭は数字または文字であることが必要です。

    --バケット名をIPアドレスのスタイル(「192.168.5.4」)にすることはできません。

    --バケット名の長さは3から63文字の間です。

    --バケット名の末尾をダッシュにすることはできません。

    --ピリオドの隣にダッシュを使用することはできません。たとえば、「my-.bucket.com」は無効です。

  • PROPNAME_LICENSEID: ライブラリlibosbws11.soと関連付けられているライセンスIDを指定します。

  • PROPNAME_WALLET: 'LOCATION=file:<filename> CREDENTIAL_ALIAS=<access/secret_alias> PROXY_AUTH_ALIAS=<proxyusername/password alias>'の形式になります。

    -- LOCATION: Oracle Walletを含むディレクトリ・パス。形式はfile:directory-pathです。形式のバリエーションは、「例」を参照してください。

    -- PASSWORD: Walletのパスワードを定義します。Walletでauto-loginが有効な場合(この設定はユーザーの所有ユーティリティで変更可能)、このパラメータを指定する必要はありません。デフォルトでは、mkstoreユーティリティでauto-loginを有効にします。

    -- CREDENTIAL_ALIAS: ACCESS_KEYおよびSECRET_KEYの資格証明の別名を定義します。

    -- PROXY_AUTH_ALIAS: 該当する場合、プロキシ・サーバーの認証の資格証明を定義します。

(property_value (続き)

次のプロパティはオプションです。

  • PROPNAME_HTTPPROXY: Amazon S3ストレージ・サービスにアクセスするために必要なHTTPプロキシがある場合、そのDNS名を定義します。

  • PROPNAME_STREAMABLE: このストアでバッファ・ベースのPUTまたはGETを実行する必要があるかどうかを示します。このプロパティに有効な値はTRUE(デフォルト)およびFALSEです。

  • PROPNAME_ENABLECLEANUPONDELETE: 外部ストレージ・デバイスで使用されていないファイルをDBMS_DBFS_HSによって削除するかどうかを示します。このプロパティのデフォルト値は、STORETYPE_TAPEではFALSEで、STORETYPE_AMAZONS3ではTRUEです。

  • PROPNAME_COMPRESSLEVEL: テープに書き込まれるファイルを圧縮する方法を説明します。PROPVAL_COMPLVL_NONEPROPVAL_COMPLVL_LOWPROPVAL_COMPLVL_MEDIUMまたはPROPVAL_COMPLVL_HIGHに設定できます。デフォルトでは、PROPVAL_COMPLVL_NONEに設定されています。

使用上のノート

  • 指定したストアは、すでに作成されている必要があります。

  • このサブプログラムが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。

  • このサブプログラムを使用して、同じプロパティを同じ値または異なる値に複数回設定できます。

  • 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プロシージャのパラメータ

パラメータ 説明

store_name

コンテンツをクライアントがローカル・キャッシュから外部ストアに書き込むストアの名前。

path

ストア内の非マウント修飾(マウント・ポイントがない)パス。デフォルトでは、値はNULLで、ストアのルート・パスに対応します。

使用上のノート

  • Hierarchical Storeは、コンテンツ・ファイルをデータベース表にローカルにキャッシュします。外部ストレージ・デバイスに効率的に書き込むために十分なコンテンツがキャッシュに蓄積された(またはキャッシュが完全にいっぱいになった)場合、Hierarchical Storeはローカル・コンテンツからTAR書庫を作成し、ファイルとして外部デバイスに書き込みます。Hierarchical Storeによって作成されるTAR書庫のサイズは、ストア・プロパティPROPNAME_OPTTARBALLSIZEによって制御されます。

  • キャッシュの空き領域容量が、コンテンツ・ファイルのキャッシングにより使用領域がcache_sizeより上にプッシュされるようになると、Hierarchical Storeが内部的にSTOREPUSHをコールします。STOREPUSH プロシージャは、キャッシュにある使用済のまたは変更されたコンテンツ・ファイルからTAR書庫を作成し、外部デバイスに書き出します。他のセッションにロックされているファイルがある場合もあるため、STOREPUSHコールによってすべての使用済コンテンツがローカル・キャッシュから外部ストレージに書き込まれることは保証されません。

  • STOREPUSHには、自動的に操作を再開できる機能が組み込まれています。いくつかのTAR書庫を外部デバイスに転送した後に、STOREPUSHコールが(ネットワークの停止などにより)中断された場合、停止の終了後に再起動でき、中断されたポイントからデータの転送を再開します。つまり、停止が終了する前に処理は完了しています。STOREPUSHは、安全に再起動でき、停止が発生しなかったかのように影響されません。

  • このメソッドが正常に実行されると、ユーザーによりアクションをロールバックすることはできません。

  • デフォルトでは、pathNULLの場合、ストア内のすべてのファイルがSTOREPUSHの候補です。pathに有効な入力値がある場合は、指定したパスのネームスペース下にあるすべてのファイルがローカル・キャッシュから外部ストアに書き込まれます。指定したパスが既存のファイルである場合、再度リモート・ストアにプッシュされます。