plsql查oracle监听端口号,oracle 监听详细设立+plsql监听配置

oracle 监听详细设置+plsql监听配置

一、监控文件说明:

1.TNS的详细配置文件

TNS的配置文件包括服务器端和客户端两部分:

1)服务器端:listener.ora、sqlnet.ora和tnsnames.ora

如果通过OCM(Oracle Connection Manage)和域名服务管理客户端连接,服务器端可能还包括cman.ora等文件;

2.客户端:tnsnames.ora,sqlnet.ora

listener.ora:监听器配置文件,成功启动后是驻留在服务器端的一个服务。

监听器是用来侦听客户端的连接请求以及建立客户端和服务器端连接通道的一个服务程序。

默认情况下Oracle在1521端口上侦听客户端连接请求。

sqlnet.ora:用来管理和约束或限制tns连接的配置,通过在该文件中设置一些参数,可以管理TNS连接。根据参数作用的不同,需要分别在服务器和客户端配置.

tnsnames.ora:配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息

3.TNS配置

可以通过Oracle Net Configuretion Assitant配置TNS,也可以手动配置。

首先在Oracle服务器端安装完成之后,应该先着手配置LISTENER,LISTENER是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件

首先监听器包括两个部分:Oracle要监听的地址、端口、通讯协议;Oracle要监听的数据库实例,非RAC环境下,LISTENER只能监听本服务器的地址和实例,RAC环境下,LISTENER还可以监听远程服务器。每个数据库最少要配置一个监听器。(注:RAC环境,指的是Oracle服务器集群配置的环境)

LISTENER部分配置了Oracle要监听的地址和端口信息;

HOST参数可以是Oracle服务器主机名称,也可以是相应的IP地址。在一个多IP的服务器上可以配置listener同时监听多个地址,比如下面的配置:

LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) )

或者可以配置多个监听器,分别监听不同的IP地址。

一般说的TNS配置其实就是对tnsnames.ora文件的配置,tnsnames.ora有客户端的配置,也有服务器端的配置。

tnsnames.ora也包括两部分,ADDRESS_LIST 部分包含了Oracle数据库服务器的监听地址信息,也就是要告诉TNS数据库可通过这个地址和CLIENT进行通讯;CONNECT_DATA 定义了CLIENT要连接的数据库,以及数据库的连接方式,(专用或共享)。

在一个多IP环境中,TNS也可以配置多个远程IP地址:

CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )

sqlnet.ora是个很重要的配置,它可以控制和管理Oracle连接的属性,根据参数作用的不同决定在客户端配置还是在server端配置。sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对所有的连接起作用,如果想对某个特殊的连接或服务进行约束或限制,可以在TNS配置相应参数。

二、监听文件的位置:

Oracle所有的TNS配置文件的默认路径:$ORACLE_HOME/network/admin

$ORACLE_HOME/network/admin/listener.ora

$ORACLE_HOME/network/admin/tnsnames.ora

我的ORACLE_HOME=/u01/oracle

所以监听文件在/u01/oracle/network/admin/listener.ora

三、监听文件配置

vi listener.ora

tinadb =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.12.253)(PORT=1521))

)

)

SID_LIST_tinadb =

(SID_LIST =

(SID_DESC =

(SID_NAME = tinadb)

(ORACLE_HOME=/u01/oracle)

)

)

host 可以填写数据库所在主机的主机名或者ip

port 可以默认1521,也可以指定其他端口

listener_name 监听名我直接使用的数据库名,也可以指定成其他,例如tina_pri  tina_dy

sid_name 必须跟实际数据库名保持一致

vi tnsnames.ora

tinadb_1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = tinadb)

)

)

四、启动监听

配置完成后:

监听器启动起来              $ lsnrctl start

停止监听器的命令为          $ lsnrctl stop

监测监听器当前状态的命令为  $ lsnrctl status

重新加载参数                $ lsnrctl reload

例如:

[oracle@oratest ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-DEC-2015 13:02:15

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

TNS-01106: Listener using listener name LISTENER has already been started

可以看到报错 LISTENER这个监听名已经启动

[oracle@oratest ~]$ lsnrctl stop

可以启动我们指定的监听名

[oracle@oratest admin]$ lsnrctl start tinadb

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-DEC-2015 13:49:06

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

Starting /u01/oracle/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production

System parameter file is /u01/oracle/network/admin/listener.ora

Log messages written to /u01/diag/tnslsnr/oratest/tinadb/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.253)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.12.253)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     tinadb

Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production

Start Date                10-DEC-2015 13:49:06

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/oracle/network/admin/listener.ora

Listener Log File         /u01/diag/tnslsnr/oratest/tinadb/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.253)(PORT=1521)))

Services Summary...

Service "tinadb" has 1 instance(s).

Instance "tinadb", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

UNKNOWN 静态注册(修改文件listener.ora)

READY  动态注册 (如果在数据库实例启动后再启动监听器,Listener.ora文件中不需要配置相关的SID信息, PMON会自动对监测到的Service进行注册)

打开客户端plsql

username:sys

password:创建时指定的密码

database:192.168.12.253:1521/tinadb

connect as sysdba

注意:database 这里也可以填写你在客户端tnsnames.ora 里面配置的服务名tinadb_1

五、可能遇到的报错有:

1)ORA-12154:TNS:could not resolve the connect identifier specified

上面的文件内容没有配置正确

2)$ lsnrctl start 启动报错提示:

The listener supports no services

The command completed successfully

客户端连接会报错:

ORA-12170:TNS:Connect timeout occurred

