监听

个人理解:本来想通过scan ip来配置tns总数报12545,后来通过vip来配置tns

11g rac的监听在安装时创建,由grid用户管理监听,listener.ora文件在$ORACLE_HOME/network/admin目录中。rac中有asm实例和数据库实例。

[grid@node1 ~]$ sqlplus "/as sysasm"

SQL> show parameter listen;

NAME                      TYPE             VALUE
----------------      ----------- ------------------------------
listener_networks     string
local_listener            string       (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521))))
remote_listener        string

[grid@node2 ~]$ sqlplus "/as sysasm"

SQL> show parameter listen;

NAME                      TYPE             VALUE
----------------      ----------- ------------------------------
listener_networks     string
local_listener            string       (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip)(PORT=1521))))
remote_listener        string

查看监听状态:

节点1:

[grid@node1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 18-JAN-2016 06:09:17

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                18-JAN-2016 00:15:53

Uptime                    0 days 5 hr. 53 min. 23 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/11.2.0/grid/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/node1/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

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

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

Services Summary...

Service "+ASM" has 1 instance(s).

Instance "+ASM1", status READY, has 1 handler(s) for this service...

Service "RACDB" has 1 instance(s).

Instance "RACDB1", status READY, has 1 handler(s) for this service...

Service "RACDBXDB" has 1 instance(s).

Instance "RACDB1", status READY, has 1 handler(s) for this service...

(红色部分,如果在数据库实例中的host没有配置vip地址就不会显示)

The command completed successfully

节点2:

[grid@node2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 18-JAN-2016 06:10:51

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                18-JAN-2016 00:15:54

Uptime                    0 days 5 hr. 54 min. 59 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/11.2.0/grid/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/node2/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

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

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

Services Summary...

Service "+ASM" has 1 instance(s).

Instance "+ASM2", status READY, has 1 handler(s) for this service...

Service "RACDB" has 1 instance(s).

Instance "RACDB2", status READY, has 1 handler(s) for this service...

Service "RACDBXDB" has 1 instance(s).

Instance "RACDB2", status READY, has 1 handler(s) for this service...

The command completed successfully

查看oracle实例的listener配置:

[oracle@node2 ~]$ sqlplus "/as sysdba"

SQL> show parameter listen;

NAME                         TYPE              VALUE
-----------------      ----------- ------------------------------
listener_networks        string                                                                          (这个位置不能配置scan ip,试了不可行,本来想通过scan ip配置tns)
local_listener               string       (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip)(PORT=1521))))
remote_listener           string       rac-scan:1521

[oracle@node1 ~]$ sqlplus "/as sysdba"

SQL> show parameter listen;

NAME                         TYPE              VALUE
-----------------      ----------- ------------------------------
listener_networks        string
local_listener               string       (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521))))
remote_listener           string       rac-scan:1521

可通过下面语句修改参数:

alter system set local_listener = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521))))' scope=both sid='RACDB1';

alter system register;

tns:

第一种:

rac =

(DESCRIPTION =

(ADDRESS_LIST =

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

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

)

(CONNECT_DATA =

(SERVICE_NAME = RACDB)

)

)

这种情况,连接的实例挂掉,会断开重新连接另一个实例。

第二种:

TAF(Transparent Application Failover):

11g文档位置:Database Administration->Network Management->Local Naming Parameters(tnsname.ora)->

搜索retries ->Oracle Database Net Services Administrator's Guide

  Basic:

rac=

(DESCRIPTION=

(ADDRESS_LIST =

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

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

)

(LOAD_BALANCE = on)

(CONNECT_DATA=

(SERVICE_NAME=RACDB)

(FAILOVER_MODE=

(TYPE=select) –有session 和select (select 查询1w条,返回1k后挂掉,重新连接返回9k,session重新查询)两种

(METHOD=basic)

(RETRIES=20)

(DELAY=15)

)

)

)

--如果连接的实例挂掉,重新建立连接,不会先断开。

  Preconnect:

rac1=

(DESCRIPTION=

(ADDRESS=

(PROTOCOL=tcp)

(HOST=192.168.56.201)

(PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=RACDB)

(INSTANCE_NAME=RACDB1)

(FAILOVER_MODE=

(BACKUP=rac2)

(TYPE=select)

(METHOD=preconnect))))

rac2=

(DESCRIPTION=

(ADDRESS=

(PROTOCOL=tcp)

(HOST=192.168.56.201)

(PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=RACDB)

(INSTANCE_NAME=sales2)

(FAILOVER_MODE=

(BACKUP=RACDB2)

(TYPE=select)

(METHOD=preconnect))))

--切换快,但是浪费资源.先建立连接。

以上的方式为客户端,下面的方式为服务端。

第三种:

创建服务(oracle用户)

srvctl add service –d RACDB –s HAHA –r ‘RACDB2,RACDB1’ –P basic

启动服务

srvctl start service –d RACDB –s HAHA

show parameter service;服务名为HAHA不是RACDB.

通过函数修改

begin

