毎晩実行されているbashスクリプトを備えたOracle10gサーバーを入手しました。このサーバーは、各データファイルを抽出し、bashスクリプト自体から起動されてバックアップを作成するrmanスクリプトを作成します。
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/opt/Oracle/archivelogs/autobackup_control_file%F';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CROSSCHECK ARCHIVELOG ALL;
CROSSCHECK BACKUP;
ALLOCATE CHANNEL RMAN_BACK_CH01 TYPE DISK;
COPY LEVEL 0
DATAFILE 1 TO '/opt/Oracle/backup/datafile1.dbf'
, DATAFILE 2 TO '/opt/Oracle/backup/datafile2.dbf'
...
, DATAFILE N TO '/opt/Oracle/backup/datafileN.dbf'
;
SQL 'alter system archive log current';
BACKUP FORMAT '/opt/Oracle/archivelogs/archive_logs_%d_%s-%t.bck' ARCHIVELOG ALL DELETE INPUT;
BACKUP CURRENT CONTROLFILE FORMAT '/opt/Oracle/archivelogs/controlfile_%d_%s-%t.bck';
RELEASE CHANNEL RMAN_BACK_CH01;
}
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT BACKUP OF ARCHIVELOG UNTIL TIME='sysdate-6';
スクリプトからわかるように、バックアップはデータファイルのコピーとアーカイブログのバックアップを介して行われます。私は2つの質問を受けました:
アーカイブログディレクトリで、スクリプトは2つの制御ファイルバックアップ(autobackup_control_filec- *とcontrolfile_SID _)を作成します。これらはまったく同じサイズ(6.1MBと6.2MB)ですが、まったく同じではありません。controlfile_SID_ファイルの作成は構文ですが、autobackup_control_filec- *が作成されたときは?おそらくBACKUP ARCHIVELOG ALL
コマンド?そして、なぜこの異なるサイズ?両方が制御ファイルのバックアップである場合、同じサイズであると思います。
データファイルのバックアップローテーションは正常に機能しているようです。毎日/ opt/Oracle/backupで最新のバックアップスケジュールのバックアップファイルのみを見つけましたが、ログには古いバックアップの削除や上書きのメッセージの痕跡はありません。私は考えます COPY LEVEL 0
コマンドは警告なしに上書きします、正しいですか?
CONFIGURE CONTROLFILE AUTOBACKUPがONの場合、RMANは、バックアップの成功をRMANリポジトリに記録する必要がある場合と、バックアップの成功を記録する必要がある場合の2つの状況のいずれかで、制御ファイルと現在のサーバーパラメータファイル(データベースの起動に使用される場合)を自動的にバックアップします。データベースの構造変更は制御ファイルの内容に影響を与えるため、バックアップする必要があります。
これは、制御ファイルが次の状況でバックアップされることを意味します。
- RMANプロンプトで発行されたすべてのBACKUPコマンドの後。
- RUNブロックの最後で、ブロック内の最後のコマンドがBACKUPだった場合。
- RUNブロック内のBACKUPコマンドの後に、BACKUPではないコマンドが続く場合は常に。
あなたの場合、バックアップはRELEASECHANNELの前に作成されます。自動バックアップは、COPY、BACKUP ... ARCHIVELOG、およびBACKUP ... CONTROLFILEの後に発生しますが、これらは同じRUNブロックにあるため、後で自動バックアップを実行するのに十分な場合に、不必要に3回自動バックアップを作成する作業を実行するのはなぜですか。最後のBACKUPコマンド?
自動バックアップにはSPFILEも含まれているため、サイズが異なります。
自動バックアップは制御ファイルのバックアップ後に終了するため、自動バックアップには前の制御ファイルのバックアップを指すエントリが含まれますが、前の制御ファイルのバックアップは自動バックアップを認識しません。これは、それらの別の違いです。
制御ファイルが大きくなると、すぐに必要なスペースよりも多くのスペースが割り当てられ、後で使用できる空きスペースが残ります。このため、制御ファイルと制御ファイルの自動バックアップは同じサイズにすることができますが(SPFILEが使用されていない場合)、それらの内容は異なります。古くなったエントリを制御ファイルで再利用して、制御ファイルが大きくなりすぎるのを防ぐこともできます。
DELETE NOPROMPT BACKUP OF ARCHIVELOG UNTIL TIME='sysdate-6'
6日より古いアーカイブログバックアップを削除します。