SYS使用者可以登入,其他使用者無法登陸的問題處理

kewin發表於2009-11-11

          由於ORACLE資料庫出現了很奇怪的問題,百事不得其解。在一籌莫展時,不知道該如何下手。其實,ORACLE越來越體現可以管理特性,有很多試圖提供HINT。至於DBA熟不熟悉,了不瞭解其特點,那當別論。

         這裡提供一個例子,以說明問題。

        報普通使用者無法登陸資料庫,後來發現是引數resource_manager_plan設定為INTERNAL_QUIESCE,導致使用者無法登陸。清空該引數後,問題得到解決。

下面做個測試:

SQL> show parameter resource



NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

enqueue_resources                    integer     3144

resource_limit                       boolean     FALSE

resource_manager_plan                string

SQL> show parameter process



SQL> alter system set resource_manager_plan='INTERNAL_QUIESCE';



System altered.



這時非DBA使用者無法登入,介面一直處於HANG狀態;

這時通過V$SESSION_WAIT檢視,可以看到對應的等待事件:

SQL> select sid,event from v$session_wait;



       SID EVENT

---------- ----------------------------------------------------------------

         1 pmon timer

         2 rdbms ipc message

         3 rdbms ipc message

         6 rdbms ipc message

         8 rdbms ipc message

         7 rdbms ipc message

         4 rdbms ipc message

         5 smon timer

       17 resmgr:waiting in run (queued)        

       18 SQL*Net message to client



10 rows selected.



取消資源管理:

SQL> alter system set resource_manager_plan='';



System altered.



等待登入的會話可以登入,在V$SESSION_WAIT中的 resmgr:waiting in run (queued) 事件也消失了。



再次說明: 系統執行慢,或者出現異常時,都可以通過V$SESSION_WAIT去診斷問題。

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

相關文章