うんちくメモ

ただのメモです。内容は妄想の可能性があります

RMANコマンドメモ

●いつも忘れるのでメモ書き
■確認系
バックアップ簡易確認

list backup summary;


■クロスチェック系
※archivelogやbackupsetに対して実施

crosscheck [実行対象];
CROSSCHECK BACKUPSET;
CROSSCHECK ARCHIVELOG ALL;
CROSSCHECK COPY;

EXPIRED対象の削除
※クロスチェック後実施

delete expired [実行対象];


■バックアップ登録系
※バックアップセットをカタログに再登録

catalog backuppiece 'バックアップセットファイルパス';


■メンテナンス系
アーカイブログリストア
※全アーカイブリストア
★全アーカイブのリストアを実施する場合、実際のアーカイブログが連続していない場合には、リストア対象のアーカイブ以外に、連続していない欠損部分のアーカイブログのリストアも可能であることが条件となるようだ。
(例:arc1,arc3,arc4 という状態でarc5をリストアするケース。この場合はarc2,arc5をリストア可能でなければエラーとなり、arc5をリストア出来ない)
★これはcrosscheck,delete expiredを行なった場合でも同様に見受けられる。
★通常運用時は別途実アーカイブログのメンテナンスも行なっているので、現実的にはリストアに使用可能なバックアップを把握しつつ、後述の指定形式でリストアをする必要が有るようだ。

restore archivelog all;

※指定期日のアーカイブ「から」リストア
(期日はV$BACKUP_REDOLOGのFIRSTTIMEの値で判断されるため注意)

restore archivelog from time "to_date('2010-08-30 00:00:00','YYYY-MM-DD HH24:MI:SS')";

※指定期日範囲のアーカイブを削除
(期日はry)

delete archivelog time between "to_date('2010-08-23 00:00:00','YYYY-MM-DD HH24:MI:SS')" and "to_date('2010-08-25 23:59:59','YYYY-MM-DD HH24:MI:SS')";

※SEQUENCEを直指定してのアーカイブ削除
RAC環境の場合はthread指定に注意

restore archivelog sequence=[アーカイブ番号] thread=[スレッド番号];

※SEQUENCE範囲を指定してのアーカイブ削除
RAC環境の場合はthread指定に注意

restore archivelog from sequence=[アーカイブ番号] thread=[スレッド番号];

※バックアップセット番号を指定して削除

delete backupset until backupset 9;

※一度以上バックアップされたアーカイブログ以外を圧縮してバックアップ

BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL NOT BACKED UP 1 TIMES FORMAT 'F:\orabkup\backupset\arch\%T_%U_arc';

一度以上バックアップされたものの内、1日以上前の実アーカイブログを削除

DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-1' BACKED UP 1 TIMES TO DEVICE TYPE DISK;