PLSQL Developer 配置Oracle主目录和OCI库 & 连接登录Oracle数据库(完全指南)

温馨提示:


一、如果你在机器上装了oracle数据库服务器,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安装oracle客户端。


二、如果想用本地的计算机访问或连接远程的oracle数据库,那么就必须在本地的计算机上安装oracle客户端软件。在安装客户端前,确保在服务器端:
1.保证listener服务已经启动。
2.保证数据库已经启动。

(一)场景1:PLSQL Developer 连接本地Oracle数据库

1. 服务器端(安装Oracle数据库所在的服务器)

服务器端必须要启动的服务,如下:

  • 数据库服务:OracleServiceXXX

备注:如果没有启动数据库服务,会报错“ORA-12560: TNS: 协议适配器错误”。

2. 客户端

PL/SQL Developer 环境设置


本地安装了Oracle数据库的,PLSQL Developer 工具会自动检测出来Oracle主目录和OCI库。


示例:


Oracle主目录:D:\app\Administrator\product\11.2.0\dbhome_1        

OCI库:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oci.dll

启动PLSQL Developer,选择 “工具 -> 首选项”,在弹出的窗口中找到 “Oracle -> 连接”,输入Oracle主目录(ORACLE_HOME)和 OCI库 的路径。如图所示:

img


至此,就可以登录本地Oracle数据库了。

3. 登录本地Oracle数据库

登录本地Oracle数据库


方式1:使用 本地主机IP地址:端口/全局数据库名 登录

用法:

用户名:用户名
密码:密码
数据库:本地主机IP地址:端口/全局数据库名
连接为:Normal

【备注:本地主机IP地址可以填写 localhost 或 127.0.0.1 等。】

img


方式2:使用 网络服务名 登录

用法:

用户名:用户名
密码:密码
数据库:网络服务名
连接为:Normal

img

小结

主题:PLSQL Developer 连接本地Oracle数据库

流程:

  1. 服务器端:
    启动相关服务:数据库服务

  1. 客户端:
    PL/SQL Developer 环境设置:Oracle主目录名、OCI库

  1. 登录本地Oracle数据库:
    方式1:使用 本地主机IP地址:端口/全局数据库名 登录
    方式2:使用 网络服务名 登录

(二)场景2:PLSQL Developer 远程连接ORACLE数据库

1. 服务器端(安装Oracle数据库所在的服务器)

(1)在服务器端的 listener.ora文件中添加主机IP地址,假设主机IP地址为10.0.71.191,则配置如下:


listener.ora(属于服务器端 文件)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.71.191)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\databases\oracle\oracle_11g\app\administrator

(2)远程服务器端必须要启动的服务,如下:

  • 数据库服务:OracleServiceXXX
  • 监听服务:OracleOraDb11g_home1TNSListener

备注:如果没有启动相关服务,会出现报错,导致无法成功连接远程数据库。比如,如果没有启动数据库服务,会报错“ORA-12560: TNS: 协议适配器错误”。

2. 客户端

如果要远程连接ORACLE数据库,那么需要有 instantclient(oracle客户端)。

(1)下载Oracle 客户端 instantclient ,远程连接Oracle数据库的必要条件。


(2) PL/SQL Developer 环境设置

示例:


Oracle主目录:D:\instantclient_21_9
        
OCI库:D:\instantclient_21_9\oci.dll

启动PLSQL Developer,选择 “工具 -> 首选项”,在弹出的窗口中找到 “Oracle -> 连接”,输入Oracle主目录(ORACLE_HOME)和 OCI库 的路径。如图所示:

img


(3)sqlnet.ora 文件配置

简介:sqlnet.ora 文件是监听服务所需要的参数文件。

sqlnet.ora(属于客户端 文件)

NAMES.DIRECTORY_PATH= (EZCONNECT)

备注:NAMES.DIRECTORY_PATH= (EZCONNECT) 配置:支持 “sqlplus 用户名/密码@主机:端口/全局数据库名” 格式的数据库连接。


