签到成功

知道了

CNDBA社区CNDBA社区

RAC 添加/修改/管理 SCAN IP 和 Listener

2017-05-25 01:41 7569 0 原创 Oracle 11g Oracle 18c RAC
作者: dave
查看RAC的资源,与SCAN IP 有关系的有2个地方:SCAN 和SCAN LISTENER. 如果安装RAC的时候没有配置SCN IP, 那么可以手工的使用srvctl 命令来进行添加。

1 添加SCAN
[root@www.cndba.cn ~]# srvctl add scan -h

将 SCAN VIP 添加到 Oracle Clusterware。

用法: srvctl add scan -n <scan_name> [-k <network_number>] [-S <subnet>/<netmask>[/if1[|if2|...]]]
    -n <scan_name>           域名限定的 SCAN 名
    -k <net_num>             网络编号 (默认编号为 1)
    -S <subnet>/<netmask>/[if1[|if2...]]  网络的 NET 地址说明
    -h                       输出用法
[root@www.cndba.cn ~]# srvctl add scan -n rac-scan
2 添加SCAN LISTENER
[root@www.cndba.cn ~]# srvctl add scan_listener -h

添加监听指定端点的 SCAN 监听程序。

用法: srvctl add scan_listener [-l <lsnr_name_prefix>] [-s] [-p [TCP:]<port>[/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]] 
    -l <lsnr_prefix>         SCAN 监听程序名称前缀
    -s                       跳过端口检查
    -p [TCP:]<port>[/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]           SCAN 监听程序端点
    -h                       输出用法
[root@www.cndba.cn ~]# srvctl add scan_listener
3 确认添加

[root@www.cndba.cn ~]# srvctl start scan
[root@www.cndba.cn ~]# srvctl start scan_listener

[grid@www.cndba.cn admin]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.OCR.dg
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.asm
               ONLINE  ONLINE       rac1                     Started             
               ONLINE  ONLINE       rac2                     Started             
ora.gsd
               OFFLINE OFFLINE      rac1                                         
               OFFLINE OFFLINE      rac2                                         
ora.net1.network
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.ons
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                                         
ora.n9db.db
      1        ONLINE  ONLINE       rac1                     Open                
      2        ONLINE  ONLINE       rac2                     Open                
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                                         
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                                         
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                                         
[grid@www.cndba.cn admin]$


[grid@www.cndba.cn admin]$ srvctl config scan
SCAN 名称: rac-scan, 网络: 1/10.24.30.0/255.255.255.240/bond0
SCAN VIP 名称: scan1, IP: /rac-scan/10.24.30.6

[grid@www.cndba.cn admin]$ srvctl config scan_listener
SCAN 监听程序 LISTENER_SCAN1 已存在。端口: TCP:1521
[grid@www.cndba.cn admin]$
4 在不同节点之间relocate SCAN
[grid@www.cndba.cn rac2]$ srvctl relocate scan_listener -n rac1 -i 1 
5 修改SCNA IP地址
先修改/etc/hosts文件:
192.163.3.253 rac-scan

用root进行修改:
[root@www.cndba.cn ~]# srvctl modify scan -n rac-scan

检查修改结果:
[root@www.cndba.cn ~]# srvctl config scan

6 配置SCAN 监听服务

[grid@www.cndba.cn admin]$ lsnrctl status LISTENER_SCAN1

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-MAY-2017 00:36:46

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                24-MAY-2017 23:49:55
Uptime                    0 days 0 hr. 46 min. 50 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/gridsoft/11.2.0/network/admin/listener.ora
Listener Log File         /u01/gridsoft/11.2.0/log/diag/tnslsnr/rac2/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.24.30.6)(PORT=1521)))
The listener supports no services
The command completed successfully
[grid@www.cndba.cn admin]$
注意,到这一步虽然SCAN 已经配置成功,但是在监听中并看不到服务的信息。 这是因为还没有配置LOCAL_LISTENER和REMOTE_LISTENER参数。

