程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle10G表空間移動,TNS監聽程序所有適用例程都無法建立新連接,service_died12537,c3p0連接池參數

oracle10G表空間移動,TNS監聽程序所有適用例程都無法建立新連接,service_died12537,c3p0連接池參數

編輯:Oracle教程

oracle10G表空間移動,TNS監聽程序所有適用例程都無法建立新連接,service_died12537,c3p0連接池參數


一次邊學邊干的oralce運維經歷, 步步是坑啊

前幾天經歷了刪除垃圾數據表、清理回滾表空間這些東西之後,又rebuild了索引, 感覺oracle的性能真是槓槓的。 系統又開始急速運行了。

客戶經歷了這事之後, 主動提出了把數據庫切換到存儲上面, 分配了200G。

開始干活啊,

1、先停止oracle

2、把你要移動的表空間文件復制到目的地例如:從d盤復制到E盤

3、登陸oracle

sqlplus / as sysdba
4、然後執行
startup mount 
alter database rename file 'D:/xxxxx' to 'E:/xxxxx';
alter database open;
ok, 一切都搞定。

勝利完工之後, 系統運行2天, 客戶說每天早上系統都必須重啟, 才可以使用, 否則服務使用。 很是困惑。 打開oracle日志查看

警告日志:\oracle\product\10.2.0\db_1\admin\orcl\bdump\alert_orcl.log

監聽日志:\oracle\product\10.2.0\db_1\NETWORK\log\listener.log

listener.log 的體積已經增長到140M, 打開裡面發現如下內容:

workman  16:57:38
01-12月-2014 07:59:42 * service_update * scm * 0
01-12月-2014 07:59:47 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=SCM)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.11.15.179)(PORT=2910)) * establish * SCM * 12528
TNS-12528: TNS: 監聽程序: 所有適用例程都無法建立新連接
01-12月-2014 07:59:57 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=SCM)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.11.15.179)(PORT=2912)) * establish * SCM * 12528
TNS-12528: TNS: 監聽程序: 所有適用例程都無法建立新連接
01-12月-2014 08:00:05 * service_died * scm * 12537
01-12月-2014 08:00:20 * service_register * scm * 0
01-12月-2014 08:00:26 * service_update * scm * 0

【注明:關於 12537的錯誤, 筆者度娘很久, 發現這是個很模糊的問題, 很多人都說是oracle的配置的問題】

經過分析, 這個應該和配置沒有啥關系 , 因為再次重啟的時候oracle不用重啟就可以, 如果oralc自己出了問題, 那恐怕這樣不行,而且每次都出現在夜裡, 所以這個錯誤應該是個很大范圍的。

所以, 查看java的連接情況, 程序使用c3p0作為數據庫連接池。修改其參數

      <property key="c3p0.validate">true</property>  
      <property key="c3p0.idle_test_period">60</property>  

然連接池自己去校驗下連接是否正常。 早上再次查看oralc的listener.log , 一切恢復正常。

繼續監控系統中。。。。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved