[ORACLE]监听相关配置及常见错误

906 阅读6分钟
  • 基于ORACLE10 G
  • 基于windows 2003 搭建的服务端
  • 客户端是win7的

一、准备工作(有经验的可忽略)

  1. 服务端安装好Oracle服务器
  • 2个服务需要存在并启动 在服务端,右键计算机->管理->服务和应用程序->服务 会有几个ORACLE开头的服务,一般有5个,默认3个是启动的,最关键的是后面2个。 一个服务是ORACLE..TNSListener,这个就是监听,我们今天的主角。 一个服务是ORACLEserviceORCL74。可以认为是服务器主程序。 上面2个必须是启动的,特殊的情况是监听程序可能是假启动,要刷新一下或者重新启动下,仍然是已启动方才证明是真的启动好的。
    image.png
  1. 客户端安装好client 正常的安装会在开始->程序中有很多的程序
    image.png

简单来说执行: 开始->运行->cmd->sqlplus -v能看到sqlplus的版本

C:\Users\Tanya>sqlplus -v

SQL*Plus: Release 10.2.0.1.0 - Production

开始->运行->cmd->netca 能弹出如下界面

image.png

  1. PLSQL安装完毕 这里有个坑是,PLSQL的804版本安装路径中不能含有:Program Files(x86)
    image.png

还要一个坑是win10以上的版本最好用管理员来运行

  1. 客户端和服务端互通 如果是虚拟机,虚拟机建议是桥接模式,从客户端ping服务端能ping通是

二、本地Net服务名配置

方法1

  1. 开始->运行->netca 或者开始->运行->程序->Oracle-OraClient10g_home1->配置和移植工具->Net Configuration Assistant

    image.png

  2. 点击本地Net服务名配置

    image.png

  3. 点击添加

    image.png

  4. 输入服务名

    image.png

此处的服务名怎么填写呢?还记得服务端的服务,最后一个是OracleServiceORCL74

image.png

这个服务是哪里来的呢?ORACLE服务端安装的时候第一个界面,全局数据库名:ORCL74

image.png

好像服务名=全局数据库名(其实有点问题,不能完全等同)

  1. 协议默认选择TCP即可

    image.png

  2. 主机名和端口号

  • 输入的主机名可以是服务端的IP地址或者服务端的计算机名
  • 端口号一般就默认1521,除非你修改过
    image.png
  1. 测试是否正常连接到数据库
  • 为了避免无法连接,我们测试一下
    image.png
  1. 测试结果
  • 正在连接...ORA-01017: invalid username/password; logon denied
  • ORA-01017: 无效的用户名密码,登录被拒绝
  • 为何会登录失败呢?因为oracle默认会用一组密码来登录,比如system好像是system,scott是tiger,sys好像是sys。所以才会失败
    image.png

其实出现这个提示,你都是可以登录的,连通没问题了,就是修改密码而已。我们直接可以下一步,当然你可以更改登录。输入正确的任意一组用户名和密码即可。

image.png

用户名和密码校验通过就会提示如下

image.png

  1. 网络服务名
  • 网络服务名:命名是可以任意的,但建议是以服务名_IP地址的格式,明确连接的是哪个机器上的哪个oracle服务。
    image.png

到这里就配置完毕了,下面就下一步,不再赘述。

方法2

其实方法1的配置,弄了半天是修改的什么呢?是修改的如下文件:(注意下面的文件路径是我本机的,跟您的可能会有区别,酌情修改) C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora

打开该文件,发现有如下内容

ORCL74_172.20.254.94 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.254.94)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl74) ) )

仔细看我加粗的部分

  1. ORCL74_172.20.254.94:就是方法一的步骤9,网络服务名
  2. TCP:就是步骤5:协议
  3. 172.20.254.194:步骤6的主机名
  4. 1521:步骤6的端口号
  5. orcl74:步骤4的服务名

其实方法一就是修改了这个文件,写入了这么一些信息,那么我们就不要那么多配置步骤了,直接来修改文件就可以了,复制这么一段内容,修改相应的信息就可以了!

三、常见的错误

  1. ORA-01017: invalid username/password; logon denied 这个错误解释过了,其实就是你用户名和密码中的一个弄错了

  2. ORA-28000: the account is locked 字面意思是:账号被锁定 原因:数据库服务器安装的时候口令管理没有解锁scott用户。 解决方法 (1)服务端开始->运行->cmd (2)cmd下执行:sqlplus / as sysdba (3)SQL>alter user scott account unlock; 提示已更改就对了。

    image.png
    (4)修改完毕重新测试即可

  3. ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 这个错误提示太清晰了,意思就是你的服务名不对。比如我的orcl74写成orcl744就可以出现该问题。

    image.png

  4. ORA-12170: TNS: 连接超时 出现这个错误的可能就多了。

  • 主机名ip地址错误
  • 主机名(计算机名)冲突,异常(局域网内无法ping的通)
  • 服务端没启动监听

前面2种就不说了,最后一种,如果没启动监听,去启动,但有可能会失败,只能试一下重配监听。 (1)在服务端一样的运行netca

image.png

(2)删除原来的监听

image.png

(3)选择监听

image.png

image.png

(4)下一步

image.png

(5)添加监听,再来一遍

  • 主界面

    image.png

  • 添加

    image.png

  • 监听名字

    image.png

  • 协议默认即可

    image.png

  • 端口号(在这里配置的)

    image.png

image.png

四、关于监听

image.png

Oracle Net监听(一般简称为监听)是非本地用户连接到Oracle实例的网关,一个监听可以服务多个数据库实例及多个客户端连接

配置和管理Oracle Network的工具

  • EM Net Services Administration页面
  • Net Manager(netmgr)
  • Net Configuration Assistan(netca)
  • 命令行(lsnrctl)

五、关于网络服务名

网络服务名配置好了,PLSQL才能看到。

image.png

如果PLSQL始终看不到配置好的网络服务名,那可能是客户端安装了多个。 而PLSQL还要用到CLIENT的一些文件(dll)和配置(环境变量),比如下面的2个。

image.png

PLSQL登录成功,界面左上角显示的就是:用户名@网络服务名

image.png


如果没有PLSQL,我们还可以通过命令行连接到数据库。

C:\Users\Tanya>sqlplus scott/a123456@orcl74_172.20.254.94

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 25 15:07:27 2019

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


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

要使用上述命令行连接必须要配置好网络服务名。