spfileを変更したら接続できなくなった
- 2008.10.02
- Oracle
オペレーティング認証、conn / as sysdbaができない状態だったので、Oracleデータベース管理の教科書を参考に初期化パラメータを変更したら、connで接続できないし、startupもできない状態になってしまった。
元に戻す方法をメモしておいた。
■初期化パラメータを変更した
初期化パラメータファイルのREMOTE_LOGIN_PASSWORDFILEパラメータを確認した。
SQL> show parameter remote_login_passwordfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string EXCLUSIVE
VALUEをEXCLUSIVEからNONEに変更してみた。
SQL> alter system set remote_login_passwordfile=none scope=spfile;
EXCLUSIVE: GRANT文を使用して、SYS以外のユーザーをパスワードファイルに追加できる。
SHARED: 複数のインスタンスがアクセスできるパスワードファイルを使用できる。SYSユーザだけパスワードファイルに追加できる。
NONE: パスワード・ファイルを無視する。特権ユーザはOSによって認証される必要がある。
そして、再起動するために一度、シャットダウンした。
SQL> shutdown immediate
■そしたら、ひどいことになった
SQL*Plusを一度終了し、再度接続してみたところ、エラーが発生した。
SQL> conn sys as sysdba Enter password: Connected to an idle instance. SQL> startup ORA-01031: insufficient privileges
■元に戻す
Oracleのサポセンに電話して、元に戻す方法を教えてもらった。
spfileの運用から、pfileでの運用に切り換える。
ます、spfileを作る。SQL*Plusで作業する。
SQL> conn sys as sysdba SQL> create pfile from spfile; File created.
spfileを捨てる。spfile + SID名 + .ora というファイル名をリネームすればよい。
$ cd $ORACLE_HOME/dbs $ mv spfileorcl.ora spfileorcl.ora.OLD
initorcl.oraを書き換える。init + SID名 + .ora というファイルを編集して、今回変更した初期化パラメータを元に戻す。
変更前 *.remote_login_passwordfile='NONE' 変更後 *.remote_login_passwordfile='EXCLUSIVE'
startupもできるようになった。めでたし。
SQL> startup ORACLE instance started. Total System Global Area 1610612736 bytes Fixed Size 2466304 bytes Variable Size 395861504 bytes Database Buffers 1207959552 bytes Redo Buffers 4325376 bytes Database mounted. Database opened.
■pfile運用からspfile運用に戻す
SPFILE運用に戻したければ、spfileをもう一度作り直す。
SQL> create spfile from pfile;
-
前の記事
conn / as sysdba で接続できない | Oracle 2008.10.02
-
次の記事
PassThru運用 2008.10.07