Oracle バックアップ
Oracleのデータベース管理から離れて2年。結構忘れてしまっていました。当時は寝ながらでもできたんですがねぇ。。
他は何もわからなくとも、とにかくバックアップとリストアだけはできないとDBAとして務まりませんから、復習の意味でまとめていきます。
【バックアップ対象】
Oracleでバックアップを取っておかなければならないものは以下の通り。
・TABLESPACE
・REDOログファイル
・CONTROLファイル
・初期化パラメータファイル
【バックアップ対象確認方法】
バックアップを取るには、それぞれ、ファイルがどこにあるのか確認しなければならない。
・TABLESPACE
select file_name,file_id,tablespace_name from dba_data_files;
・REDOログファイル
select * from v$logfile;
・CONTROLファイル
select * from v$controlfile;
・初期化パラメータファイル
create pfile='(path)' from spfile;
(これでバックアップにもなる)
【バックアップ:コールドバックアップ】
データベースを停止させ、データファイルをOSのコピーコマンドを使って行う。
1) Oracleを停止する。
shutdown immediate
(ユーザーのセッションが切れるのを待たずに強制終了)
2) バックアップ対象(データファイル)をOSのコマンドを使ってコピーする
3) Oracleを開始する。
start open
【バックアップ:オンライン・ホットバックアップ】
1) REDOログファイルからデータファイルに書き込まれていないデータを極力なくす
alter system switch logfile;
をREDOログファイルの数分実行
2) テーブルスペースごとにバックアップ
alter tablespace SYSTEM begin backup;
hot start /wait xcopy (datafile_path) (backup_path) /E /H /Y
alter tablespace SYSTEM end backup;
3) CONTROLファイルのバックアップ
alter database backup controlfile to '(backup_path)';
【バックアップ:オフライン・ホットバックアップ】
オンライン・ホットバックアップと異なるのは 2) だけで他は同じ。
2) テーブルスペースごとにバックアップ
alter tablespace SYSTEM offline;
hot start /wait xcopy (datafile_path) (backup_path) /E /H /Y
alter tablespace SYSTEM online;