1.系统监控人员说系统数据库出现了报错,让我尽快解决。本来开发工作就很忙,再加上运维工作感到有点头痛。登录服务器在eos.log日志文件中发现有如下报错:
- @@[@level][ERROR][@requestID][1359277153515][@module][DB][@timestamp][2013.04.11 at 03:00:01 613][@sender][defaultAppID.com.primeton.tp.core.dataservice.handler.DBTableHandler]$$
java.sql.SQLException: ORA-12899: 列 "OLDXY1"."EOSLOGINROLLPRO"."ORGNAME" 的值太大 (实际值: 66, 最大值: 64)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
一看就知道数据表EOSLOGINROLLPRO的orgname的长度不够。怎么办呢?
解决问题的步骤如下:
1.连接远程oracle服务器,本机上没有oracle,只能下载一个oracle客户端了。网上找了半天,大多结果都说到oracle官网上下载,只能到官网上下载oracle 11g的客户端,下载版本为windows32位的客户端。使用客户端就可以了。
2.安装oracle 11g的客户端,没什么难度,下一步操作就可以了。
3.安装toad,使用toad管理数据库,也安装成功。使用如下方式连接
database:10.87.6.5/orcl
user:xxxx
password:xxxx
跳出一个很讨厌的错误:cant not locate oci.dll.
以前解决过类似的问题,把oracle的oci.dll复制一份,放在系统盘的windows/system32目录下就可以了。
现在还不行。不知道啥问题,感觉有点怪。
3.既然toad不行,那么用别的工具了。使用oracle自带工具sqlplus进行连接,
sqlplus 用户名/密码@10.87.6.5/orcl 连接成功。
desc eosloginrollpro 查看表结构
alter table eosloginrollpro modify (orgname varchar2(200)) 设置表的字段长度为200.
显示table altered 表明修改设置成功。
commit 提交事务
总结:本次运维的发生时间很巧,我没有太多时间运维,现在正在开发的项目活很多。不过想了一下,用oracle 11g的客户端连接远程oralce 10g的服务器,还没出现版本不对应之类的错,还是不错的。总体来讲操作还蛮顺利。不过还要看明天的系统日志,确认系统不会再报这样的错误了。