最近公司的泛微OA無法訪問,Oracle資料庫也無法正常啟動,嘗試了好多方法,終於解決了,先說說基本情況,希望能給碰到同樣問題的朋友帶來一點幫助。 伺服器操作系統:Window s Server 2016 Datacenter 泛微OA版本: e-cology V8.0,安裝目錄為D:\WEAVER ...
最近公司的泛微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 完成創建實例、安裝實例和打開資料庫三個步驟。