泛微e-cology和Oracle相关问题的解决方案

深圳湾 2017-12-13

最近公司的泛微OA无法访问,Oracle数据库也无法正常启动,尝试了好多方法,终于解决了,先说说基本情况,希望能给碰到同样问题的朋友带来一点帮助。

服务器操作系统:Window s Server 2016 Datacenter

泛微OA版本: e-cology V8.0,安装目录为D:\WEAVER……

Oracle版本:Oracle 11g,安装目录为D:\app\adminitartor\……

泛微OA无法启动,我们首先会想到查看启动日志,D:\WEAVER\ecology\log报错如下,

2017-12-13 07:38:44,217 ERROR weaver.conn.DBConnectionPool-weaver.conn.DBConnectionPool

java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)

发现是Oracle数据库问题,接着打开Oracle的EM管理界面,https://服务器ip地址:1158/em

泛微e-cology和Oracle相关问题的解决方案泛微e-cology和Oracle相关问题的解决方案

发现是Oracle数据库监听程序不能启动的原因,但是监听启动后,还是不断报错

监听启动命令如下:cmd窗口输入lsnrctl start

查看Oracle安装目录下Administrator\diag\tnslsnr\计算机名\listener\alert下的log文件

泛微e-cology和Oracle相关问题的解决方案

我们项目组成员一起研究了好多天,具体过程就不说了,解决方案如下:

D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

这个目录下有3个文件

listener.ora

sqlnet.ora

tnsnames.ora

1. listener.ora

在listener文件开头添加一行:DIAG_ADR_ENABLED_LISTENER = OFF

还要注意这里的HOST = 计算机名称

# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

DIAG_ADR_ENABLED_LISTENER = OFF

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 计算机名)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = D:\app\Administrator

2. sqlnet.ora

在sqlnet文件开头添加一行: DIAG_ADR_ENABLED = OFF

3. tnsnames.ora

这里的HOST =localhost

# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

ORCL_LOCALHOST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SID = orcl)

(SERVER = DEDICATED)

)

)

重启监听程序,表面看起来正常了,但是数据库速度还是很慢,这是Oracle11g的一个bug,但alarm下的log文件超过4G的时候,数据库运行就会变得缓慢,这时候我们删除许久以前的日志文件,然后重启下面两个服务

监听服务 OracleOraDb11g_home1TNSListener

Oracle主服务 OracleServiceORCL

如果要用网页打开EM的话,还需要开启OracleDBConsoleorcl服务

一般来说,新手只要打开这三个服务即可

最后正常重启Oracle实例即可,在开始菜单,Oracle安装目录home1下面可以找到SQL Plus

泛微e-cology和Oracle相关问题的解决方案

输入系统管理员账号密码即可进入SQLPlus命令模式

泛微e-cology和Oracle相关问题的解决方案

Oracle常用启动命令如下

关闭数据库
正常关闭shutdown
立即关闭shutdownimmediate

打开数据库

Startup该命令完成创建实例、安装实例和打开数据库的任何三个步骤。