ORACLE資料庫連線數滿的分析及優化
最近在使用Oracle的過程中,出現了資料庫連線數滿的情況,導致程式及資料庫連線工具連線不上。主要從兩個方面來考慮這件事,從程式方面來看:
1.進行資料庫連線操作後未釋放連線;
2.若使用了資料庫連線池,則考慮連線池的超時設定。
從資料庫本身來看:
1.可以增加資料庫的最大連線數;
2.可以定時清理資料庫中INACTIVE的會話。
對於增加最大連線數的資料很多,文末也會推薦一個連結,定時清理INACTIVE會話需要建立一個儲存過程找出超過2小時(根據需求設定)的會話,然後斷開會話,具體如下:
--清理超過2小時的INACTIVE會話 CREATE OR REPLACE PROCEDURE DB_KILL_IDLE_CLIENTS AUTHID DEFINER AS job_no number; num_of_kills number := 0; BEGIN FOR REC IN (SELECT SID, SERIAL#, INST_ID, MODULE,STATUS FROM gv$session S WHERE S.USERNAME IS NOT NULL AND S.LAST_CALL_ET >= 2*60*60 AND S.STATUS = 'INACTIVE' ORDER BY INST_ID ASC ) LOOP DBMS_OUTPUT.PUT('LOCAL SID ' || rec.sid || '(' || rec.module || ')'); execute immediate 'alter system disconnect session ''' || rec.sid || ', ' || rec.serial# || '''immediate' ; DBMS_OUTPUT.PUT_LINE('. killed locally ' || job_no); num_of_kills := num_of_kills + 1; END LOOP; DBMS_OUTPUT.PUT_LINE ('Number of killed system sessions: ' || num_of_kills); END DB_KILL_IDLE_CLIENTS;
建立定時任務執行這個儲存過程:
begin
sys.dbms_job.submit(job => :job,
what => 'SYS.DB_KILL_IDLE_CLIENTS;',
next_date => to_date('25-05-2018 17:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'TRUNC(sysdate,''hh'') + 1/(24)');
commit;
end;
注意以sys角色登入操作。
以下是參考的資料:
1.增加連線數:https://blog.csdn.net/lele2426/article/details/4978283
2.清理會話:https://www.cnblogs.com/kerrycode/p/3636992.html
3.建立定時任務:https://www.cnblogs.com/yx007/p/6519544.html
相關推薦
ORACLE資料庫連線數滿的分析及優化
最近在使用Oracle的過程中,出現了資料庫連線數滿的情況,導致程式及資料庫連線工具連線不上。主要從兩個方面來考慮這件事,從程式方面來看: 1.進行資料庫連線操作後未釋放連線; 2.若使用了資料庫連線池,則考慮連線池的超時設定。從資料庫本身來看: 1.可以增
【轉】SignalR站點瀏覽器連線數限制分析及解決方案
SignalR 搭建實時重新整理應用雖然非常方便,但是有個問題你必須考慮到,就是一般的瀏覽器,對於SignalR的全雙工通訊方式,絕大多數瀏覽器都只支援6個新視窗,如果你開啟第7個,那麼新的框口頁面是不會載入的。 這其實是客戶端瀏覽器的限制,這是以連線的域名為單位來限制,
jmeter測試伺服器效能之資料連線數瓶頸分析和優化
前面搭建的測試環境linux+Servlet+mysql+tomcat都是採用的預設設定 先介紹一個在linux伺服器下,批量kill掉mysql連線數的方法。 1)vi kill.sh 複製下面的程式碼進去 2)chmod 700 kill.sh
關於oracle資料庫訪問報12519異常及修改oracle最大連線數的解決方法
業務系統試執行期間,後臺一直報12519異常,詳情參見下圖: 經網上方法查詢是資料庫超過了最大連線數。於是對oracle進行修改操作,方法如下: 1、在cmd中輸入:sqlplus / as sysdba; 2、select count(*) from v$process
PostgreSQL CPU滿(100%)性能分析及優化(轉)
mark ike -- 過多 mar 是不是 影響 sas sql日誌 PostgreSQL CPU滿(100%)性能分析及優化 轉自:https://help.aliyun.com/knowledge_detail/43562.html 在數據庫運維當中,
ORACLE資料生成awr報告與檢視資料庫連線數
一,生成awr報告 查詢awrrpt.sql檔案位置 1 find / -name awrrpt.sql 2,進入oracle目錄 3登入oracle sqlplus / as sysdba 4, SQL>@/home/oracle/app/oracle/produc
檢視oracle使用者資料庫連線數
1、查詢oracle的連線數 select count(*) from v$session; ps -ef|grep "(LOCAL=NO)"|wc -l 2、查詢oracle的併發連線數 select count(*) from v$session where sta
C# Oracle資料庫連線及操作
1、 將光碟放入光碟機,自動彈出安裝介面,選擇開始安裝; 2、 歡迎:下一步; 3、 檔案定位,所有內容預設,如果更改oracle安裝路徑,在目標路徑中進行更改,下一步; 4、 可用產品:伺服器端選擇第一個
檢視oracle使用者資料庫連線數(檢視修改資料庫最大連線數等)
一、檢視oracle使用者資料庫連線數 1、查詢oracle的連線數 select count(*) from v$session; 2、查詢oracle的併發連線數 select count(*) from v$session where status='ACTIVE
oracle11g連線數滿導致資料庫重啟
現象: 版本:oracle11.2.0.3 今天資料庫出現連線數滿導致資料庫重啟的現象 PMON failed to acquire latch, see PMON dump Mon Jan 21 16:23:55 2013 ORA-00020: 超出最大程序數 (600)
Maven專案中oracle資料庫連線不上(已經在pom檔案中配置jdbc驅動檔案)
在Maven專案中配置資料庫連線的過程中,出現java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver: 但是檢查了很久都沒有發現哪裡出現錯誤,該配置的都配置了,然後在百度找了一下,發現是oracle版本不同造成的: 參
Mysql 多表聯合查詢效率分析及優化
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
微信小程式:藍芽BLE連線10003問題分析及解決
10003是微信藍芽連線經常碰到的問題,微信官方給出的文件中就簡單的描述為“connection fail”,備註為“連線失敗”。然而,實際上出現10003的狀況有很多,比如根據deviceId連線藍芽時,藍芽裝置未開啟或異常導致無法連線;藍芽裝置被佔用或者上次藍芽連線未斷開導致無法
MYSQL多表聯查效率分析及優化
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! &n
個人筆記:修改資料庫連線數
select count(*) from v$process; --當前的資料庫連線數 select value from v$parameter where name ='processes'; --資料庫允許的最大連線數 alter system set processes =
Oracle資料庫查詢表空間使用情況及建立表空間
--查詢表空間使用狀況 select total.tablespace_name, round(total.MB, 2) as Total_MB, round(total.MB - free.MB, 2) as Used_MB, round((1 - free.MB
MySQL慢日誌功能分析及優化增強
此文已由作者溫正湖授權網易雲社群釋出。歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。MySQL慢日誌(slow log)是MySQL DBA及其他開發、運維人員需經常關注的一類資訊。使用慢日誌可找出執行時間較長或未走索引等SQL語句,為進行系統調優提供依據。本文結合線上案
Druid資料庫連線池原始碼分析
Druid不僅僅是一個數據庫連線池,還有很多標籤,比如統計監控、過濾器、SQL解析等。既然要分析連線池,那先看看DruidDataSource類 getConnection方法的實現: @Override public DruidPooledConne
設計容錯的資料庫連線池程式設計思路--架構優化之道【JAVA核心】
本專案的原始碼已經上傳,歡迎點選下載1、資料庫連線池的產生背景?資料庫在高併發情況下會面臨諸多問題——JDBC:管道的臨時建立——非常耗用資源,而且在高併發中,多個客戶端同時建立IO管道DB的承受能力如何考慮?執行SQL語句完畢後又要馬上銷燬——之後難道不要再用?最大連線管道
MYSQL,SQLSERVER,ORACLE 資料庫連線
public class SysDatabase { private String type;//資料庫型別 如 MYSQL,SQLSERVER,ORACLE private String ip;//ip地址 如 localhost private String port;/