设为首页 加入收藏

TOP

OCP专题之网络(四)
2015-07-24 10:23:05 来源: 作者: 【 】 浏览:4
Tags:OCP 专题 网络
No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 2: No such file or directory

问题11:如何实现启动监听后,立即完成注册?

启动监听后一般要过60秒才会完成注册,但可以在sqlplus中手工执行命令,使其立即完成注册,操作如下:

SQL> alter system register;

此命令会触发pmon进程去将实例名字动态注册到监听中去。

问题12:如何生成tnsnames.ora文件?

参考图形化配置的方法,可以使用netca命令,调出图形化配置选项,如下选择第三项即为配置tnsnames.ora文件,配置好后会自动生成一个tnsnames.ora文件。

\

\

\

\

\

选择进行测试一下,如下:

\

\

下面这个服务名可以任意取,与前面的数据库服务名是两个概念,请注意。

\

点击完成选项,完成tnsnames.ora文件的创建,如下图所示:

\

问题13:在添加tnsnames.ora时会要求填写数据库服务名,这个名字应该依据什么进行填写?

在sqlplus中使用如下命令,即可查看到服务名。

SQL> show parameter service

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      hyl

问题14:如何查看1521端口的占用情况?

[root@hyldb ~]# netstat -tulnp|grep 1521

tcp 0 0 192.168.1.123:1521 0.0.0.0:* LISTEN 3473/tnslsnr

一般数据库服务器上本身会有不止一块网卡,通过命令可以查看到使用的哪一个网卡。

问题15:如何查看到tnsnames.ora文件及应该注意什么?

SQL> show parameter service

NAME                                 TYPE        VALUE

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

service_names                        string      hyl


注意这里上面的“HYL”是可以任意取得,而下面的SERVICE_NAME = hyl,这里的SERVICE_NAME必须要和数据库服务名完全一样。

问题16:客户端连接数据库书写格式是怎样及为何这样书写?

一般书写格式为username/password@servicename。

之所以这种格式书写,是因为当遇到@这个符号时,oracle会自动到tnsnames.ora文件中解析@后跟的字符串。通过tnsnames文件解析字符串,tnsnames.ora文件中包含IP地址、端口号、数据库服务名。也就是说,当客户端进行sqlplus书写格式登陆数据库时,oracle会根据@字符后的字符串去到tnsnames.ora文件中对应的字符串解析出IP地址、端口号、数据库服务名的信息。

问题17:当客户端无法连接oracle数据库时,如何进行排错?

(1)、查看客户端tnsnames.ora文件设置是否正确,检查service_name(参考问题13)是否与数据库端相同;

(2)、查看服务器段IP地址、端口号(参考问题14)是否正确;

(3)、客户端使用tnsping命令ping服务名,查看情况,如下代表可以解析成功:

[oracle@hyldb admin]$ tnsping beijing_daotian

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-OCT-2014 01:34:07
Copyright (c) 1997, 2013, Oracle.  All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = hyl)))
OK (10 msec)

这里要注意,tns可以ping成功,也可能存在其它问题致使无法连接oracle,如你使用了一个没有注册到监听的service_name,tnsping可以完成,但此情况是无法连接数据库的。

问题18:在oracle网络中几个文件涉及到了service_name这个概念,之间是怎样的关系?

tnsnames.ora中service_name和listener.ora(监听文件)中service_name是对应的,应该与oracle的service_name相一致。当客户端发出请求时,会根据tnsnames.ora中的service_name与数据库服务器端监听文件中的service_name进行比对,只有一致时才会完成解析工作,客户端同监听建立起连接。这样监听才会把连接转移到数据库实例上,而实现客户端与oracle建立连接。

问题19:静态注册、动态注册的区别?

静态注册需要手工在listener.ora文件中添加内容,如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = 数据库服务名)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

(SID_NAME = 数据库实例名)

)

)

注册后可以查看效果,按如下操作:

[oracle@hyldb admin]$ lsnrctl stop

[oracle@hyldb admin]$ lsnrctl start

[oracle@hyldb admin]$ lsnrctl status

--查看到其中标识有UNKNOWN代表静态注册的监听

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 04-OCT-2014 12:28:47
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hyldb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 -
首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇海量数据处理算法之BloomFilter 下一篇rac_grid自检出现网络问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)