最近公司的泛微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
发现是Oracle数据库监听程序不能启动的原因,但是监听启动后,还是不断报错
监听启动命令如下:cmd窗口输入lsnrctl start
查看Oracle安装目录下Administrator\diag\tnslsnr\计算机名\listener\alert下的log文件
我们项目组成员一起研究了好多天,具体过程就不说了,解决方案如下:
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 监听服务
OracleServiceORCL 主服务
OracleDBConsoleorcl 网页EM服务
一般来说,新手只要打开这三个服务即可
最后正常重启Oracle实例即可,在开始菜单,Oracle安装目录home1下面可以找到SQL Plus
输入系统管理员账号密码即可进入SQLPlus命令模式
Oracle常用启动命令如下
关闭数据库
shutdown 正常关闭
shutdown
immediate 立即关闭
打开数据库
startup 完成创建实例、安装实例和打开数据库三个步骤。