資料庫連線已滿

2021-09-01 03:52:47 字數 1860 閱讀 8572

從資料庫自身來看

加大max-connection試試

可以減小wait_timeout的值:10秒應該可以的

檢查程式是否有關閉資料庫連線的bug,如果只開啟連線而不關閉也會出現此問題的。

檢查下程式有沒有mysql_close()

從開發類 dba的角度 看 是否如果有表lock了。多半不是訪問量太大,而是資料表結構不合理,或查詢不合理。

另外。你看這個:

系統不能連線資料庫,關鍵要看兩個資料: 1、資料庫系統允許的最大可連線數max_connections。這個引數是可以設定的。如果不設定,預設是100。最大是16384。 2、資料庫當前的連線線程數threads_connected。這是動態變化的。 檢視max_connections、max_connections的辦法見後。

如果 threads_connected == max_connections 時,資料庫系統就不能提供更多的連線數了,這時,如果程式還想新建連線線程,資料庫系統就會拒絕,如果程式沒做太多的錯誤處理,就會出現類似強壇的報錯資訊。

因為建立和銷毀資料庫的連線,都會消耗系統的資源。而且為了避免在同一時間同時開啟過多的連線線程,現在程式設計一般都使用所謂資料庫連線池技術。

但資料庫連線池技術,並不能避免程式錯誤導致連線資源消耗殆盡。

這種情況通常發生在程式未能及時釋放資料庫連線資源或其他原因造成資料庫連線資源不能釋放,但強壇系統估計不會發生這種低階的程式設計錯誤。 該錯誤的簡便的檢查辦法是,在重新整理強壇頁面時,不斷監視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達到max_connections,那麼,就應該檢查程式了。當然,如果採用資料庫連線池技術, threads_connected增長到資料庫連線池的最大連線線程數時,就不再增長了。

從強壇出錯的情況看,更大的可能性是資料庫系統沒能進行適當地配置。下面提出一點建議。供參考

讓你們的工程師把mysql的最大允許連線數從預設的100調成32000。這就不會老出現連線過多的問題了。

檢視max_connections

進入mysql,用命令:

show variables

檢視資料庫最大可連線數的變數值:

max_connections

檢視threads_connected 進入mysql,用命令:

show status檢視當前活動的連線線程變數值:

threads_connected設定max_connections 設定辦法是在my.cnf檔案中,新增下面的最後紅色的一行:

[mysqld]

port=3306

#socket=mysql

skip-locking

set-variable = key_buffer=16k

set-variable = max_allowed_packet=1m

set-variable = thread_stack=64k

set-variable = table_cache=4

set-variable = sort_buffer=64k

set-variable = net_buffer_length=2k

set-variable = max_connections=32000修改完畢後,重啟mysql即可。當然,為了確保設定正確,應該檢視一下max_connections。 注意: 1、雖然這裡寫的32000。但實際mysql伺服器允許的最大連線數16384; 2、除max_connections外,上述其他配置應該根據你們系統自身需要進行配置,不必拘泥; 3、新增了最大允許連線數,對系統消耗增加不大。 4、如果你的mysql用的是my.ini作配置檔案,設定類似,但設定的格式要稍作變通。

SQL資料庫日誌已滿

sql資料庫系統在使用一段時間後,日誌會越積越大,尤其是對於資料庫檔案本身就很大 同時dml操作較頻繁的時候,日誌檔案增大的速度會更快。有時候,我們會遇到日誌已滿的提示,即始不提示,也會發現資料備份時消耗的時間會越來越長,甚至會備份失敗。首先,清空日誌 dump transaction 庫名 wit...

資料庫日誌已滿,如何釋放日誌空間

昨天維護yh的時候,遇到了上面的問題。yh到了現在這個階段,資料量比較大了,上面的問題應該是一種比較常見的問題。在網上查了查,最後問題解決了,拿出來和大家分享一下 首先,清空日誌 dump transaction 庫名 with no log接著,截斷事務日誌 backup log 資料庫名 wit...

sql server資料庫日誌已滿處理方法

sqlserver 2008之前版本的資料庫 1.清空日誌 dump transaction 資料庫名 with no log 2.截斷事務日誌 backup log 資料庫名 with no log 3.收縮資料庫檔案 如果不壓縮,資料庫的檔案不會減小 dbcc shrinkdatabase 資料...