SPFILEの移動とかって(パスワードファイルの移動も)
Windows版の話。Linux、UNIX、OSXについてはシンボリックリンクでも張っておけ。
難しくもないし、普通の事だと思うのだが、色々思うところがあったので、
文章として残す。
・そもそも何故、SPFileを移動させる必要が出てきたか?
簡単に言うとバックアップの為である。
(狙い打ちでバックアップ取ればいいじゃんとか言って石投げないでください!!)
今、携わっているシステムのバックアップはドライブ単位でレプリケーションを行うことで実現している
Oracle本体がインストールされているドライブのバックアップの対象となっておらず、
(SPFileは放っておくと$ORACLE_HOME/database/配下に作成されるためバックアップされない)
データファイル、コントロールファイル、ログファイルのドライブのみである。
要件の中にSPFileのバックアップも取ることになっているため、
バックアップ対象のドライブにSPFileを設置しておく必要がある
・んじゃその方法
要はSPFileの在処を$ORACLE_HOME/database/配下のpfileに
SPFile='K:?SPFile?spfileHOGE.ora'とか書いて、
そこにcreate spfileで作ったファイルをコピーしておくだけである。
Pfile指定無しでDB起動すると$ORACLE_HOME/database/配下の
SPFileを読みに行くので注意してね。
・最初から移動先のSPFileを見るようにDB作りゃ良いじゃん?
あー、そうですとも、おっしゃるとおり。しかし、DBCAを使うと
初期化パラメータSPFileを変更すると、CREATE DBが流れたときにエラーになります。
少なくとも10gは。単にSPfileが無い!って怒られるだけなんだけどさ、
これ11gではきちんと直っていると良いねぇ。
手打ちで作れば良いんだけどまぁ、いいじゃん。
8iの頃から比べると良くなっているよDBCA。
・ついでにパスワードファイルも移動してみる
Windows版は、パスワードファイルの「物理的な」移動が出来るよ。
UNIX系では、リンク貼れば良いだけなのに(たぶん)
Windowsはレジストリに手を出します。
以下のキーを追加し、値をパスワードファイルまでのファイル名込みのフルパスにするだけ。
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home\ORA_インスタンス名_PWFILE
これをやった理由もSPFileの移動と同じ。
頻繁に初期化パラメータが変更されるわけでもないのに、
毎日バックアップする必要が有るのかどうか・・・
定期的にCreate pfile from spfileして、それを何処かに待避させておけば
良いような気もするのだが・・。それはさておき・・・。