连接远程数据库
项目中需要使用PLSQL,组内大佬给了一个oracle的微端安装程序,于是一点都不知晓的我入了一个大坑。
oracle和PLSQL的安装应该都没有什么问题,连接远程数据库时还需要安装一个叫instantclient_11的程序,我没有下载,直到后来我才发现原来oracle的微端应该就是这个程序(名字9成相似啊喂)
参照网上的操作,复制network文件到客户端目录下,network文件在oracle的安装目录内,我的文件目录如下:
C:\app\86156\product\11.2.0\dbhome_1\NETWORK\ADMIN
然后配置环境变量什么的,但是按照网上参照的设置环境变量后,oracle自带的SQL操作端就无法登陆了
总之我尝试过很多配置,微端的SQL我始终连接不上数据库(原谅我太菜),环境变量只能沿用原来的配置,全部设置为oracle端的,仅有一个环境变量为微端,即:
C:\Ora10InstantClient
然后是数据库的配置,一般来说,oracle的配置目录如下:
sample目录下有tnsnames和listener的原生文件,默认admin下无这两个文件,需要使用时从sample拷贝到admin下才会生效,然后根据需要配置
由于安装了微端,我发现在admin下的tnsnames并不生效,生效的是Ora10InstantClient目录下的tnsnames
配置如下
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
该ORCL即会在PLSQL登陆时可选
至此连接到远程数据配置完毕
连接本地oracle数据库
连接本地数据库除了要配置连接项,还需要配置聆听文件,我尝试配置了Ora10InstantClient目录下的listener文件,没有生效,后来又配置了oracle安装目录admin下的listener文件
oracle目录下的listener文件
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\86156\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\86156\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-R1U9SUG)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
微端下的listener文件
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.15)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS=(PROTOCOL=tcp)(HOST=LOCALHOST)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
)
)
ADR_BASE_LISTENER = C:\app\86156
具体生效的是哪个我暂时没有测试,我猜测生效的应该是admin下的,DESKTOP-R1U9SUG是主机名,listener是自动生成的
每次改动需要重启listener服务
登陆失败时不妨多试几次