至此,就可以使用 远程主机IP地址:端口/全局数据库名 的方式登录远程数据库了。


(4)设置环境变量 NLS_LANG

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

备注:

NLS_LANG 是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,> NLS_LANG的设置就非常重要。

NLS_LANG 参数由以下部分组成:NLS_LANG=_.

NLS_LANG 的用法可参考:https://www.cnblogs.com/zhao1949/p/5212445.html


(5)使用 网络服务名 相关配置

如果想使用 网络服务名 来连接远程数据,那么就需要配置 TNS_ADMIN 环境变量,同时搭配 tnsnames.ora 和 sqlnet.ora 文件。


(5-1) 设置环境变量 TNS_ADMIN

TNS_ADMIN = D:\instantclient_21_9

(5-2) tnsnames.ora 文件配置

简介: tnsnames.ora 文件是网络服务名的解析文件,用于解析别名(网络服务名),以便支持使用网络服务名连接访问远程数据库。


tnsnames.ora (属于客户端 文件)

CONNECT_IDENTIFIER_REMOTE_ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.71.191)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = remote_orcl)
    )
  )


(5-3)sqlnet.ora 文件配置

简介:sqlnet.ora 文件是监听服务所需要的参数文件,用于设置 TNSNAMES 适配器来解析别名。

sqlnet.ora(属于客户端 文件)

NAMES.DIRECTORY_PATH= (TNSNAMES)

备注:
NAMES.DIRECTORY_PATH= (TNSNAMES) 配置:支持 “sqlplus 用户名/密码@网路服务名” 格式的数据库连接。


至此,就可以使用 网络服务名 的方式登录远程数据库了。

3. 登录远程Oracle数据库

登录远程Oracle数据库


方式1:使用 远程主机IP地址:端口/全局数据库名 登录

用法:

用户名:用户名
密码:密码
数据库:远程主机IP地址:端口/全局数据库名
连接为:Normal

img


方式2:使用 网络服务名 登录

用法:

用户名:用户名
密码:密码
数据库:网络服务名
连接为:Normal

img

小结

主题:PLSQL Developer 远程连接ORACLE数据库

流程:

  1. 服务器端:
    (1)配置 listener.ora
    (2)启动相关服务:数据库服务、监听服务

  1. 客户端:
    (1)下载客户端 instantclient
    (2)PL/SQL Developer 环境设置:Oracle主目录名、OCI库
    (3)配置环境变量:NLS_LANG、TNS_ADMIN
    (4)配置sqlnet.ora、tnsnames.ora

  1. 登录远程Oracle数据库:
    方式1:使用 远程主机IP地址:端口/全局数据库名 登录
    方式2:使用 网络服务名 登录

附录

1. 环境变量配置

(1)服务器端:

PATH=D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1\bin

【备注:上述配置是安装了Oracle数据库之后,系统自动配置的。】



(2)客户端:

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN = D:\instantclient_21_9

【备注:TNS_ADMIN 是远程Oracle数据库时,使用 网络服务名 的方式连接访问才需要有这个配置。】

2. 监听服务相关的三个重要配置文件使用指南

listener.ora(属于服务器端文件)

# listener.ora Network Configuration File: D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
 (SID_DESC =
   (SID_NAME = CLRExtProc)
   (ORACLE_HOME = D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1)
   (PROGRAM = extproc)
   (ENVS = "EXTPROC_DLLS=ONLY:D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
 )
 (SID_DESC =
   (GLOBAL_DBNAME = orcl)
   (ORACLE_HOME = D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1)
   (SID_NAME = ORCL)
 )
 (SID_DESC =
   (GLOBAL_DBNAME = 远程主机的全局数据库名)
   (ORACLE_HOME = 远程主机的Oracle安装目录)
   (SID_NAME = 远程主机的SID)
 )
)

LISTENER =
(DESCRIPTION_LIST =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
 )
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 )
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 远程主机IP地址)(PORT = 远程主机端口))
 )
)

