Oracle Database で rman を使って制御ファイルと SPFILE が変更されると自動的にバックアップされるようにする方法。
rman リポジトリには制御ファイルを使う構成。
設定する。
$ su - oracle $ rman target / nocatalog RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup01/backup_data/oracle/orcl/rman/%F'; RMAN> SHOW ALL; RMAN> EXIT
制御ファイルを変更すると、自動的にバックアップが取得されることを確認する。
$ sqlplus / as sysdba SQL> create tablespace test datafile '/u02/oradata/orcl/test01.dbf' size 5m; SQL> exit $ ls -l /backup01/backup_data/oracle/orcl/rman -rw-r----- 1 oracle oinstall 12550144 Jan 19 11:28 c-2080349925-20100119-04 -rw-r----- 1 oracle oinstall 12550144 Jan 19 11:29 c-2080349925-20100119-05 $ sqlplus / as sysdba SQL> drop tablespace test including contents and datafiles cascade constraints;
うまくいかないときは、アラートログを確認すべし。以下はバックアップ先のパスにスペースが入っていて自動バックアップに失敗したときのエラーメッセージ。
$ less $ORACLE_HOME/admin/bbump/alert_orcl.log drop tablespace test including contents and datafiles cascade constraints Tue Jan 19 11:27:37 2010 Deleted file /u02/oradata/orcl/test01.dbf Starting control autobackup ******************** WARNING *************************** The errors during Server autobackup are not fatal, as it is attempted after sucessful completion of the command. However, it is recomended to take an RMAN control file backup as soon as possible because the Autobackup failed with the following error: ORA-19624: operation failed, retry possible ORA-19504: failed to create file "/u01/app/oracle/product/10.2.0/db_1/dbs/ /backup01/backup_data/oracle/orcl/rman/c-2080349925-20100119-03" ORA-27040: file create error, unable to create file Linux-x86_64 Error: 2: No such file or directory ******************** END OF WARNING ******************* Completed: drop tablespace test including contents and datafiles cascade constraints
SPFILE を変更してみると、
SQL> show parameter sga_target SQL> alter system set sga_target = 1G scope=both; SQL> show parameter sga_target SQL> alter system set sga_target = 2G scope=both; SQL> show parameter sga_target SQL> exit $ ls -l /backup01/backup_data/oracle/orcl/rman total 24544 -rw-r----- 1 oracle oinstall 12550144 Jan 19 11:28 c-2080349925-20100119-04 -rw-r----- 1 oracle oinstall 12550144 Jan 19 11:29 c-2080349925-20100119-05
あれ?バックアップが取得されてない。
OTN のドキュメントを見てみると、
制御ファイル内のデータベースの構造メタデータが変更されたり、バックアップ・レコードが追加されると、Recovery Managerは、制御ファイルおよびサーバー・パラメータ・ファイルを自動的にバックアップするように構成できます。
バックアップおよびリカバリの設定と構成
なるほど。制御ファイルが変更されると、制御ファイルと SPFILE が自動バックアップされる。つまり、SPFILE を変更しても自動バックアップされないということか。