当前位置:首页 > 问答 > 正文

plsql里数据库监听怎么弄啊,有没有简单点的配置方法分享一下

数据库监听并不是PLSQL的一部分,PLSQL是Oracle数据库里用来写存储过程、函数的一种编程语言,而你所说的“数据库监听”,实际上是Oracle数据库的一个核心网络组件,它的名字叫“Oracle Net Listener”,通常简称为“监听器”或“Listener”。(来源:Oracle官方文档关于Oracle Net Services的概念介绍)

它的作用就像一个公司的总机接线员,数据库服务器是公司内部的各种部门,而各种想连接数据库的程序(比如你用的PL/SQL Developer、SQLplus或者其他应用程序)就是外部的来电者,来电者不可能直接知道每个员工的分机号,他们只需要拨打总机号码(也就是监听器监听的端口和地址),然后告诉接线员“我要找哪个公司的哪个部门”(也就是你要连接的数据库服务名),接线员(监听器)就会帮你转接到正确的数据库实例上。

配置监听器,其实就是设置好这个“总机接线员”在哪里接电话、以及它认识哪些“公司部门”,下面我分享一个最简单、最常用的配置方法,主要针对单机数据库环境。

最简单的方法:使用Oracle自带的图形化工具——Net Configuration Assistant

这是最推荐新手使用的方法,因为基本上是“下一步、下一步”就能完成。

  1. 找到工具: 在你的Oracle数据库服务器电脑上,点击“开始”菜单,在Oracle的相关程序组里,找到名为 “Net Configuration Assistant” 的工具并打开,如果你用的是Linux/Unix系统,可以在命令行输入 netca 命令来启动它。

    plsql里数据库监听怎么弄啊,有没有简单点的配置方法分享一下

  2. 选择配置类型: 工具启动后,会有一个向导界面,你通常会看到几个选项:

    • 监听程序配置
    • 命名方法配置
    • 本地网络服务名配置
    • 目录使用配置 我们这里要做的就是第一项:选择“监听程序配置”,然后点击“下一步”。
  3. 选择操作: 它会问你要对监听器做什么,因为是第一次配置,所以选择 “添加”,下一步”。(如果你的监听器已经存在但有问题,也可以在这里选择“重新配置”或“删除”)。

  4. 输入监听程序名: 它会让你给监听器起个名字,默认的名字通常是 LISTENER,除非你有特殊要求,否则直接用这个默认名字就行,下一步”。

  5. 选择协议: 这里要选择监听器使用什么网络协议来“接电话”,99%的情况都是使用 TCP 协议,所以直接选择“TCP”,下一步”。

    plsql里数据库监听怎么弄啊,有没有简单点的配置方法分享一下

  6. 指定端口号: 这是最关键的一步,相当于设置“总机号码”,默认的端口号是 1521,同样,除非这个端口号已经被其他程序占用了,否则强烈建议就用1521,因为所有客户端软件默认都会尝试连接这个端口,改了反而麻烦,直接使用标准端口1521,下一步”。

  7. 是否配置另一个监听器: 这里通常会问你是否要再配置一个监听器,对于简单应用,选择 “否” 就行了。

  8. 完成: 到此为止,最基本的监听器配置就完成了,向导会告诉你配置成功,你可以选择“下一步”再干点别的,或者直接“完成”退出工具。

配置完之后要做什么? 光配置好还不行,你得让这个“接线员”开始上班,你需要启动监听器服务。

plsql里数据库监听怎么弄啊,有没有简单点的配置方法分享一下

  • 在Windows上:直接到“服务”管理界面(可以在运行里输入 services.msc),找到名为“OracleOraDB...Home1TNSListener”的服务(名字中间部分可能因你的Oracle版本而异),确保它的状态是“已启动”。
  • 在命令行(通用):打开命令行窗口,输入以下命令:
    • lsnrctl start (启动监听器)
    • lsnrctl status (查看监听器状态,如果配置成功,你会看到它正在监听哪个地址和端口,并且会列出它知道的“数据库服务”,即“Service”列表)

另一个简单方法:手动编辑配置文件

如果服务器没有图形界面,或者你想更直接地控制,也可以手动编辑配置文件,这个方法需要你小心一点,但也不复杂。

监听器的配置文件叫 listener.ora,通常位于Oracle安装目录下的 network/admin 文件夹里($ORACLE_HOME/network/admin)。

你可以用文本编辑器打开它,一个最基本的 listener.ora 文件内容看起来是这样的:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = your_server_hostname_or_ip)(PORT = 1521))
    )
  )

你只需要修改其中的 your_server_hostname_or_ip 部分,如果你只是在数据库本机上连接,可以写成 localhost0.0.1,如果其他电脑也要连接这个数据库,就需要写成服务器电脑的真实IP地址或者完整的主机名。

保存文件后,同样需要在命令行用 lsnrctl stoplsnrctl start 重启监听器使配置生效。

总结一下最简单的步骤:

  1. 首选方法:运行 netca 图形化工具,跟着向导走,监听器名用 LISTENER,协议用 TCP,端口用 1521
  2. 然后:用 lsnrctl start 启动监听服务,并用 lsnrctl status 检查状态,确认能看到你的数据库服务名。
  3. 最后:在你的PLSQL开发工具(如PL/SQL Developer)里,连接数据库时,主机名就填数据库服务器的IP地址,端口填1521,服务名填你创建的数据库的名字(SID或Service Name)。

这样一套下来,监听器的基本配置就完成了,监听器是独立于PLSQL的数据库网络服务,把它理解成“总机接线员”会更容易掌握其核心作用。