標籤:oracle c3p0 營運 java
一次邊學邊乾的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:3801-12月-2014 07:59:42 * service_update * scm * 001-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 * 12528TNS-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 * 12528TNS-12528: TNS: 監聽程式: 所有適用常式都無法建立新串連01-12月-2014 08:00:05 * service_died * scm * 1253701-12月-2014 08:00:20 * service_register * scm * 001-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 , 一切恢複正常。
繼續監控系統中。。。。
oracle 10G 資料表空間移動 , TNS 監聽程式所有適用常式都無法建立新串連,service_died 12537, c3p0串連池參數