oracle 10G 表空间移动 , TNS 监听程序所有适用例程都无法建立新连接,service_died 12537, 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 , 一切恢复正常。 

继续监控系统中。。。。






郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。