oracleでユーザーがロックされた理由を確認するには

Oracleデータベースで、ユーザーがロックされている理由は次のメソッドを使用して確認できます。

  1. DBA_USERSビューの照会:
  2. SELECT username, account_status, lock_date, lock_time, profile FROM dba_users WHERE username = ‘ユーザー名’;
  3. その中でユーザー名は、検索するユーザーのユーザー名です。
  4. account_statusがLOCKEDの場合、ユーザーはロックされており、ロックされた日時がlock_date、lock_timeで取得できます。
  5. DBA_LOCKSビューを照会します。
  6. SELECT session_id, session_serial#, locked_mode, lock_type, lock_id1, lock_id2 FROM dba_locks WHERE owner = ‘ユーザ名’;
  7. ユーザ名を指定する場合は、対象とするユーザ名を指定します。
  8. 結果セットが空でなければ、ユーザーのリソースの一部がロックされていることを意味します。 session_idとsession_serial#に基づいて、そのリソースをロックするセッションを検索し、ロックの原因を詳しく確認できます。
  9. V$SESSIONビューのクエリ:
  10. SELECT username, lockwait, program FROM v$session WHERE username = ‘ユーザー名’;
  11. ユーザー名は、検索するユーザーのユーザー名です。
  12. lockwaitがYESの場合は、ユーザーが何らかのロックされたリソースの解放を待っています。実行中プログラムをprogramで取得すれば、ロックの原因を見つけることができます。

関係するビューを問い合わせするには、所定の権限が必要ですのでご注意ください。

bannerAds