方法一:

在listener.ora里面添加了一行   --我们之前已经添加了,不行

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = orcl)

)

)

方法二:

登录数据库:

$sqlplus / as sysdba              --注册后发现依然不行

显示服务名:

SQL>show parameter service_names

强制注册服务:

SQL>alter system register;

查看监听状态:

$lsnrctl status

方法三:                             ---实际就是配置上面两个文件

后发现Oracle有个Net Manager可用:

Listeners->Database Services中配置要监听的SID及ORACLE_HOME,退出保存。

linux上面:

[root@localhost oracle]# xhost +

[root@localhost oracle]# su - oracle

[oracle@localhost ~]$ netmgr

方法四:

防火墙的原因

关闭防火墙  service iptables stop    ---最终发现是这个问题

六、plsql配置远程数据库连接(即监听文件的配置)

---1.只安装oracle的一个客户端软件,不安装oracle整个软件

前期工作:

检查oracle服务器端监听是否正常工作及了解监听信息。

1.首先检查监听程序是否能正常启动

2.用 tnsping 服务名 ,来检查tnsnames.ora服务配置是否正确。

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)

(SERVICE_NAME = tinadb)))

OK (10 msec)

PLSQL Developer设置说明:

1.安装PLSQL Developer

2.安装oracle instance client端。  ---这个是oracle的一个客户端

直接下载解压instanceclient-basic-nt-11.2.0.3.0.zip 到D盘instantclient_11_2目录即可。

3.启动PLSQL Developer ,选择cancle,no logged on。

4.选择tools》》preferences》》connection,在oracle home中输入安装好的oracle instance client目录,

在OCI LIBRARY中输入oracle instance client 的OCI.dll文件的具体路径

我的配置是:

ORACLE_HOME(empty is autodetect)

D:\instantclient_11_2

OCI library(empty is autodetect)

D:\instantclient_11_2\oci.dll

5.在oracle instance client根目录,如D:\data\database\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\中

建立tnsnames.ora名字解析文件,在其中输入对应的oracle服务器解析规则信息,可参考oracle服务器端的tnsnames.ora文件内容,如:

tinadb_1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = tinadb)

)

)

6.设置环境变量:

TNS_ADMIN=D:\instantclient_11_2(必须)

PATH=%PATH%;D:\instantclient_11_2(必须)

ORACLE_HOME=D:\instantclient_11_2(必须)

LD_LIBRARY_PATH=D:\instantclient_11_2(必须)

SQLPATH=D:\instantclient_11_2(可选)

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(可选) --我的是AMERICAN_AMERICA.AL32UTF8

添加oracle语言环境变量,添加环境变量:

“NLS_LANG = SIMPLIFIED CHINESE_CHINA.AL32UTF8”,(CHINESE_CHINA.AL32UTF8 是ASCII编码类型,其它类型可自己到服务器看一下,

在服务器上输入命令:select userenv('language') from dual;)。

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA.AL32UTF8

7.确定,重启程序

补充:

【通过DOS连接Oracle Server(当然可通过sqlplus)以下情况适用命令式连接远程的Oracle】

1 通过Net Configuration Assistant 配置本地的Listener

2 DOS> sqlplus/nolog

3 DOS> connect username/password@TNSName

----2.如果客户端这边已经安装了oracle软件,则直接指向oracle的home即可

plsql选择tools》》preferences》》connection,在oracle home中输入安装好的oracle instance client目录,

在OCI LIBRARY中输入oracle instance client 的OCI.dll文件的具体路径

我的配置是:

ORACLE_HOME(empty is autodetect)

D:\oracle11g\product\11.2.0\dbhome_1

OCI library(empty is autodetect)

D:\oracle11g\product\11.2.0\dbhome_1\bin\oci.dll

这时候只需要修改D:\oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora里面添加一个配置即可。

tinadb_1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = tinadb)

)

)

就可以直接通过以下信息连接到数据库

username:sys

password:创建时指定的密码tina

database:tinadb_1

connect as sysdba

命令行:

sqlplus system/tina@tinadb_1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题描述意味着在连接Linux系统上的Oracle数据库时出现了监听程序无法识别的错误。解决此问题需要以下步骤: 1. 首先,确保Oracle数据库监听程序正在运行。使用以下命令检监听程序的状态: ``` lsnrctl status ``` 如果监听程序没有运行,请启动它: ``` lsnrctl start ``` 2. 如果监听程序正在运行但无法识别,请检监听程序的配置文件,通常是 `listener.ora`。此文件通常位于 `$ORACLE_HOME/network/admin/` 目录中。确保配置文件中指定了正确的服务名称和口号。 3. 在配置文件中,看是否存在与数据库实例相对应的服务。每个数据库实例都应该在配置文件中定义一个服务。如果没有,请添加一个服务项,例如: ``` SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /u01/oracle/product/12.2.0/dbhome_1) (SID_NAME = ORCL) ) ) ``` 4. 确保在客户连接Oracle数据库时使用了正确的主机名、口号和服务名称。检连接字符串是否与监听程序配置文件中的定义匹配。 5. 如果以上步骤都无效,请尝试重新启动整个Oracle实例。首先关闭数据库: ``` sqlplus / as sysdba shutdown immediate; exit ``` 然后重新启动实例: ``` sqlplus / as sysdba startup; exit ``` 如果问题仍然存在,请检操作系统的防火墙设置,确保口号被允许通过。另外,还可以检Linux系统日志文件以获取更详细的错误信息,并Oracle文档或寻求Oracle技术支持的帮助来解决此问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值