データベース全体を一括バックアップしたい場合
データベース全体をバックアップモードに切替えて、コールドバックアップする方法の一例。
(1) 変更前の状態を確認
動的パフォーマンスビュー v$datafile、v$tablespace を参照する。
SQL> select distinct ts.name,bu.status from v$datafile df,v$backup bu,v$tablespace ts where df.file# = bu.file# and df.ts# = ts.ts#; NAME STATUS -------- ---------- HOGE NOT ACTIVE SYSAUX NOT ACTIVE SYSTEM NOT ACTIVE UNDOTBS1 NOT ACTIVE
–> ステータスが NOT ACTIVE (非バックアップモード状態) であること
補足
・ステータスが ACTIVE のデータファイルが存在した場合、
alter database begin backup の実行は失敗するので注意。
・v$backup だけでは対応する表領域が分からないので、
上記SQLでは v$datafile と結合している。
SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ----- ---------- ---------- -------- 1 NOT ACTIVE 2.7920E+10 09-07-23 2 NOT ACTIVE 2.7920E+10 09-07-23 3 NOT ACTIVE 2.7920E+10 09-07-23 4 NOT ACTIVE 2.7920E+10 09-07-23
(2) アーカイブログモード確認
SQL> select log_mode from v$database; LOG_MODE ---------- ARCHIVELOG
–> NOARCHIVELOG の場合は、アーカイブログモードへ切替える必要がある。
(3) バックアップモード開始
SQL> alter database begin backup; データベースが変更されました。
補足
もしノーアーカイブログモードで begin backup した場合はエラーとなる。
SQL> alter database begin backup; alter database begin backup * 行1でエラーが発生しました。: ORA-01123: オンライン・バックアップを開始できません。メディア・リカバリが使用不可です。
(4) 変更後の状態を確認
SQL> select distinct ts.name,bu.status from v$datafile df,v$backup bu,v$tablespace ts where df.file# = bu.file# and df.ts# = ts.ts#; NAME STATUS -------- ------ HOGE ACTIVE SYSAUX ACTIVE SYSTEM ACTIVE UNDOTBS1 ACTIVE
–> ステータスが ACTIVE (バックアップモード状態) であること
(5) OS コマンドでバックアップ取得
完全なコールドバックアップを取得するなら、データファイルだけでなく
制御ファイルやアーカイブログファイルも取得する。
(6) バックアップモード終了
SQL> alter database end backup; データベースが変更されました。
(7) 変更後の状態を確認
SQL> select distinct ts.name,bu.status from v$datafile df,v$backup bu,v$tablespace ts where df.file# = bu.file# and df.ts# = ts.ts#; NAME STATUS -------- ---------- HOGE NOT ACTIVE SYSAUX NOT ACTIVE SYSTEM NOT ACTIVE UNDOTBS1 NOT ACTIVE
–> ステータスが NOT ACTIVE (非バックアップモード状態) であること