RMAN リポジトリの保守作業
RMAN リポジトリとは、RMAN でバックアップ、リカバリ操作および保守作業に使用される、ターゲットデータベースに関するメタデータの集まりです。RMAN リポジトリは、リカバリカタログを作成してその中に格納するか、RMAN によってターゲットデータベースの制御ファイルに排他的に格納することができます。RMAN では、制御ファイルのみを使用してすべての主要なバックアップおよびリカバリ操作を実行できますが、RMAN コマンドの中には、リカバリカタログを使用するときにのみ有効なものがあります。
表: タスクおよびコマンド は、RMAN リポジトリを保守するために必要なタスクと、これらのタスクを実行するリポジトリ保守コマンドのサブセットを示しています。これらのコマンドの中には、RMAN のバージョンによっては利用できないものがあります。
表: タスクおよびコマンド
タスク
|
タスクを実行するコマンド
|
---|
リカバリカタログへのデータベースの登録
|
RMAN でリカバリカタログを使用するには、リカバリカタログにターゲットデータベースを登録します。登録するには、ターゲットデータベースを起動して、マウントを実行します。ただし、データベースはオープンしないでください。RMAN プロンプトで、register database コマンドを実行します。
|
リカバリカタログ内のインカネーションのリセット
|
reset database コマンドを実行することにより、リカバリカタログ内に新しいデータベースインカネーションレコードを作成するように RMAN に指示します。
|
RMAN リポジトリ内の情報のクロスチェック
|
NetBackup では、Oracle から独立してイメージを期限切れにできるため、RMAN リポジトリに期限切れ情報を含めることができます。リカバリカタログまたは制御ファイルのデータがバックアップイメージカタログのデータと同期していることを確認するために、RMAN のクロスチェックを実行します。クロスチェックでは NetBackup で各バックアップピースの存在を問い合わせ、RMAN リポジトリで利用可能または期限切れとマーク付けします。指定ファイルを調べるには次のコマンドの 1 つを使用します。イメージまたはリポジトリレコードを削除するには別のコマンドを実行する必要があります。
change...crosscheck コマンドでは、NetBackup に問い合わせすることによってバックアップピースが利用可能かどうかが判断されます。利用できない場合、RMAN によって期限切れとマーク付けされます。バックアップピースが期限切れになっていても現在利用可能な場合、RMAN によって利用可能とマーク付けされます。コマンドの構文は次のとおりです。 change backuppiece {primary_keylist |
filename_list | tag} crosscheck;
change backupset {primary_keylist} crosscheck;
RMAN のクロスチェックを実行する時間は複数の要因によって決まります。 クロスチェックされる RMAN バックアップピースの数。 RMAN のバックアップピースの数、または NetBackup の保持期間を過ぎた RMAN のバックアップピースの数 (RMAN ではなく NetBackup で期限切れにされる場合)。 RMAN バックアップピース名の形式、およびVeritas推奨の _%t が形式文の最後に表示されるかどうか。 Oracle クライアントの数。 すべての種類の NetBackup ポリシーの数。 NetBackup がバックアップを保持する時間と、NetBackup カタログのクライアントのバックアップイメージの数。 RMAN カタログメンテナンス操作のスケジュール時間とその間隔。 NetBackup プライマリサーバー上のホスト名およびリバースホスト名解決の速度と精度。 各クロスチェック要求中に NetBackup プライマリサーバーによって実行される操作の数と複雑さ。 通常のパフォーマンス。
|
Oracle Copilot 共有を使用したクロスチェック
|
RMAN 外で Oracle Copilot 共有のファイルが削除された場合、それ以降にその共有で行われる増分結合バックアップが失敗します。さらにエラーが発生しないように、次回のバックアップの前に共有の RMAN クロスチェックを行う必要があります。この場合の RMAN クロスチェックでは type SBT_TAPE ではなく type disk を指定する必要があるため、他のクロスチェックの例とは少し異なります。この RMAN クロスチェックを実行する場合のデフォルトは NetBackup_policyname です。ただし、[Oracle]タブで[データファイルコピータグ (Datafile copy tag)]を変更した場合、NetBackup_policyname の代わりにそのタグ名を使用する必要があります。以下に、デフォルトの NetBackup_policyname を使用したコマンドの構文の例を示します。
Run {
Allocate channel ch00 type 'disk';
crosscheck backup tag <Netbackup_policyname>;
delete noprompt expired backup;
crosscheck copy <Netbackup_policyname>;
delete noprompt expired copy;
release channel ch00;
}
|
古いバックアップの削除
|
DELETE OBSOLETE コマンドは、指定のリカバリ可能性の要件を満たす必要がなくなったバックアップを削除します。構成されたデフォルトの保持ポリシー、または DELETE OBSOLETE オプションが別個に指定する保持ポリシーに従って、古いピースを削除できます。DELETE コマンドの他のフォームと同様、削除されたファイルはバックアップメディアから削除されます (NetBackup から期限切れになります)。その後でリカバリカタログから削除され、制御ファイルに DELETED とマークされます。
引数なしで DELETE OBSOLETE コマンドを指定すると、RMAN は、現在構成されている保持ポリシーによって定義されたすべての古いバックアップを削除します。例:
Allocate channel for maintenance type 'SBT_TAPE';
DELETE OBSOLETE;
REDUNDANCY 句または RECOVERY WINDOW 句を DELETE と併せて使用することで、構成されたデフォルトのポリシーではなく特定の保持ポリシーを適用して古いバックアップを削除することもできます。
DELETE OBSOLETE REDUNDANCY = 3;
DELETE OBSOLETE RECOVERY WINDOW OR 7 DAYS;
|
期限切れバックアップの削除
|
delete expired backupset コマンドは、リカバリカタログ内の期限切れのバックアップピースに対してのみ有効です。RMAN は、期限切れのバックアップピースをリカバリカタログから削除し、バックアップメディアからも削除します (NetBackup から期限切れにします)。
データベース内の期限切れのバックアップをリカバリカタログから削除するには、RMAN を起動し、ターゲットデータベースおよびリカバリカタログデータベースに接続します。RMAN コマンドプロンプトで、次のコマンドを入力します。
allocate channel for maintenance type
'SBT_TAPE';
delete expired backupset of database;
crosscheck および delete backupset コマンドはオブジェクトのリストを操作が行われているオブジェクトに制限します。この制限は、指定された Oracle デバイスタイプ (ディスクまたは SBT テープ)、オブジェクトタイプ (アーカイブされたログまたはデータベースファイル)、および日付範囲に適用されます。
|
リカバリカタログの再同期化
|
RMAN では、リカバリカタログが、ターゲットデータベースの現在の制御ファイルまたはバックアップ制御ファイルと比較されます。これに続いて、見つからない情報または変更された情報でカタログを更新します。
ARCHIVELOG モードで実行している場合、ログの切り替えが発生したり REDO ログをアーカイブする際に自動的にリカバリカタログが更新されないため、リカバリカタログの再同期化を定期的に行ってください。
ターゲットデータベースの物理構造を変更した場合にも、リカバリカタログを再同期化する必要があります。ログアーカイブ操作の場合、物理スキーマが変更されたときにリカバリカタログは自動的に更新されません。
RMAN の backup、copy、restore、switch の各コマンドは、ターゲットデータベースの制御ファイルが利用可能なときに自動的にリカバリカタログを更新します。リカバリカタログのデータベースは、これらのコマンドのうち 1 つが実行されるときに利用可能です。
backup コマンドまたは copy コマンドを実行したときにリカバリカタログが利用できない場合、手動でリカバリカタログを再同期化する必要があります。
リカバリカタログを再同期化するには、RMAN を起動し、resync catalog コマンドを実行します。
|
バックアップセットまたはファイルコピーの可用性の変更
|
バックアップセット、バックアップピース、データファイルコピーまたはアーカイブ REDO ログの状態が変更されたことを、RMAN に定期的に通知する必要があります。RMAN の change コマンドを実行すると、有効なレコード変更をさまざまな方法で実行することができます。
change ... uncatalog コマンドでは、バックアップピース、データファイルコピーまたはアーカイブログへの参照がリカバリカタログから削除されます。このコマンドは、リカバリカタログを使用する場合にのみ有効です。
change ... delete コマンドでは、バックアップピース、データファイルコピーまたはアーカイブログへの参照が、制御ファイルおよびリカバリカタログから削除されます。このコマンドでは、ファイルが物理的に削除されます。このコマンドは、リカバリカタログ使用の有無に関係なく有効です。
change ... crosscheck コマンドでは、バックアップピース、データファイルコピーまたはアーカイブログへの参照が、制御ファイルおよびリカバリカタログから削除されます。参照は、そのファイルが存在しなくなると削除されます。このコマンドは、リカバリカタログ使用の有無に関係なく有効です。
change ... unavailable コマンドでは、バックアップピース、データファイルコピーまたはアーカイブログに利用不可能とマーク付けされます。このコマンドは、リカバリカタログを使用する場合にのみ有効です。
|
バックアップからのリストアの妥当性チェック
|
リストア検証では、ストレージ (NetBackup) からバックアップピースを取得し、取得したピースが完全な状態であることを確認しますが、内容をデータベースに保存することなく、そのバックアップピースを破棄します。
テストを行うバックアップを RMAN で選択する場合、restore ... validate を実行します。
テストを行うバックアップセットを指定する場合、validate backupset を実行します。
|