一次邊學邊干的oralce運維經歷, 步步是坑啊
前幾天經歷了刪除垃圾數據表、清理回滾表空間這些東西之後,又rebuild了索引, 感覺oracle的性能真是槓槓的。 系統又開始急速運行了。
客戶經歷了這事之後, 主動提出了把數據庫切換到存儲上面, 分配了200G。
開始干活啊,
1、先停止oracle
2、把你要移動的表空間文件復制到目的地例如:從d盤復制到E盤
3、登陸oracle
sqlplus / as sysdba4、然後執行
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.loglistener.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 , 一切恢復正常。
繼續監控系統中。。。。