一.问题描述
服务本来是没有问题的,前一天装好Oracle以后,Plsql连接、Navicat Premium连接Oracle都没有问题。第二天重启开机以后,发现昨天创建的guest用户连接不上,一直出问题。想着是不是服务没有启动好,于是把OrcleServiceXE服务,以及OracleXeTNSListener服务关闭了,但是关闭后就无法重启OracleXeTNSListener服务。
二.解决步骤
查看安装路径listener.ora tnsnames.ora配置文件。
网上搜了很多教程都说检查主机名是否配置正确,控制面板->系统和安全->系统->计算机名。
配置文件listener.ora,发现LISTENER HOST主机名与计算机名一致。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\OracleXE112_Win64\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\OracleXE112_Win64\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = demo)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
配置文件tnsnames.ora,发现XE HOST主机名与计算机名一致。
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = demo)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
证明配置没有问题。会议前一天在本地系统环境配置ORACLE_HOME,但是listener.ora也有对应的配置
于是将路径修改为一致。
OracleXETNSListener 成功启动。
三.客户端无法连接的话
先停止服务,再启动服务
net stop OracleServiceXE
net start OracleServiceXE
客户端连接成功。