ADR_BASE_LISTENER = D:\databases\oracle\oracle_11g\app\administrator

备注:SID_DESC标签下的 ORACLE_HOME 标签可以不用配置。


sqlnet.ora(属于客户端文件)

# sqlnet.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

备注:

  • SQLNET.AUTHENTICATION_SERVICES= (NTS) 配置:表示系统身份验证 —用户名和口令可输可不输。支持使用 “sqlplus / as sysdba” 和 “conn / as sysdba” 的数据库连接。

  • NAMES.DIRECTORY_PATH= (EZCONNECT) 配置:支持 “sqlplus 用户名/密码@主机:端口/全局数据库名” 格式的数据库连接。

  • NAMES.DIRECTORY_PATH= (TNSNAMES) 配置:支持 “sqlplus 用户名/密码@网路服务名” 格式的数据库连接。


注意:
SQLNET.AUTHENTICATION_SERVICES= (NTS) 表示使用操作系统本地验证,一般不用,有安全问题。通常需要改成下面的值:SQLNET.AUTHENTICATION_SERVICES= (NONE)


tnsnames.ora(属于客户端文件)

# tnsnames.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

网络服务名 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库IP地址)(PORT = 远程服务器端口号))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 远程数据库服务名)
    )
  )

3. 本地数据库登录的几种方式

(1)使用 SQL*Plus 命令登录


sqlplus命令基本语法:

sqlplus [username]/[password][@connect_identifier][as sysdba]

说明:connect_identifier 的取值可以是“主机:端口/全局数据库名”,也可以是“网络服务名”。



方式1:直接登录
用法:sqlplus 用户名/密码

C:\Users\administrator>sqlplus system/*********

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 20 18:06:02 2023

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

方式2:使用 本地主机IP地址:端口/全局数据库名 登录
用法:sqlplus 用户名/密码@本地主机IP地址:端口/全局数据库名
【备注:本地主机IP地址可以填写 localhost 或 127.0.0.1 等。】

C:\Users\administrator>sqlplus system/*********@localhost:1521/orcl

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 20 18:12:10 2023

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

方式3:使用 网络服务名 登录
用法:sqlplus 用户名/密码@网络服务名

C:\Users\administrator>sqlplus system/*********@orcl

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 20 18:11:18 2023

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

(2)使用 PLSQL Developer 软件登录


方式1:使用 本地主机IP地址:端口/全局数据库名 登录

用法:

用户名:用户名
密码:密码
数据库:本地主机IP地址:端口/全局数据库名
连接为:Normal

【备注:本地主机IP地址可以填写 localhost 或 127.0.0.1 等。】

img


方式2:使用 网络服务名 登录

用法:

用户名:用户名
密码:密码
数据库:网络服务名
连接为:Normal

img

4. 远程连接数据库登录的几种方式

(1)使用 SQL*Plus 命令登录


sqlplus命令基本语法:

sqlplus [username]/[password][@connect_identifier][as sysdba]

说明:connect_identifier 的取值可以是“主机:端口/全局数据库名”,也可以是“网络服务名”。



方式1:使用 远程主机IP地址:端口/全局数据库名 登录
用法:sqlplus 用户名/密码@远程主机IP地址:端口/全局数据库名

C:\Users\administrator>sqlplus system/*********@10.0.71.191:1521/remote_orcl

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 20 19:17:24 2023

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

方式2:使用 网络服务名 登录
用法:sqlplus 用户名/密码@网络服务名

C:\Users\administrator>sqlplus system/*********@connect_identifier_remote_orcl

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 20 19:18:26 2023

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

(2)使用 PLSQL Developer 软件登录


方式1:使用 远程主机IP地址:端口/全局数据库名 登录

用法:

用户名:用户名
密码:密码
数据库:远程主机IP地址:端口/全局数据库名
连接为:Normal

img


方式2:使用 网络服务名 登录

用法:

用户名:用户名
密码:密码
数据库:网络服务名
连接为:Normal

img

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