事件緣由:
使用sys賬戶建立了乙個資料清理的儲存過程,再建立乙個oracle job定時執行這個儲存過程,用於做表資料的清理。第二天看表資料未刪除,說明job執行有錯,打算使用sys賬號登入檢視job運**況,反覆輸入sys賬戶資訊,總提示ora-01017,
1.嘗試改sys使用者密碼,重試報錯依舊。
2.使用sys登入gc,報錯相同。使用普通使用者登入正常。
3.資料庫伺服器上使用sqlplus sys/oracle@dep182 as sysdba登入正常。
問題排查和原因:
根據以上資訊,可能有朋友已經基本了解為何有這種現象了。
1.上述問題反映的現象是遠端使用sys賬戶無法登入,資料庫伺服器本地使用tns方式連線正常,首先排除密碼錯誤。
2.檢視$oracle_home/dbs,存在密碼檔案orapwdep,為了保險起見,備份舊的密碼檔案後,重建了密碼檔案,問題依舊。
3.查詢v$pwfile_users表記錄,發現是空,
關於v$pwfile_users的描述:
v$pwfile_users lists all users in the password file, and indicates whether the user has been granted the sysdba, sysoper, and sysasm privileges.奇怪了,明明有密碼檔案,為什麼這顯示的記錄是空?
4.回頭再來看密碼檔案,linux下密碼檔案的命名格式是orapw$oracle_sid,已存的檔名是orapwdep,再看下oracle_sid:
我勒個去,oracle_sid是小寫的dep,但檔案卻使用了大寫,低階的錯誤。
接下來就比較簡單了,重建密碼檔案:
orapwd file=orapwdep password=oracle entries=30
無論是遠端,還是gc,都可以正常登入了。
總結:
1.oracle中有不少大小寫敏感的引數設定,一定要仔細,否則就會產生各種困擾。
2.oracle的密碼檔案實際定義了擁有sysdba等許可權使用者的列表,因此遠端使用普通使用者訪問就不會受到密碼檔案的限制。
3.密碼檔案和v$pwfile_users兩者關係,可以參考惜紛飛的這篇博文,使用各種實驗說明了兩者的關聯。
xifenfei.com/2011/12/vpwfile_users和密碼檔案關係.html
乙個return的低階錯誤
之前在專案中寫了這樣乙個vb.net的方法,類似如下 function verifydate as boolean dim flag as boolean true dim a as integer 1 dim b as integer 3 dim c as integer 7 if b c the...
arm linux gcc 乙個相當低階的錯誤
今天將以前在windows ads上寫好的一些裸機程式用linux arm linux tools 移植到 tq2440上,剛弄第乙個 led,就卡住了,main.c 不加任何修改 define rgpbcon volatile unsigned 0x56000010 port b control ...
乙個低階的錯誤說明的問題
我必須要說一下這個問題,因為我已經被這個問題整整兩天,因為smarty無法讀取模板,這就讓我後面的學習根本無法繼續學習,我考慮了很多的問題,讓我很是納悶,問題最終的解決竟然是我的無意之舉,那麼我先說一下,問題的經過是這樣的 我最初是按照視屏的講解寫了乙份用smarty模板的 出現了如下的錯誤,讓我刻...