在Oracle 用户的$ORACLE_HOME/network/admin/tnsnames.ora 文件中添加如下内容:

NODE2_LOCAL= 
   (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) 

NODE1_LOCAL=
 (ADDRESS = (PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))     

DAVE_REMOTE =
(DESCRIPTION =  
 (ADDRESS_LIST =  
  (ADDRESS = (PROTOCOL = TCP)(HOST=rac-scan)(PORT = 1521))   
  (ADDRESS = (PROTOCOL = TCP)(HOST=rac1-vip)(PORT = 1521))  
  (ADDRESS = (PROTOCOL = TCP)(HOST=rac2-vip)(PORT = 1521))   
 )  
)


测试:
$ tnsping node2_local
$ tnsping dave_remote


设置local_listener 参数
sql > alter system set LOCAL_LISTENER='NODE2_LOCAL' scope=both sid='orcl2';
sql> alter system set REMOTE_LISTENER='DAVE_REMOTE' scope=both sid='*';

SQL> alter system register;

System altered.

SQL> show parameter listener

NAME				     TYPE		    VALUE
------------------------------------ ---------------------- ------------------------------
listener_networks		     string
local_listener			     string		    NODE1_LOCAL
remote_listener 		     string		    DAVE_REMOTE
再次查看监听状态,就可以看到服务了:
[grid@www.cndba.cn ~]$ lsnrctl status LISTENER_SCAN1

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-MAY-2017 00:47:42

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                25-MAY-2017 00:42:38
Uptime                    0 days 0 hr. 5 min. 3 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/gridsoft/11.2.0/network/admin/listener.ora
Listener Log File         /u01/gridsoft/11.2.0/log/diag/tnslsnr/rac2/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.24.30.6)(PORT=1521)))
Services Summary...
Service "N9DB" has 2 instance(s).
  Instance "N9DB1", status READY, has 1 handler(s) for this service...
  Instance "N9DB2", status READY, has 1 handler(s) for this service...
Service "N9DBXDB" has 2 instance(s).
  Instance "N9DB1", status READY, has 1 handler(s) for this service...
  Instance "N9DB2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@www.cndba.cn ~]$
7 ORA-12545: Connect failed because target host or object does not exist 故障的解决

如果使用SCAN IP连接遇到ORA-12545的错误,那可能遇到bug了。 具体说明可以参考MOS文档:
ORA-12545 or ORA-12537 While Connecting to RAC through SCAN name [ID 970619.1]

客户端连接SCAN IP的时候会报如下错误:
C:/Users/Dave>sqlplus system/oracle@10.24.30.6/N9DB

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 25 01:26:30 2017

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

ERROR:
ORA-12545: Connect failed because target host or object does not exist


Enter user-name: ^C 
其解决方法就是修改LOCAL_LISTENER中的racx-vip 为具体的IP地址即可。 这里修改之前Oracle 用户的tnsnames.ora 文件中的配置,然后重新执行如下命令:

NODE2_LOCAL= 
   (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) 
NODE1_LOCAL=
 (ADDRESS = (PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))     


SQL> alter system set LOCAL_LISTENER='NODE1_LOCAL' scope=both sid='N9DB1';
System altered.
SQL> alter system set LOCAL_LISTENER='NODE2_LOCAL' scope=both sid='N9DB2';
System altered.
SQL> alter system register;

然后就可以顺利的利用SCAN IP 进行连接了:

C:/Users/Dave>sqlplus system/oracle@10.24.30.6:1521/N9DB

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 25 01:26:36 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL>


http://www.cndba.cn/dave/article/1933 http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933
http://www.cndba.cn/dave/article/1933 http://www.cndba.cn/dave/article/1933

版权声明:本文为博主原创文章,未经博主允许不得转载。

RAC 添加/修改/管理 SCAN IP 和 Listener

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2235
    原创
  • 2
    翻译
  • 535
    转载
  • 185
    评论
  • 访问:6525152次
  • 积分:4223
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