sysdba登入 ORA-01017:使用者名稱密碼出錯 故障排查例項

n-lauren發表於2013-08-13
一次以前同事call,說是資料庫的sys登入不了系統叻。普通使用者連線可以登入,只要是as sysdba就提示ORA-01017:使用者名稱密碼出錯。 

很顯然這是一個典型的sysdba登入的問題。 

首先要他檢視了sqlnet檔案。SQLNET.AUTHENTICATION_SERVICES= (NONE) 啟動密碼檔案驗證了, 

接著檢視$ORACLE_HOME/dbs/下有沒有orapw$ORACLE_SID的檔案,確定有。 

接著檢視remote_login_passwordfile的值,我估計這時他的值一定是NONE,而不是EXCLUSIVE 

不過怎麼來確定這個推斷了。remote_login_passwordfile是init的引數,我們可以通過show parameters remote_login_passwordfile來檢視,也可以直接檢視spfile檔案,spfile雖然是二進位制檔案,不過裡面的內容是看到文字的 

more $ORACLE_HOME/dbs/spfile$SID.ora. 

最後發現確實remote_login_passwordfile=none。 

現在問題大致上應該確定了,就是remote_login_passwordfile的設定問題了。開始著手解決,先遮蔽掉sqlnet.ora裡SQLNET.AUTHENTICATION_SERVICES= (NONE)使得本機的 sqlplus “/ as sysdba” 可以進去 

SQL>startup mount 

SQL>show parameters remote_login_passwordfile; 

這時出來的值是none,修改值為exclusive 

SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile; 

SQL>shutdown immediate 

SQL>startup 

SQL>select * from v$pwfile_users; 

看有沒有結果出來,一切OK。 

現在登入,遠端和本機都已經OK叻。 

朋友這時候才想起來,前幾天自己在設定sysdba遠端的時候,試到這裡就放下來了,而後一直都沒有用遠端登入,知道今天用遠端登入才發現出現這個問題。 

這個問題還有一個很快的方式,自己找到init.ora裡remote_login_passwordfile那行,在後面加上EXCLUSIVE。然後從pfile啟動就可以了。 

SQL>startup pfile=’$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora’; 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22990797/viewspace-768389/,如需轉載,請註明出處,否則將追究法律責任。

相關文章