一次边学边干的oralce运维经历, 步步是坑啊
前几天经历了删除垃圾数据表、清理回滚表空间这些东西之后,又rebuild了索引, 感觉oracle的性能真是杠杠的。 系统又开始急速运行了。
客户经历了这事之后, 主动提出了把数据库切换到存储上面, 分配了200G。
开始干活啊,
1、先停止oracle
2、把你要移动的表空间文件复制到目的地例如:从d盘复制到E盘
3、登陆oracle
sqlplus / as sysdba4、然后执行
startup mountok, 一切都搞定。
alter database rename file 'D:/xxxxx' to 'E:/xxxxx';
alter database open;
胜利完工之后, 系统运行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
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
经过分析, 这个应该和配置没有啥关系 , 因为再次重启的时候oracle不用重启就可以, 如果oralc自己出了问题, 那恐怕这样不行,而且每次都出现在夜里, 所以这个错误应该是个很大范围的。
所以, 查看java的连接情况, 程序使用c3p0作为数据库连接池。修改其参数
<property key="c3p0.validate">true</property>
<property key="c3p0.idle_test_period">60</property>
然连接池自己去校验下连接是否正常。 早上再次查看oralc的listener.log , 一切恢复正常。
继续监控系统中。。。。