dポイントプレゼントキャンペーン実施中!

お世話になります。Oracle11gをWindowsVistaにインストールし、SQL、PL/SQLの勉強をしている初心者です。
ファイル操作の勉強をしようと思い、UTL_FILE_DIRの変更を試みたところ、データベースが起動しなくなってしまいました。databaseフォルダにあるoradim.logを確認したところ、次の記録がありました。

Fri Dec 18 00:30:04 2009
E:\app\taro\product\11.1.0\db_1\bin\oradim.exe -startup -sid orcl -usrpwd * -log oradim.log -nocheck 0
Fri Dec 18 00:30:04 2009
ORA-01078: failure in processing system parameters
LRM-00109: ?p?????[?^?E?t?@?C??'E:\APP\TARO\PRODUCT\11.1.0\DB_1\DATABASE\INITORCL.ORA'???I?[?v?????????????B

いろいろと検索してみたのですが、復旧方法がわからず困っております。お助けいただければ幸いです。
何卒、よろしくお願いいたします。

A 回答 (2件)

初期化パラメータファイルは制御ファイルのように多重化されておらず、日常のデータベースバックアップでも忘れられがちなので、一度破壊されると復旧は結構厄介です(バイナリのSPFILEともなればなおさら)。



※以下、テキスト形式のパラメータファイルを"PFILE"、バイナリ形式のパラメータファイルを"SPFILE"と呼びます。

(1)とりあえずSPFILExxxx.ORA(おそらくSPFILEORCL.ORA)をSPFILE.ORA.BAK等にリネームする(バックアップ兼Oracleから認識されないようにする)
(2)一度でもデータベースを正常起動したのでしたら、アラートログに「(パラメータファイルから読み込んで)設定した非デフォルトのパラメータ」が列挙されているので、その記述と(1)のSPFILEを元に、PFILE (INITORCL.ORA)を作成し、データベースの起動を試みる(起動できるまでは何度か編集することになりますので、PFILEのまま運用する)。
(3)以後PFILE(INITORCL.ORA)のままで運用されるならこのままでも結構ですが、元通りSPFILEでの運用を希望されるのでしたら、以下のSQL文でSPFILEを再作成します。
CREATE SPFILE FROM PFILE;
    • good
    • 0
この回答へのお礼

shi7474 様 おかげ様で無事復旧しました。ありがとうございました。
たまたま正常に起動していたときの、HDのバックアップをとってあったので、
SPFILEをそのまま上書きしたら、起動してくれました。
本当に助かりました。また、復旧方法の詳細も勉強させていただき、
感謝しております。ありがとうございました。

お礼日時:2009/12/20 21:45

UTL_FILE_DIRの変更を行ったとありますが、どのような方法で行いましたか。

INITORCL.ORA(テキストファイル)を編集したのでしたら、知らない間に拡張子が付いていた(INITORCL.ORA.TXTとか)ということはないですか。
    • good
    • 0
この回答へのお礼

さっそくご回答いただき、感謝しております。
%ORACLE_HOME%\database\SPFILE××.ORAをメモ帳で変更してしまいました。
バイナリなので、やはり大変なことをしてしまった・・・、と思いますが
見かけ上、問題がなかったので楽観していました。
もしこれが原因であれば、spfileを初期化できればありがたいのですが。
お世話になります。

お礼日時:2009/12/20 14:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!