y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

オラクルのバックアップ、リストア

またまたオラクルネタ。
データベース管理の最重要課題、バックアップ/リストアなのである。
なんでもそうだと思うが、「最悪の事態に備えた準備」があるかないかで、安心感が全然違うのである。
テープバックアップ、リストアを経験しておけば、サーバダウンの恐怖が減るし、ディスク交換・リビルドを知っていればHDD障害も怖くない。
・・・でオラクルのバックアップ/リストア。
「オラクルってなんて素直なんだ」と感動しきり。
単純なファイルコピーで(コールド)バックアップ/リストアする方法と、オンラインのスケジュールバックアップ/リストアする方法がある。
コールドバックアップ/リストアの方は、制御ファイル、ユーザデータ、システムデータ、トランザクションデータをそれぞれファイルコピーするだけ。

ターゲットのOracleインスタンスでデータベースを停止して、Oracle\OraDataの下の全ファイルをコピー。AccessMDBをコピーするかのようなイージーウェイ。素敵だ。

バイナリの制御ファイル(spfile)をコマンドで書き換えてやることで、復元時には別のドライブにすることも可能。
この手法を使えば、データベースデバイスの領域サイズを拡張したい場合や、高速なHDDに交換するなんていうことが簡単に実現できる。


これがMS-SQLMSDEの場合には、やれMSDBだのTEMDBだのとやかましい。
結局はデータとトランザクションログとシステムデータベースとテンポラリデータベースをコピーするわけだが、どうにもこうにもバイナリを、専用ツールで扱う感じが面倒。

オンラインスケジュールバックアップ/リストアの方は、専用の管理ツールである”OracleEnterpriseManager”を使う。
MSDEMSSQLでもEnterpriseManagerでバックアップ/リストアを行うのと全く同じ。)
こちらのツールのバックアップ/リストア機能は、ArcserveやBackupExecの使い方に似てる。
決まった時間、決まった曜日などでスケジュールとダンプファイル名を指定。OSのアクセス権はバッチジョブとして実行を許可したバックアップユーザで行い、データベース管理者権限をエージェントユーザに与える。
バックアップ/リストアジョブは、一覧表示することが出来、ステータスやログを参照できる。
簡単に言っているが、実際にはOracleEnterpriseManagerを正しくセットアップして、ジョブを動作させるための権限設定する部分などは、丸一日を要して理解した。

ともあれ、これでオラクルデータベース(Oracle9i以降)のバックアップ/リストアは完璧(か?)。
顧客のDBをバックアップして、社内環境にリストアしたり、またはその逆で社内環境で構築したDBを顧客環境に配置したり、顧客環境でディスク拡張やらが出来るようになった。
我ながら「おっさん、頑張った!」と褒めてやりたい。