Recovery Managerのチューニング・ポイント集 : Oracleバックアップ/リカバリ講座(10) (2/4 ページ)
取得したバックアップを使用して、実際にリストア/リカバリを実行する機会はなかなかあるものではありません。RMANでは、取得したバックアップを使用してリストア/リカバリが可能かを事前に確認できます。具体的にはリスト3のようなコマンドを実行することで、取得したバックアップ・セットを実際に読み込み、リストア可能か、また破損していないかなどを検証できます。
RMAN> list backup;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
バックアップ・セットのリスト
===================
BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
49 Full 519.13M DISK 00:02:15 06-10-24
BPキー: 49 ステータス: AVAILABLE 圧縮: NO タグ: TAG20061024T
190625 ピース名: /opt/app/oracle/oraback/file_20i0lrdh_1_1
バックアップ・セット49のデータファイルのリスト
File LV Type Ckp SCN Ckp時間 Name
---- -- ---- ---------- -------- ----
1 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/syste
m01.dbf
2 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/undot
bs01.dbf
3 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/sysau
x01.dbf
4 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/users
01.dbf
7 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/indx1
01.dbf
8 Full 519388 06-10-24 /opt/app/oracle/oradata/v102/indx1
02.dbf
RMAN> validate backupset 49;
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: sid=144 devtype=DISK
チャネル: ORA_DISK_2が割り当てられました
チャネルORA_DISK_2: sid=158 devtype=DISK
チャネル: ORA_DISK_3が割り当てられました
チャネルORA_DISK_3: sid=153 devtype=DISK
チャネルORA_DISK_1: データファイル・バックアップ・セットの検証を開始しています
チャネルORA_DISK_1: バックアップ・ピース/opt/app/oracle/oraback/file_20i0lrdh_1_1から読取り中です
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
ピース・ハンドル=/opt/app/oracle/oraback/file_20i0lrdh_1_1 タグ=TAG20061024T190625
チャネルORA_DISK_1: 検証が完了しました。経過時間: 00:00:37
RMAN>
リスト3 取得したバックアップ・セットの妥当性検査
この例では、まずLISTコマンドの出力結果から、検証の対象とするバックアップ・セットの一意な番号(リスト内の赤字部分:BS Key列)を確認しています。ここでは、「49」のバックアップ・セットの検証を行うために、「validate backupset」コマンドの引数に「49」を指定しています。コマンドの実行結果として「検証が完了しました」というメッセージが出力された場合には、対象のバックアップ・セットのリストア、破損の検証が正常に終了したことを示しています。
バックアップのテスト時や、バックアップの完了時刻がいつもより遅い場合など、バックアップがあとどのくらいで完了するかを確認したいことがあると思います。そのような場合には、V$SESSION_LONGOPS動的パフォーマンスビューを参照してバックアップの進ちょく状況を確認することで、完了時間を推測することができます。以下の例では、バックアップ開始から「312秒」経過しており、全体の「73.02%」のバックアップが取得されたことを示しています。
SQL> select sid,opname,
2 to_char(start_time,'YY/MM/DD HH24:MI:SS') start_time,
3 to_char(sysdate,'YY/MM/DD HH24:MI:SS') this_time,
4 to_char((sysdate-start_time)*24*60*60) "ELAP_TIME(s)",
5 round(sofar/totalwork*100,2) "%"
6 from v$session_longops
7 where opname like '%RMAN%'
8 and opname not like '%aggregate%'
9 and totalwork<>0
10 order by start_time,sid;
SID OPNAME START_TIME THIS_TIME
ELAP_TIME(s) %
------ ------------------------------ -------------------- ---------
----------- --------------- ----------
159 RMAN: full datafile backup 06/12/18 22:05:53 06/12/18
22:11:05 312 73.02
Copyright © ITmedia, Inc. All Rights Reserved.