Oracle session總結
Oracle session總結 收藏
從上週起,伺服器Oracle資料庫出現問題,用不到半天,就會報maxsession(150)的問題,肯定是資料庫的會話超過最大數了。
由於伺服器跑的是檔案傳輸應用,佔用的請求和會話肯定很大,因此使用者數不大就已經讓oracle的會話數達到最大值。
處理方式不外乎兩種:擴大oracle最大session數以及清除inactive會話,當然還有,就是從資料庫連線池和程式bug上面下手。
從各處收集了一些檢視當前會話的語句,記錄一下:
1.select count(*) from v$session;
select count(*) from v$process;
檢視當前總會話數和程式數,這兩個檢視就是跟會話及程式有關的重要檢視啦,資訊都是從這裡面取的。
2.查詢那些應用的連線數此時是多少
select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and b.USERNAME is not null group by b.MACHINE , b.PROGRAM order by count(*) desc;
3.查詢是否有死鎖
select * from v$locked_object;
如果查詢結果為no rows selected,說明資料庫中沒有死鎖。否則說明資料庫中存在死鎖。
接下來說明一下會話的狀態:
1.active 處於此狀態的會話,表示正在執行,處於活動狀態。
2.killed 處於此狀態的會話,表示出現了錯誤,正在回滾,當然,也是佔用系統資源的。還有一點就是,killed的狀態一般會持續較長時間,而且用windows下 的工具pl/sql developer來kill掉,是不管用的,要用命令:alter system kill session 'sid,serial#' ;
3.inactive 處於此狀態的會話表示不是正在執行的,比如select語句已經完成。我一開始以為,只要是inactive狀態的會話,就是該殺,為什麼不釋放呢。其 實,inactive對資料庫本身沒有什麼影響,但是如果程式沒有及時commit,那麼就會造成佔用過多會話。解決inactive的方法最好的就是在oracle中直接設定超時時間,也是有兩種方法,區別暫時還不清楚:
1.修改sqlnet.ora檔案,新增expire_time=x(單位是分鐘)
我的sqlnet.ora位置在D:\oracle\ora92\network\admin
2.通過ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 命令修改,記得重啟下oracle。
從上週起,伺服器Oracle資料庫出現問題,用不到半天,就會報maxsession(150)的問題,肯定是資料庫的會話超過最大數了。
由於伺服器跑的是檔案傳輸應用,佔用的請求和會話肯定很大,因此使用者數不大就已經讓oracle的會話數達到最大值。
處理方式不外乎兩種:擴大oracle最大session數以及清除inactive會話,當然還有,就是從資料庫連線池和程式bug上面下手。
從各處收集了一些檢視當前會話的語句,記錄一下:
1.select count(*) from v$session;
select count(*) from v$process;
檢視當前總會話數和程式數,這兩個檢視就是跟會話及程式有關的重要檢視啦,資訊都是從這裡面取的。
2.查詢那些應用的連線數此時是多少
select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and b.USERNAME is not null group by b.MACHINE , b.PROGRAM order by count(*) desc;
3.查詢是否有死鎖
select * from v$locked_object;
如果查詢結果為no rows selected,說明資料庫中沒有死鎖。否則說明資料庫中存在死鎖。
接下來說明一下會話的狀態:
1.active 處於此狀態的會話,表示正在執行,處於活動狀態。
2.killed 處於此狀態的會話,表示出現了錯誤,正在回滾,當然,也是佔用系統資源的。還有一點就是,killed的狀態一般會持續較長時間,而且用windows下 的工具pl/sql developer來kill掉,是不管用的,要用命令:alter system kill session 'sid,serial#' ;
3.inactive 處於此狀態的會話表示不是正在執行的,比如select語句已經完成。我一開始以為,只要是inactive狀態的會話,就是該殺,為什麼不釋放呢。其 實,inactive對資料庫本身沒有什麼影響,但是如果程式沒有及時commit,那麼就會造成佔用過多會話。解決inactive的方法最好的就是在oracle中直接設定超時時間,也是有兩種方法,區別暫時還不清楚:
1.修改sqlnet.ora檔案,新增expire_time=x(單位是分鐘)
我的sqlnet.ora位置在D:\oracle\ora92\network\admin
2.通過ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 命令修改,記得重啟下oracle。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-705152/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cookie、session總結CookieSession
- Oracle特性總結Oracle
- Oracle session traceOracleSession
- cookie和session的區別(全面總結)CookieSession
- Oracle學習總結Oracle
- Oracle之Hint使用總結Oracle
- ORACLE臨時表總結Oracle
- oracle基本命令總結Oracle
- 原創:oracle 事務總結Oracle
- Oracle LOAD_BALANCE&TAF總結Oracle
- Oracle Partition 分割槽詳細總結Oracle
- Oracle細節及難點總結Oracle
- Oracle SQL隱碼攻擊 總結OracleSQL
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)Oracle
- Oracle:Redhat 7 + Oracle RAC 11g 安裝 bug 總結OracleRedhat
- 例項總結Oracle知識點大全Oracle
- oracle外來鍵約束的總結Oracle
- oracle的interval時間格式的總結Oracle
- Oracle臨時表的用法總結FLOracle
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)2Oracle
- 疾控中心20181122 IBM小型機Oracle故障總結IBMOracle
- 原創 oracle 資料完整性總結Oracle
- Oracle:ORA-27090 問題解決總結Oracle
- Oracle Session每日統計功能實現XLAMOracleSession
- ORACLE會話連線程式三者總結Oracle會話線程
- Oracle 錯誤總結及問題解決 ORAOracle
- oracle中的processes,session,transaction引數詳解OracleSession
- oracle 會話(session)被鎖瞭解決方法Oracle會話Session
- MySQL/Oracle資料庫最佳化總結(非常全面)MySqlOracle資料庫
- Oracle 18c&19c physical dg切換總結Oracle
- Oracle:優化方法總結(關於連表查詢)Oracle優化
- Oracle DBLink bug引發的故障(Session Hang Memory leak)OracleSession
- 【TUNE_ORACLE】等待事件之IO等待“read by other session”Oracle事件Session
- Laravel 探索之 Session 與 Cookie 結構LaravelSessionCookie
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- Oracle 11g RAC之HAIP相關問題總結OracleAI
- 2020.09 問題總結(Oracle-->MySQL、Maven、JSP-->Thymeleaf、Druid)OracleMySqlMavenJSUI
- Oracle檢視已被使用的open_cursors&session_cached_cursorsOracleSession
- javaSE總結(轉+總結)Java