dbms_service.modify_service(service_name     => 'HAHA',

failover_method  => 'dbms_service.failover_method_basic',

failover_type    => 'dbms_service.failover_type_select',

failover_retries => 180,

failover_delay   => 5);

end;

查看服务进程:crs_stat -t 列表中有没有HAHA的进程

客户端配置tns

rac-taf =

(DESCRIPTION =

(ADDRESS_LIST =

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

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

)

(CONNECT_DATA =

(SERVICE_NAME = HAHA)

)

)

srvctl:

srvctl status database –d RACDB

srvctl status instance –d RACDB –i RACDB1

srvctl stop instance –d RACDB –I RACDB2

RAC监听与tns的更多相关文章

  1. oracle 11G创建表空间、用户、配置监听和TNS

    最近总在安装各种版本的oralce数据库做测试,11G,32位的,64位的,12C的,每次都折腾表空间,用户.tns啥的,这里记录下,再也不用现用现百度找了 一.创建表空间.用户  在plsql工具中 ...

  2. Oracle rac 监听状态异常远程连接问题解决(TNS-12541 TNS-12560 TNS-00511 Linux Error:111 ORA-12502)

    问题1现象 数据导出脚本执行失败,报错如下 ORA-12537 到服务器上查看,报错: [oracle@test ~]$ lsnrctl status LSNRCTL - Production on ...

  3. ORACLE RAC 监听配置 (listener.ora tnsnames.ora)

    Oracle RAC 监听器的配置与单实例稍有不同,但原理和实现方法基本上是相同的.在Oracle中 tns进程用于为指定网络地址上的一个或多个Oracle 实例提供服务注册,并响应来自客户端对该服务 ...

  4. ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

    不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数 ...

  5. Oracle 11g RAC 环境下单实例非缺省监听及端口配置

    如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...

  6. oracle 11g rac修改监听端口(远程监听和本地监听)

    转至:https://www.cnblogs.com/yj411511/p/12459533.html 目录 1.修改远程监听端口 1.1 查看远程监听状态 1.2 修改SCAN listener端口 ...

  7. (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

    早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...

  8. oracle 11g RAC数据库监听配置相关

    oracle RAC 监听配置基本和单实例的配置相同 11g之后 安装RAC的过程中,不需要执行netca来手动创建监听,在安装集群软件的时候,会自动创建监听程序: 而在DBCA建库的时候,又会自动创 ...

  9. 解决Oracle监听错误的一种办法

    1:事出有因 安装oracle数据库,默认安装的是orcl数据库,安装完成后查看了一下字符集是gbk的,由于业务需要al32utf8的字符集,所以需要修改字符集,但是修改却无效.于是就删除了默认的or ...

随机推荐

  1. easy Html5 - Jquery Mobile之ToolBars(Header and Footer)

    jquery 在web js框架上的风暴还在继续却也随着移动终端走向了mobile:那么jquery mobile到底包括些什么呢 简介工具栏是在移动网站和应用中的头部,尾部或者内容中的工具条:Jqu ...

  2. Codeforces Round #180 (Div. 2) D. Fish Weight 贪心

    D. Fish Weight 题目连接: http://www.codeforces.com/contest/298/problem/D Description It is known that th ...

  3. Shell脚本[运算表达式,条件控制语句]

    #!/bin/bash #你值得收藏的四则表达式运算. val1=1 val2=1 val3=1 val4=1 val5=1 val6=1 val7=1 let val1++ ((val2++)) v ...

  4. boost.asio源码剖析(五) ---- 泛型与面向对象的完美结合

    有人说C++是带类的C:有人说C++是面向对象编程语言:有人说C++是面向过程与面向对象结合的语言.类似的评论网上有很多,虽然正确,却片面,是断章取义之言. C++是实践的产物,C++并没有为了成为某 ...

  5. IOS试题收集1

    IOS试题收集1 1.Objective C中有多继承吗?没有的话用什么代替? Protocol 2.Objective C中有私有方法吗?私有变量呢? OC类里面只有静态方法和实例方法这两种,@pr ...

  6. Xcode快照——管理应用程序版本

    转自:http://blog.csdn.net/yuanbohx/article/details/8919474 1.创建快照:FIle → Create Snapshot 2.查看快照:Window ...

  7. Orm图解教程

    entity framework框架生成摘要文档为空(没有元数据文档可用)的bug解决方案 西安.王磊 2012-10-25 10:47 阅读:1234 评论:2   ORM for Net主流框架汇 ...

  8. 解决ajax.net 1.0中文乱码问题!

      在使用ajax.net的UpdatePanel的时候,当requestEncoding编码为GB2312的时候,出现乱码.如果要解决这个问题最简单的就是改用utf-8了,但是原来使用GB2312, ...

  9. win7配置nginx+php步骤

    1.下载nginx: http://www.nginx.cn/nginx-download 2.下载php : http://www.php.net/downloads.php  (线程安全与非安全参 ...

  10. 代码片段 - Golang 实现简单的 Web 服务器

    ------------------------------ 下面一段代码,实现了最简单的 Web 服务器: 编译环境: Linux Mint 18 Cinnamon 64-bit Golang 1. ...