この章では、データセット・ファイルで使用される言語について説明します。データセット・ファイルとは、Oracle Secure Backupのバックアップ対象となるデータを記述するテキスト・ファイルです。
この章は、次の項目が含まれます。
Oracle Secure Backupのデータセット言語により、バックアップするファイルシステム・データを定義するための簡単なテキストベースの手段が提供されます。この言語の特徴は次のとおりです。
コメントは、シャープ記号(#)に続けてどこにでも指定できる。
データセット文は、次の構文を使用する。
statement-name [ statement-argument ]
statement-name
プレースホルダは、1つのデータセット文を表します。データセット文については、「データセット文」を参照してください。
文によっては、ネストしたブロックを始めることができる。ブロック内の文は、ブロックを始めた文に対してのみ適用されます。ネストしたブロックの文は、次の形式になります。
statement-name [ statement-argument ] { statement-name [ statement-argument ] ... }
エスケープ文字は、バックスラッシュ(\
)で表され、どこにでも指定でき、この次の文字に特別な意味を持たせないようにできる。
空白行を無視する。
例5-1は、brhost2上の各ディレクトリをバックアップするように記述したデータセット・ファイルのサンプルです。
例5-1 データセットのサンプル
# # A sample dataset file # exclude name *.backup # never back up directories or files exclude name *~ # matching *.backup and *~ include host brhost2 { # back up host brhost2 include path /usr1/home { # back up /usr1/home on brhost2, exclude path peter # skip subdirectory peter (relative path) exclude path /usr1/home/dinesh # also skip subdir dinesh (absolute path) } include path /usr2/home # also back up /usr2/home, including } # all subdirectories
次のトピックについて説明します。
例5-2に、バックアップする4つのホスト・システムを記述した複合データセット・ファイルを示します。/home
、/usr
および/usr2
の各ディレクトリ内にあるすべてのファイルとそれらのディレクトリ内のサブディレクトリにあるすべてのファイルがバックアップされるように指定しています。
/usr/tmp
ディレクトリのファイルはすべてデータセットから除外されます。coreという名前のファイルと.bak
で終わる名前のファイルも、その存在する場所に関係なく、データセットから除外されます。
データセット・ファイルには、別のデータセット・ファイルのコンテンツを論理的にインクルードできます。include
dataset
文を使用すると、参照によって別のデータセット・ファイルのコンテンツをインクルードできます。
例5-3に示すcommon-exclusions.ds
という名前のデータセット・ファイルのサンプルについて考えてみます。
これらの除外をデータセット・ファイルで使用するには、例5-4に示す文を使用します。
これらの除外を特定のパスのみに適用するには、例5-5に示すようにinclude
dataset
ディレクティブを中カッコで囲んで指定します。
バックアップの有効範囲を定義するには、インクルードのルールに使用する中カッコを使用できます。例5-6では、すべてのサーバーのパス/usr1
および/usr2
と、brhost3
のみの/usr3
および/usr4
がバックアップされます。なお、中カッコ内のルール間の順序は、ルールに影響しません。
例5-6 中カッコを使用した有効範囲の制限
# Common trees backed up on all servers: include path /usr1 include path /usr2 # Servers to back up; on brhost3, we also back up usr3 & usr4, too: include host brhost1 include host brhost2 include host brhost3 { include path /usr3 include path /usr4 }
追加の中カッコを使用して、ルールの有効範囲をさらに詳細に指定できます。例5-7では、brhost3
のみの/usr4
から.junkで終わるファイルを除外するように、例5-6を変更しています。
例5-7 ルール・セットの有効範囲の絞込み
# Common trees backed up on all servers: include path /usr1 include path /usr2 # Servers to back up; on brhost3, back up /usr3 and /usr4, but exclude *.junk # files in /usr4 only: include host brhost1 include host brhost2 include host brhost3 { include path /usr3 include path /usr4 { exclude name *.junk } }
ワイルドカード・パターンをexclude
path
またはexclude
name
文に指定すると、Oracle Secure Backupリリース10.4では、パス・セパレータを考慮しながらパターン・マッチングが試行されます。たとえば、パターンsrc/*.pl
を指定すると、src/a.pl
は除外されますが、src/tmp/b.pl
は除外されません。
旧リリースのOracle Secure Backupでの除外文のワイルドカード・パターン・マッチングでは、パス・セパレータは考慮されませんでした。たとえば、同じパターンsrc/*.pl
を指定すると、src/a.pl
もsrc/tmp/b.pl
も除外されます。
Oracle Secure Backupを旧リリースからリリース10.4にアップグレードした場合、既存のexclude
path
およびexclude
name
文は引き続き使用できます。旧リリースのOracle Secure Backupでバックアップから除外されたファイルおよびディレクトリの一部は、現在では除外されません。このため、バックアップ・ファイルは若干大きくなりますが、これまでどおりデータはすべてバックアップされます。
用途
after
backup
文は、バックアップの完了後にコンピュータの実行可能ファイルまたは解析済プログラムを実行するようにOracle Secure Backupに指示する場合に使用します。before backup文を使用することで、バックアップを始める前に、after backupと同じか異なるプログラムを実行することもできます。これらの文は、データベース・サーバーをシャット・ダウンして再起動するときや、バックアップの開始または終了をユーザーに通知するときなどに役に立ちます。
デフォルトでは、指定した実行可能ファイルが存在しないか失敗した場合、つまりゼロ以外の終了コードが戻された場合、バックアップ・ジョブは停止され、ジョブは失敗したとみなされます。
構文
after backup [ optional ] pathname
pathname
プレースホルダは、クライアント・ホスト上で実行するプログラムの名前を表します。ネットワーク・データ管理プロトコル(NDMP)データ・サービスを使用するバックアップの場合、プログラムは管理サーバー上で実行されます。
optional
キーワードを使用すると、Oracle Secure Backupでは、起動したプログラムから戻された状態や、このプログラムを起動できないことが無視されます。
例
例5-8 after backup文
この例では、ディレクトリ/usr2
のバックアップ後に、ホストbrhost2
上でプログラム/etc/local/nfy
に引数/usr2 is being saved
を渡すように、Oracle Secure Backupに指示しています。
include host fserver { include path /usr2 after backup "/etc/local/nfy '/usr2 backup complete'" }
Oracle Secure Backupでは、任意の指定内容に次の引数を自動的に追加します。
トークンafter
クライアントの名前
バックアップするディレクトリまたはファイルの名前
バックアップ操作の終了ステータス(ファイルOSB_HOME/samples/obexit.h
に記載されている数値)
つまり、この例では、次のとおり自分で入力したかのようにbrhost2
上でnfy
プログラムが実行されます。
/usr/local/nfy '/usr2 backup complete' after brhost2 /usr2 exit-code
用途
before backup
文は、バックアップの開始前にコンピュータの実行可能ファイルまたは解析済プログラムを実行するようにOracle Secure Backupに指示する場合に使用します。この文は、after backup文と対応しています。
デフォルトでは、指定した実行可能ファイルが存在しないか失敗した場合、つまりゼロ以外の終了コードが戻された場合に、バックアップ・ジョブは開始されず、ジョブは失敗したとみなされます。
構文
pathname
プレースホルダは、クライアント・ホスト上で実行するプログラムの名前を表します。ネットワーク・データ管理プロトコル(NDMP)データ・サービスを使用するバックアップの場合、プログラムは管理サーバー上で実行されます。
before backup [ optional ] pathname
optional
キーワードを使用すると、Oracle Secure Backupでは、起動したプログラムから戻された状態や、このプログラムを起動できないことが無視されます。
例
例5-9 before backup文
この例では、ディレクトリ/usr2
のバックアップ前に、ホストbrhost2
上でプログラム/etc/local/nfy
に引数/usr2 is being saved
を渡すように、Oracle Secure Backupに指示しています。
include host brhost2 { include path /usr2 before backup "/etc/local/nfy '/usr2 is being saved'" }
Oracle Secure Backupでは、任意の指定内容に次の引数を自動的に追加します。
トークンbefore
クライアントの名前
バックアップするディレクトリまたはファイルの名前
つまり、この例では、次のとおり自分で入力したかのようにbrhost2
上でnfy
プログラムが実行されます。
/usr/local/nfy '/usr2 is being saved' before brhost2 /usr2
用途
cross all mountpoints
文は、ローカル・マウント・ポイントおよびリモート・マウント・ポイントを横断する場合に使用します。ローカル・マウント・ポイントは、ローカル・ファイルシステムをマウントするものです。リモート・マウント・ポイントは、ネットワークを介してアクセスされるファイルシステムのローカル・マウントです。デフォルトでは、ファイルシステム・バックアップはマウント・ポイントを横断しません。
/home/usr1/loc_data
でローカル・ファイルシステムをマウントし、/home/usr1/rem_data
はネットワーク・ホスト上のファイルシステムに対するネットワーク・ファイルシステム(NFS)マウント・ポイントであると仮定します。cross all mountpoints
を使用すると、ローカル、マウント済の区別なく、このディレクトリ内のすべてのファイルが/home/usr1
のバックアップに含まれるように指定できます。
例
例5-10 グローバル・ホストのインクルード
この例では、ホストbrhost1
およびbrhost2
の上にあるすべてのローカル・マウント・ポイントおよびリモート・マウント・ポイントを横断しています。
cross all mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
用途
cross local mountpoints
文は、ローカル(リモートではなく)のマウント・ポイントを横断する場合に使用します。
/home/usr1/loc_data
でローカル・ファイルシステムをマウントし、/home/usr1/rem_data
はネットワーク・ホスト上のファイルシステムに対するネットワーク・ファイルシステム(NFS)マウント・ポイントであると仮定します。cross local mountpoints
を使用すると、/home/usr1
のバックアップに、/home/usr1/loc_data
内のファイルは含まれるようにし、/home/usr1/rem_data
内のファイルは含まれないように指定できます。
例
例5-13 グローバル・ホストのインクルード
この例では、ホストbrhost1
およびbrhost2
のファイルシステムのローカル・マウント・ポイントのみを横断しています。
cross local mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
用途
cross remote mountpoints
文は、リモート(ローカルではなく)のマウント・ポイントを横断する場合に使用します。
/home/usr1/loc_data
はローカル・ファイルシステムのマウント・ポイントで、/home/usr1/rem_data
はネットワーク・ホスト上のファイルシステムに対するネットワーク・ファイルシステム(NFS)マウント・ポイントであると仮定します。cross remote mountpoints
を使用すると、/home/usr1
のバックアップに、/home/usr1/rem_data
内のファイルは含まれるようにし、/home/usr1/loc_data
内のファイルは含まれないように指定できます。
例
例5-16 グローバル・ホストのインクルード
この例では、ホストbrhost1
およびbrhost2
のファイルシステムのリモート・マウント・ポイントのみを横断しています。
cross remote mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
用途
exclude
dir
文は、バックアップから除外するディレクトリ(1つまたはセット)を指定する場合に使用します。それは、指定したパターンと一致するファイルを除外しないexclude
name
とは異なります。
意味
除外するディレクトリ(1つまたはセット)を指定します。pattern
プレースホルダにはパスのセパレータを挿入しなくでください。それは、Oracle Secure Backupスタイルのワイルドカードの構文表現ベースのパターン・マッチングに対応しています。
用途
exclude
file
文は、ファイルのディレクトリの場所に関係なく、バックアップから除外するファイルシステム・オブジェクトをファイル名により指定する場合に使用します。それは、指定したパターンと一致するディレクトリを除外しないexclude
name
とは異なります。
意味
除外するファイル(1つまたはセット)を指定します。pattern
プレースホルダにはパスのセパレータを挿入しなくでください。それは、Oracle Secure Backupスタイルのワイルドカードの構文表現ベースのパターン・マッチングに対応しています。
用途
exclude
name
文は、バックアップから除外するファイルシステム・オブジェクトを、一致するパスの右端にあるコンポーネント名(リーフ名)か、一致する相対パスまたはパターンのいずれかにより指定する場合に使用します。
意味
Oracle Secure Backupでは、各ファイルシステム・オブジェクトのコンポーネント名を指定のleafname
と比較します。一致する場合、そのファイルシステム・オブジェクトはバックアップされません。そのオブジェクトがディレクトリの場合は、ディレクトリのコンテンツがバックアップされません。
leafname
に*
、?
、[
または]
の特殊文字がエスケープされずに含まれる場合は、Oracle Secure Backupスタイルのワイルドカード表現として解釈されます。leafname
でこれらの文字が使用されている場合は、名前が一致するかどうかを判断するために、文字列比較ではなくワイルドカード比較が行われます。
Oracle Secure Backupでは、各ファイルシステム・オブジェクトのコンポーネント名を現行のinclude pathを基準とした指定のrelative_pathname
と比較します。一致する場合、そのファイルシステム・オブジェクトはバックアップされません。relative_pathname
がディレクトリを参照している場合は、ディレクトリのコンテンツがバックアップされません。
relative_pathname
に*
、?
、[
または]
の特殊文字がエスケープされずに含まれる場合は、Oracle Secure Backupスタイルのワイルドカード表現として解釈されます。relative_pathname
でこれらの文字が使用されている場合は、名前が一致するかどうかを判断するために、文字列比較ではなくワイルドカード比較が行われます。
例
例5-9 exclude name文
ディレクトリ・ツリーに次のファイルおよびディレクトリが存在するとします。
/src /src/abc /src/abc/a.pl /src/tmp /src/tmp/g.pl /src/tmp/src/d.plaf /src/tmp/src/a.pldir /src/tmp/src/a.pldir/a.pl /src/tmp/src/a.pldir/s.tmp /src/tmp/src/a.pl /src/a.pl /src/b.pl
データセットは、次の内容で作成します。
exclude name d exclude name *.tmp
データセット文は、d
という名前のファイルやディレクトリを除外し、また名前が.tmp
で終わるファイルを除外します。想定されたディレクトリ・ツリーに対し、次のディレクトリやファイルがバックアップ操作から除外されます。
/src/tmp/src/d.plaf /src/tmp/src/a.pldir/s.tmp
用途
exclude oracle database files
文は、Recovery Manager(RMAN)によって通常バックアップされるOracleデータベース関連のファイル、またはバックアップが推奨されないファイルをすべて除外する場合に使用します。Oracle Secure Backupでは、除外されるファイルが既存のRMANバックアップ計画に含まれているかどうかに関係なく、そのファイルを除外します。
Oracle Secure Backupで除外するファイルのタイプは次のとおりです。
データファイル(本番ファイルおよび本番ファイルのイメージ・コピー)
制御ファイル
オンラインREDOログおよびアーカイブ済REDOログ
フラッシュバック・ログ
変更トラッキング・ファイル
バックアップ・ピース
一時ファイル
注意: RMANを使用したデータベースのバックアップをスケジュールするには、Oracle Enterprise Managerジョブ・スケジューラを使用し、ファイルシステム・バックアップをスケジュールするには、Oracle Secure Backupジョブ・スケジューラを使用します。つまり、Oracleデータベース・ホストをOracle Secure Backupでバックアップするには、Enterprise ManagerとOracle Secure Backupの両方でスケジュールを設定する必要があります。Oracle Secure Backupのスケジュールでexclude oracle files 文を使用すると、Oracleデータベース関連のファイルが2回バックアップされることがなくなります。 |
意味
パスあるいはパターン一致するサブディレクトリまたはサブディレクトリ内のファイルを、ファイルシステムのルートを基準として相対的に指定します。絶対パスは、Windowsプラットフォームではドライブ文字
の\で、UNIXでは/で始まります。
パスまたはパターン一致するサブディレクトリまたはサブディレクトリ内のファイルを、現行のinclude path
を基準として相対的に指定します。
例
例5-21 exclude path文
ホストosblin1
上に次のバックアップ対象のディレクトリおよびファイルのセットがあるとします。
/src /src/abc /src/abc/a.tmp /src/tmp /src/tmp/g.pl /src/tmp/src/d.tmp1 /src/tmp/src/a.tmprary /src/tmp/src/a.pldir/a.tmp /src/tmp/src/d.tmp-out /src/tmp/src/a. /src/a.pl /src/b.pl /misc /misc/yesterday.tmp /misc/tmpsql.out
次のデータセットは、osblin1
上の/
ディレクトリのバックアップを指定していますが、/src/tmp
内のファイルと、/src
ディレクトリの任意のレベルにおいて拡張子が.tmp
のファイルをスキップしています。
include host osblin1 { include path / { exclude path src/tmp exclude path recursive *.tmp } }
用途
include
catalog
文は、Oracle Secure Backupカタログのリストアに必要な管理サーバー上のすべてのデータをバックアップするようにOracle Secure Backupに指示する場合に使用します。このディレクティブは、データセット・パーサーによって、必要なすべてのファイルおよびデータベースのリストに内部展開されます。
このディレクティブは、別のデータセットにインクルードできます。ただし、定義上、管理サーバー・ホストにしか適用できないため、include hostブロック内では使用できません。
include path、exclude pathおよびexclude nameの各ディレクティブをinclude
catalog
ディレクティブ直下のブロック・デリミタ内にリストすることで、管理サーバー・ホストの別のファイルおよびパスをinclude
catalog
でバックアップするファイルに追加できます。他のディレクティブはinclude
catalog
ブロック内で使用できません。
カタログのバックアップは、常に全体バックアップとして作成され、増分バックアップとして作成されることはありません。増分バックアップからのリストアはカタログのコンテンツなしでは難しいため、全体バックアップとしてカタログのバックアップを作成する方が信頼性は高くなります。
カタログをリカバリする状況によっては、暗号化キーが格納されているウォレットを使用できないことがあります。そのため、展開されたcatalogディレクティブとその子は、スケジューラにより別個のジョブで処理され、各ジョブはスレージの暗号化ポリシーが無効の状態で実行されます。
一時パスフレーズによる暗号化は、ウォレットに依存しないため、このバックアップの保護に使用できます。
include
path
ディレクティブを使用して機密コンテンツが含まれる別のファイルをカタログのバックアップに追加する場合は、一時パスフレーズによる暗号化を使用してこれらのファイルが含まれるバックアップを保護することを検討してください。
意味
後で行われるカタログのリカバリに必要なすべてのデータをインクルードします。
カタログ・バックアップ用にバックアップされるデータに追加するためのinclude pathディレクティブを指定します。カタログ・バックアップ用にバックアップされるデータから除外するには、exclude pathおよびexclude nameディレクティブを使用します。
用途
include
dataset
文は、別のデータセット・ファイルを読み取り、include
dataset
文を論理的にそのコンテンツに置換するように、Oracle Secure Backupに指示する場合に使用します。この文は、ほとんどのプログラミング言語に見られるinclude文に似ています。
構文
include dataset dataset_file_name
dataset_file_name
プレースホルダは、1つのデータセット・ファイルまたはデータセット・ディレクトリの名前を表します。データセット・ディレクトリの名前を指定すると、そのディレクトリの各メンバーがインクルードされます。
用途
include host
文は、バックアップするクライアント・ホストの名前を指定する場合に使用します。include host
文は、データセット・ファイル内の任意の場所に指定できます。
データセット・ファイルが使用可能であるためには、データセット・ファイル自体かまたはそれにインクルードされるデータセット・ファイルの中に、最低1つのhost文が存在する必要があります。
include host
文は、次のいずれかの形式を取ります。
構文2
include host hostname {statements_that_apply_to_hostname}
hostname
プレースホルダは、Webツールのインタフェースか、あるいはmkhost
コマンドまたはrenhost
コマンドを使用して以前に定義したクライアントの名前を表します。
用途
include
path
文は、バックアップするファイルシステム・オブジェクトの名前を指定する場合に使用します。
バックアップ・パスは、バックアップするファイルシステムのパスの最大長を超えて指定することはできません。また、どのような場合でも260文字(Windowsシステム)または1024文字(それ以外のシステム)を超えることはできません。
WindowsおよびLinux/UNIXのどちらのパス名にも標準のワイルドカード(*
、?
、[
、および]
)を含めることができます。パス名にこれらのワイルドカード文字のいずれかが含まれている場合、これらの文字を特別に解釈されないように、各文字の前にバックスラッシュ(\
)文字を置く必要があります。
不明瞭化ウォレットへの未認可アクセスによるリスクを減らすため、Oracle Secure Backupでは、デフォルトで、不明瞭化ウォレットをバックアップしません。ただし、ファイル名と完全パスをデータセットのinclude path文に明示的にリストすれば、不明瞭化ウォレットをバックアップできます。例5-30「不明瞭化ウォレットを非暗号化バックアップでバックアップするためのデータセット・ファイル」は、不明瞭化ウォレットをデータセットにインクルードする方法を説明しています。Oracle Secure Backupの暗号化バックアップに含まれている場合は、不明瞭化ウォレットもバックアップされます。
Oracle Secure Backupの暗号化バックアップ時に、cwallet.sso
ファイルが保存されているディレクトリがデータセットにインクルードされている場合、不明瞭化ウォレットはバックアップされます。たとえば、次のinclude path
文が含まれているデータセットの暗号化バックアップでは、ウォレット・ディレクトリのコンテンツと、このディレクトリに保存されている不明瞭化ウォレットがバックアップされます。
include path /usr/local/apps/wallet
構文
include path absolute-pathname
absolute-pathname
プレースホルダは、バックアップするファイルシステム・オブジェクトのパス名を表し、ファイルシステムのルートで始まります。スペースを含むパス名は、一重引用符または二重引用符で囲みます。
例
例5-25 Windowsでのinclude path文
この例に、Windowsシステムでのinclude path
文を示します。パスは、スペースを含んでいるため、二重引用符で囲まれています。
include path "C:\Documents and Settings"
例5-26 Linux/UNIXでのinclude path文
LinuxおよびUNIXシステムの場合は、include path
文にテープ・ドライブ指定文字や引用符を使用することはできません。この例に、LinuxまたはUNIXシステムでのinclude
path
文を示します。
include path /space { # include the local root directory exclude name core # but no core files (for UNIX) exclude name *~ # and no emacs backup files } include path /etc
例5-27 include host文
include host
文の中にinclude path
文をネストできます。この例に示すデータセット文について考えてみます。
Oracle Secure Backupでは、データセット・ファイル内の各include
path
文が解析され、各include
host
文に適用されます。つまり、brhost2
およびbrhost3
のホストごとに/home
ディレクトリおよび/project
ディレクトリがバックアップされます。
include host brhost2 include host brhost3 include path /home include path /project
例5-28 include host文およびinclude path文が記述されたデータセット・ファイル
この例では、ホストbrhost2
の/home
とホストbrhost3
の/project
がバックアップされます。この例の文は、例5-29の文と同じ結果になります。
include host brhost2 { include path /home include path /project } include host brhost3 { include path /home include path /project }
例5-29 include host文およびinclude path文が記述されたデータセット・ファイル
この例の文は、例5-28の文と同じ結果になります。
include host brhost2 { include path /home } include host brhost3 { include path /project }
複数のホストまたはパスを常にバックアップする場合にのみ、データセット・ファイルに複数のホストまたはパスを記述してください。Oracle Secure Backupのスケジューラおよびオンデマンド・バックアップ機能では、各バックアップ・ジョブを定義する際、パス名ではなくデータセット・ファイル名を使用します。
例5-30 不明瞭化ウォレットを非暗号化バックアップでバックアップするためのデータセット・ファイル
この例は、不明瞭化ウォレットを非暗号化バックアップの一部としてインクルードするために使用するデータセットを示しています。不明瞭化ウォレットcwallet.sso
は/usr/local/apps/wallet
ディレクトリに格納されています。次のデータセットには、不明瞭化ウォレットと/usr/local/apps/wallet
ディレクトリのコンテンツがインクルードされます。
include host brhost2 { include path /usr/local/apps/wallet include path /usr/local/apps/wallet/cwallet.sso }
cwallet.sso
は/usr/local/apps/wallet
に含まれていますが、非暗号化バックアップにインクルードされるのは、include path文で明示的にリストされている場合のみです。
注意: ワイルドカード文字を使用してバックアップに不明瞭化ウォレットをインクルードすることはできません。たとえば、次の文では不明瞭化ウォレットをデータセットに追加できません。include path /usr/local/apps/wallet/cwallet.* |