Oracle バックアップ | WEBエンジニア社長のブログ

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;