この付録では、データセット・ファイルで使用される言語について説明します。データセット・ファイルとは、Oracle Secure Backupのバックアップ対象となるデータを記述するテキスト・ファイルです。
この章では、次のトピックについて説明します。
Oracle Secure Backupデータセット言語は、Oracle Secure Backupでバックアップするファイル・システム・データを定義するための簡単なテキストベースの方法を提供します。この言語の特徴は次のとおりです。
コメントは、シャープ記号(#)に続けてどこにでも指定できる。
データセット文は、次の構文を使用する。
statement-name [ statement-argument ]
statement-nameプレースホルダは、1つのデータセット文を表します。データセット文については、「データセット文」を参照してください。
文の中には、ネストしたブロックを始められるものがある。ブロック内の文は、ブロックを始めた文に対してのみ適用されます。ネストしたブロックの文は、次の形式になります。
statement-name [ statement-argument ] { statement-name [ statement-argument ] ... }
エスケープ文字は、バックスラッシュ(\
)で表され、どこにでも指定でき、この次の文字に特別な意味を持たせないようにできる。
空白行を無視する。
例D-1は、brhost2
上の各ディレクトリをバックアップするように記述したデータセット・ファイルのサンプルです。
例D-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 /usr1/home/peter # but skip directories peter and dinesh exclude path /usr1/home/dinesh } include path /usr2/home # also back up /usr2/home, including } # peter and dinesh if they exist
after backup
文を使用して、バックアップの完了後、マシン実行可能ファイルまたは翻訳済プログラムを実行するように、Oracle Secure Backupに指示します。before backup文を使用することで、バックアップを始める前に、after backupと同じか異なるプログラムを実行することもできます。これらの文は、データベース・サーバーをシャット・ダウンして再起動するときや、バックアップの開始または終了をユーザーに通知するときなどに役に立ちます。
デフォルトでは、指定した実行可能ファイルが存在しないか失敗した場合、つまりゼロ以外の終了コードが戻された場合に、Oracle Secure Backupではバックアップ・ジョブを停止し、ジョブが失敗したとみなします。
after backup [ optional ] pathname
pathnameプレースホルダは、クライアント・ホスト上で実行するプログラムの名前を表します。NDMPデータ・サービスを使用するバックアップの場合、Oracle Secure Backupでは、管理サーバー上でプログラムを実行します。
optional
キーワードを使用すると、Oracle Secure Backupでは、起動したプログラムから戻された状態や、このプログラムを起動できないことが無視されます。
例D-2では、ディレクトリ/usr2
のバックアップ後に、ホストbrhost2
上のプログラム/etc/local/nfy
に引数/usr2 is being saved
を渡すように、Oracle Secure Backupに指示しています。
例D-2 after backup文
include host fserver { include path /usr2 after backup "/etc/local/nfy '/usr2 backup complete'" }
Oracle Secure Backupでは、任意の指定内容に次の引数を自動的に追加します。
トークンafter
クライアントの名前
バックアップするディレクトリまたはファイルの名前
つまり、Oracle Secure Backupでは、brhost2
上のnfy
プログラムが、例D-2にあるように自分で入力したように実行されます。
/usr/local/nfy '/usr2 is being saved' after brhost2 /usr2
before backup
文を使用して、バックアップの開始前、マシン実行可能ファイルまたは翻訳済プログラムを実行するように、Oracle Secure Backupに指示します。この文は、after backup文と対応しています。
デフォルトでは、指定した実行可能ファイルが存在しないか失敗した場合、つまりゼロ以外の終了コードが戻された場合に、Oracle Secure Backupではバックアップ・ジョブを開始せず、ジョブが失敗したとみなします。
before backup [ optional ] pathname
pathnameプレースホルダは、クライアント・ホスト上で実行するプログラムの名前を表します。NDMPデータ・サービスを使用するバックアップの場合、Oracle Secure Backupでは、管理サーバー上でプログラムを実行します。
optional
キーワードを使用すると、Oracle Secure Backupでは、起動したプログラムから戻された状態や、このプログラムを起動できないことが無視されます。
例D-3では、ディレクトリ/usr2
のバックアップ前に、ホストbrhost2
上のプログラム/etc/local/nfy
に引数/usr2 is being saved
を渡すように、Oracle Secure Backupに指示しています。
例D-3 before backup文
include host brhost2 { include path /usr2 before backup "/etc/local/nfy '/usr2 is being saved'" }
Oracle Secure Backupでは、任意の指定内容に次の引数を自動的に追加します。
トークンbefore
クライアントの名前
バックアップするディレクトリまたはファイルの名前
つまり、Oracle Secure Backupでは、brhost2
上のnfy
プログラムが、例D-3にあるように自分で入力したように実行されます。
/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
のバックアップによって、このディレクトリ内のすべてのファイルがローカル、マウントの区別なくバックアップされるように指定できます。
例D-4は、ホストbrhost1
およびbrhost2
の上にあるすべてのローカル・マウント・ポイントおよびリモート・マウント・ポイントにアクセスしています。
例D-4 グローバル・ホストのインクルード
cross all mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-5では、brhost1
のパスに含まれるローカルおよびリモートのすべてのマウント・ポイントにアクセスしています。ホストbrhost2
のパスに関してはマウント・ポイントにはアクセスしていません。
例D-5 グローバル・パスのインクルード
include host brhost1 { cross all mountpoints include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-6では、ホストbrhost1
の/home/usr1
のパスに含まれるローカルおよびリモートのすべてのマウント・ポイントにアクセスしています。/home/usr2
パスに関してはマウント・ポイントにはアクセスしていません。
cross local mountpoints
文を使用して、ローカル(リモートではなく)のマウント・ポイントにアクセスします。
/home/usr1/loc_data
でローカル・ファイル・システムをマウントし、/home/usr1/rem_data
がネットワーク・ホスト上のファイル・システムのNFSマウント・ポイントであると仮定します。cross local mountpoints
を使用して、/home/usr1
のバックアップによって、/home/usr1/rem_data
内のファイルが含まれずに、/home/usr1/loc_data
内のファイルが含まれるように指定できます。
例D-7では、ホストbrhost1
およびbrhost2
の各ファイル・システムのローカル・マウント・ポイントのみにアクセスしています。
例D-7 グローバル・ホストのインクルード
cross local mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-8では、ホストbrhost1
の/home/usr1
パスに含まれるローカル・マウント・ポイントにアクセスしていますが、brhost2
の/home/usr2
パスに含まれるマウント・ポイントにはアクセスしていません。
例D-8 グローバル・パスのインクルード
include host brhost1 { cross local mountpoints include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-9では、ホストbrhost1
の/home/usr2
パスに含まれるマウント・ポイントにはアクセスせず、/home/usr1
パスに含まれるローカル・マウント・ポイントにアクセスしています。
cross remote mountpoints
文を使用して、リモート(ローカルではなく)のマウント・ポイントにアクセスします。
/home/usr1/loc_data
はローカル・ファイル・システムのマウント・ポイントで、/home/usr1/rem_data
はネットワーク・ホスト上のファイル・システムのNFSマウント・ポイントであると仮定します。cross remote mountpoints
を使用して、/home/usr1
のバックアップに、/home/usr1/loc_data
内のファイルが含まれずに、/home/usr1/rem_data
内のファイルが含まれるように指定できます。
例D-10では、ホストbrhost1
およびbrhost2
のファイル・システムのリモート・マウント・ポイントのみにアクセスしています。
例D-10 グローバル・ホストのインクルード
cross remote mountpoints include host brhost1 { include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-11では、brhost1
の/home/usr1
パスに含まれるリモート・マウント・ポイントのみにアクセスしています。
例D-11 グローバル・パスのインクルード
include host brhost1 { cross remote mountpoints brhost3 include path /home/usr1 } include host brhost2 { include path /home/usr2 }
例D-12では、/home/usr1
パスに含まれるリモート・マウント・ポイントのみと/home/usr2
パスに含まれるローカル・マウント・ポイントのみにアクセスしています。
exclude name
文を使用して、ファイル・システム・オブジェクトのうち、右端にあるリーフ名というコンポーネント名をバックアップから除外するように指定します。
exclude name leafname
Oracle Secure Backupでは、各ファイル・システム・オブジェクトのコンポーネント名を、指定したleafnameと比較し、名前が一致する場合は、そのファイル・システム・オブジェクトをバックアップしません。そのオブジェクトがディレクトリの場合は、Oracle Secure Backupでは、そのディレクトリのコンテンツをバックアップしません。
Oracle Secure Backupでは、*
、?
、[
または]
の特殊文字がエスケープされずにleafnameに含まれている場合は、リーフ名を、UNIX様式のワイルドカード表現として解釈します。leafnameにこれらの文字が使用されている場合は、Oracle Secure Backupでは、名前が一致するかどうかを判断するために、文字列比較を行わずにワイルドカード比較を行います。
exclude oracle database files
文を使用して、通常はRMANによってバックアップされるOracleデータベース関連のファイル、またはバックアップが推奨されないファイルをすべて除外します。Oracle Secure Backupでは、除外されるファイルが既存のRMANバックアップ計画に含まれているかどうかに関係なく、そのファイルを除外します。
Oracle Secure Backupで除外するファイルのタイプは次のとおりです。
データファイル(本番ファイルおよび本番ファイルのイメージ・コピー)
制御ファイル
オンラインREDOログおよびアーカイブ済REDOログ
フラッシュバック・ログ
変更トラッキング・ファイル
バックアップ・ピース
tempfile
注意: RMANを使用したデータベースのバックアップをスケジュールするには、Oracle Enterprise Managerジョブ・スケジューラを使用します。Oracle Secure Backupジョブ・スケジューラは、ファイル・システムのバックアップをスケジュールするために使用します。つまり、Oracleデータベース・ホストをOracle Secure Backupでバックアップするには、Enterprise ManagerとOracle Secure Backupの両方でスケジュールを設定する必要があります。Oracle Secure Backupのスケジュールでexclude oracle files 文を使用すると、Oracleデータベース関連のファイルが2回バックアップされることがなくなります。 |
include dataset
文を使用して、別のデータセット・ファイルを読み取り、include dataset文を論理的にそのコンテンツに置換するように、Oracle Secure Backupに指示します。この文は、ほとんどのプログラミング言語に見られるinclude文に似ています。
include dataset dataset_file_name
dataset_file_nameプレースホルダは、1つのデータセット・ファイルまたはデータセット・ディレクトリの名前を表します。データセット・ディレクトリの名前を指定すると、そのディレクトリの各メンバーがOracle Secure Backupによってインクルードされます。
include host
文を使用して、バックアップするクライアント・ホストの名前を指定します。include host
文は、データセット・ファイル内の任意の場所に指定できます。
データセット・ファイルが使用可能であるためには、データセット・ファイル自体かまたはそれにインクルードされるデータセット・ファイルの中に、最低1つのhost文が存在する必要があります。
include path
文を使用して、バックアップするファイル・システム・オブジェクトの名前を指定します。
注意: バックアップ・パスは、バックアップするファイル・システムのパスの最大長を超えて指定することはできません。また、どのような場合でも1023文字を超えることはできません。 |
include path absolute-pathname
absolute-pathnameプレースホルダは、バックアップするファイル・システム・オブジェクトの、ファイル・システムのルートから始まるパス名を表します。スペースを含むパス名は、単一引用符または二重引用符で囲みます。
例D-17に、Windowsシステムに対するinclude path
文を示します。パスは、スペースを含んでいるため、二重引用符で囲まれています。
LinuxおよびUnixシステムの場合は、include path
文にドライブ指定文字や引用符を使用することはできません。例D-18に、LinuxまたはUNIXシステムに対するinclude path文を示します。
例D-18 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
include host
文の中にinclude path
文をネストできます。例D-19に示すデータセット文を参照してください。
例D-19 include host文
include host brhost2 include host brhost3 include path /home include path /project
Oracle Secure Backupでは、データセット・ファイル内の各include path
文を解釈して各include host
文に適用します。つまり、Oracle Secure Backupでは、brhost2
およびbrhost3
のホストごとに/home
ディレクトリおよび/project
ディレクトリをバックアップします。
例D-20 include host文およびinclude path文が記述されたデータセット・ファイル
include host brhost2 { include path /home include path /project } include host brhost3 { include path /home include path /project }
例D-21では、ホストbrhost2
の/home
とホストbrhost3
の/project
をバックアップしています。
例D-21 include host文およびinclude path文が記述されたデータセット・ファイル
include host brhost2 { include path /home } include host brhost3 { include path /project }
複数のホストまたはパスを常に一緒にバックアップする場合にのみ、データセット・ファイルに複数のホストまたはパスを記述してください。Oracle Secure Backupのスケジューラおよびオンデマンド・バックアップ機能では、各バックアップ・ジョブを定義する際、パス名ではなくデータセット・ファイル名を使用します。
この項では、データセット・ファイルの例を示します。次のトピックについて説明します。
例D-22に、バックアップする4つのホスト・システムを記述した複合データセット・ファイルを示します。/home
、/usr
および/usr2
ディレクトリ内のすべてのファイルとそれらのディレクトリ内のサブディレクトリのすべてのファイルがバックアップされるように指定されています。
/usr/tmp
ディレクトリのファイルはすべてデータセットから除外されます。core
という名前のファイルと .bak
で終わる名前のファイルも、その存在する場所に関係なく、データセットから除外されます。
データセット・ファイルには、別のデータセット・ファイルのコンテンツを論理的に含めることができます。include dataset
文を使用すると、参照によって別のデータセット・ファイルのコンテンツを含めることができます。
例D-23に示すcommon-exclusions.ds
という名前のデータセット・ファイルのサンプルについて考えてみます。
これらの除外を別のデータセット・ファイル内で使用するには、例D-24に示す文を使用します。
これらの除外を特定のパスのみに適用するには、例D-25に示すようにinclude dataset
ディレクティブを中カッコで囲んで指定します。
バックアップの有効範囲を定義するには、インクルードのルールに使用する中カッコを使用できます。例D-26では、すべてのサーバーのパス/usr1
と/usr2
と、brhost3
のみの/usr3
と/usr4
をOracle Secure Backupでバックアップします。なお、中カッコ内のルール間の順序は、ルールに影響しません。
例D-26 中カッコを使用した有効範囲の制限
# 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 }
追加の中カッコを使用して、ルールの有効範囲をさらに詳細に指定できます。例D-27では、brhost3
の/usr4
のみから.junk
で終わるファイルを除外するように、例D-26を変更しています。
例D-27 ルール・セットの有効範囲の詳細指定
# 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 } }