测试环境:oracle12c+win10
用工具pl/sql developer ,以前连接好好的,现在突然不行了,经过多次测试,发现了问题所在
ORACLE_HOME变量对它的响应.
oracle client目录在D:\Program Files\oracle-client\ora90\
oracle安装在D:\app\orcl\product\12.1.0\dbhome_1\
A. 若用oracle工具,如配置监听什么的,将oracle_home改为oracle安装目录D:\app\orcl\product\12.1.0\dbhome_1,否则监听不正常
B. 若用pl/sql ,把oracle_home改为oracle client所在的目录D:\Program Files\oracle-client\ora90,不则报错误:Not logged on
测试步骤:
1. 在服务中查看oracle后台数据库Listener是否正常启动.
2。测试监听是否正常:tnsping orcl
3. 连接数据库.
监听配置文件LISTENER.org:
# listener.ora Network Configuration File: D:\Program Files\oracle-client\orcl\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = d:\app\orcl\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:d:\app\orcl\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
//有时不配置它不行
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\app\orcl\oradata\orcl)
(SID_NAME = ORCL)
)
)
SID_LIST_ORCL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\app\orcl\oradata\orcl)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\app\orcl\oradata\orcl)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = d:\app\orcl\product\12.1.0\dbhome_1\log
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
ADR_BASE_ORCL = d:\app\orcl\product\12.1.0\dbhome_1\log
////////////////////////////////////
tnsnames.ora
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
TST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.187)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TST)
)
)
SAP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.187)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TST)
)
)
server: win2003+oracle9i
client端配置监听sap, tst,时,若出现ERROR:
ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME
需要将环境变量:
TNS_ADMIN=D:\Program Files\oracle-client\ora90 去掉.
阅读(2337) | 评论(0) | 转发(0) |