使用netca配置listener

本文详细介绍了Oracle数据库监听器(netca)的配置方法,包括图形界面和静默方式,以及如何解决常见的TNS无监听错误。同时,阐述了网络服务名配置(tnsnames.ora)的重要性及其实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

netca的功能是配置网络相关服务,其中最重要的就是监听和网络服务名称配置(tnsnames.ora)

数据库安装完成后,发现没有配置listener。

$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 06-SEP-2019 06:10:41

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused

虽然不影响OS认证,但网络登录就不行了。例如:

# OS authentication OK
$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri Sep 6 06:11:29 2019

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

# easy connect FAILED
$ sqlplus sys/Welcome1@127.0.0.1:1521/orcl as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri Sep 6 06:12:04 2019

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

ERROR:
ORA-12541: TNS:no listener


Enter user-name:


监听(listener)的配置

图形方式

以下用netca GUI配置:
在这里插入图片描述
在这里插入图片描述
默认名称为LISTENER:
在这里插入图片描述
协议为TCP:
在这里插入图片描述
默认端口为1521:
在这里插入图片描述
在上面这步,如果报端口已使用,有可能是主机解析配置不正确:
在这里插入图片描述

例如以下是主机解析文件,出错时的配置被注释了,改为最后那行就通过了:

$ cat /etc/hosts
#127.0.0.1      ol7-vagrant     ol7-vagrant
10.0.2.15       ol7-vagrant

在这里插入图片描述

完成:
在这里插入图片描述
以下为安装日志:

[oracle@ol7-vagrant admin]$ netca

Oracle Net Services Configuration:
Configuring Listener:LISTENER
Listener configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /u01/app/oracle/product/12.2.0.1/dbhome_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0

配置完后监听自动启动:

$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 06-SEP-2019 06:30:20

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ol7-vagrant)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                06-SEP-2019 06:26:03
Uptime                    0 days 0 hr. 4 min. 16 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ol7-vagrant/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ol7-vagrant)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "91dd388726f468cde0530100007f7576" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

配置文件如下:

$ cd $ORACLE_HOME/network/admin

$ ls
listener.ora  samples  shrept.lst
[oracle@ol7-vagrant admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-vagrant)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

此时easy connect成功了:

sqlplus sys/Welcome1@127.0.0.1:1521/orcl as sysdba

静默方式

$ netca -help
Usage: netca [-silent] {<command> <options>}

Perform network configuration by specifying the following arguments:
    [-silent]
        -responsefile <Response file name>]
        [-local {Perform configuration on only local node}]
    -instype <typical|custom>
        [-listener <Listener name (only for custom install)>]
        [-lisport <TCP/IP port number>]
        [-lps <Starting TCP/IP port number (only for typical install)>]
        [-lpe <Ending TCP/IP port number (only for typical install)>]
        [-netnum <Network resource number (only for RAC)>]
        [-nostartlsnr {Do not start listener}]
    [-crsupgrade {Upgrade default listener from lower version database home to Grid Infrastructure home (only for RAC)}]
    [-inscomp <Comma separated list of installed components>]
    [-insprtcl <Comma separated list of installed protocols>]
    [-orahome <Oracle home>]
    [-orahnam <Oracle home name>]
    [-log <Log file name>]
    [-h|-help {Print usage}]
    [-listenerparameters {Comma separated list of the form parameter=value to specify the desired parameters for the selected listener}]

首先用netca GUI删除之前建立的监听。

$ netca

Oracle Net Services Configuration:
Stopping Oracle Net Listener:
    Running Listener Control:
      /u01/app/oracle/product/12.2.0.1/dbhome_1/bin/lsnrctl stop LISTENER
    Listener Control complete.
    Listener stopped successfully.
    Deleted listener: LISTENER
Oracle Net Services configuration successful. The exit code is 0

然后找一个示例响应文件:

$ cd $ORACLE_HOME
$ find . -name *.rsp
./install/response/db_2019-09-05_05-26-52AM.rsp
./inventory/response/oracle.server_EE.rsp
./inventory/response/db_install.rsp
./assistants/dbca/dbca.rsp
./assistants/netca/netca.rsp
./network/install/netca_typ.rsp
./network/install/netca_clt.rsp
./rdbms/admin/cdb_cloud/rsp/netca.rsp
./rdbms/admin/cdb_cloud/rsp/db.rsp

静默方式安装:

$ netca -silent -responsefile $ORACLE_HOME/network/install/netca_typ.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /u01/app/oracle/product/12.2.0.1/dbhome_1/network/install/netca_typ.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /u01/app/oracle/product/12.2.0.1/dbhome_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

监听启动后,需稍微一等,数据库就会注册上来,然后就可以sqlplus连接了。

网络服务名配置(tnsnames.ora)

netca还可以配置网络服务名,是用于客户端的解析,为listener.ora是用于服务器端的。
在这里插入图片描述
实际就是配置tnsnames.ora中的条目,就不赘述了。
以下为生成的配置文件:

$ cd $ORACLE_HOME/network/admin
$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-vagrant)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

定义了网络服务后。连接串可以简化:

# 之前
$ sqlplus sys/Welcome1@127.0.0.1:1521/orcl as sysdba
# 之后
$ sqlplus sys/Welcome1@orcl as sysdba

参考

  1. https://oracle-base.com/articles/misc/oracle-network-configuration
  2. https://sort.veritas.com/public/documents/ccser/5.2/windowsandunix/productguides/html/ccer_install/ch03s06.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值