为11gR2 Grid Infrastructure增加新的public网络

在某些环境下,运行11.2版本的RAC数据库的服务器上,连接了多个public网络,那么就会有如下的需求:

  1. 给其他的,或者说是新的public网络增加新的VIP地址。
  2. 在新的public网络上增加SCAN VIP.
  3. 在新的VIP地址上配置监听
  4. 在新的SCAN VIP地址上配置监听

实际上从11.2版本开始,grid infrastructure(以下可能会简写为GI)就是一个完整的clusterware,不仅仅是用于数据库,也可以用作应用软件的高可用性。上述的4个需求中,第1个是毫无疑问需要的;第2个需求对运行在grid infrastructure上的应用是必要的;第3个需求在运行在grid infrastructure上的数据库来说是必要的;第4个需求,是针对数据库的,这个需求有点难度,因为在一套grid infrastructure中只能允许有一个SCAN LISTENER的存在,由于可以不通过SCAN IP而是直接通过VIP地址连接数据库,所以这个新的SCAN监听可以不需要,但是为了完整,我们可以用变通的方法来实现。

下面我们用一个实例来演示如何实现上述的所有需求。

先简单介绍一下用于演示的环境:11.2.0.1 grid infrastructure for linux 32bit,共2个节点,节点名是xty3和xty4,没有使用DNS(实际上在有DNS的环境下,也不太可能会有第2个public network),所以下面的演示是以没有DNS来配置的。Grid Infrastructure用的是oracle用户安装的(实际生产建议用单独的grid用户),而RDBMS软件也是用oracle安装的。目前的private network是192.168.153.0,对应的网卡设备名是en1,public network是192.168.0.0,对应的网卡设备名是en0,打算新增加的public network是192.168.76.0,对应的网卡设备名是en2。

先看看/etc/hosts文件的内容:

  1. 127.0.0.1    localhost.localdomain localhost
  2. ::1             localhost6.localdomain6 localhost6
  3. 192.168.0.134   xty3
  4. 192.168.0.144   xty4
  5. 192.168.153.134 xty3-priv
  6. 192.168.153.144 xty4-priv
  7. 192.168.0.135   xty3-vip
  8. 192.168.0.145   xty4-vip
  9. 192.168.0.155   xty-cluster-svip1

第1步,配置好新的public network的IP地址和网络路由。注意新的public network IP地址配好后,注意配置好网络路由。

第2步,在所有的节点上编辑/etc/hosts文件,增加如下内容:

  1. 192.168.76.134   xty3-pub2
  2. 192.168.76.144   xty4-pub2
  3. 192.168.76.135   xty3-vip2
  4. 192.168.76.145   xty4-vip2
  5. 192.168.76.155   xty-cluster-svip2

192.168.76.134和192.168.76.144是两个节点上新的public network的public ip,192.168.76.135和192.168.76.145是相对应的VIP地址,而192.168.76.155则是准备要在新的public network上增加的SCAN IP。而xty-cluster-svip2则是新增的SCAN名字。

第3步,增加新的public network上的vip地址,这一步比较简单,用root用户执行下面的命令:

view plaincopy to clipboardprint?

  1. srvctl add vip -n xty3 -k 2 -A xty3-vip2/255.255.255.0/eth2
  2. srvctl add vip -n xty4 -k 2 -A xty4-vip2/255.255.255.0/eth2

在上述命令中,-n参数后面跟的是节点名(hostname); -k后面的参数表示第几个网络,这里是2,表示第2个public network。-A后面就是VIP地址的属性了,格式为"VIP地址名/子网/网卡设备名"。

然后用crsctl来检查,vip资源已经存在:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl stat res -t | egrep "vip|network"
  2. ora.net1.network
  3. ora.net2.network
  4. ora.scan1.vip
  5. ora.xty3-vip2.vip
  6. ora.xty3.vip
  7. ora.xty4-vip2.vip
  8. ora.xty4.vip
  9. [[email protected] ~]# srvctl config vip -n xty3
  10. VIP exists.:xty3
  11. VIP exists.: /xty3-vip2/192.168.76.135/255.255.255.0/eth2
  12. VIP exists.:xty3
  13. VIP exists.: /xty3-vip/192.168.0.135/255.255.255.0/eth0
  14. [[email protected] ~]# srvctl config vip -n xty4
  15. VIP exists.:xty4
  16. VIP exists.: /xty4-vip2/192.168.76.145/255.255.255.0/eth2
  17. VIP exists.:xty4
  18. VIP exists.: /xty4-vip/192.168.0.145/255.255.255.0/eth0

ora.net2.network,ora.xty3-vip2.vip,ora.xty4-vip2.vip都是新增的资源。然后使用下面的命令启动新增的VIP:

  1. [[email protected] ~]# srvctl start vip -i xty3-vip2
  2. [[email protected] ~]# srvctl start vip -i xty4-vip2

使用ifconfig 命令也可以确认IP地址已经附加到了新增的public network上,即en2上。所以在这里,新增public network上的VIP配置成功。

第4步,我们来实现第3个需求,也就是在VIP地址上增加监听,这个步骤也很简单,用GI的用户(这个环境是oracle)执行下面的命令:

view plaincopy to clipboardprint?

  1. [[email protected] root]$ srvctl add listener -l LISTENER_N2 -s -p 1521 -k 2
  2. [[email protected] root]$ srvctl config listener  -a
  3. Name: LISTENER
  4. Network: 1, Owner: oracle
  5. Home: <crs home="">
  6. /oracle/app/grid on node(s) xty4,xty3
  7. End points: TCP:1521
  8. Name: LISTENER_N2
  9. Network: 2, Owner: oracle
  10. Home: </crs><crs home="">
  11. /oracle/app/grid on node(s) xty4,xty3
  12. End points: TCP:1521
  13. </crs>

启动并检查新增加的监听:

view plaincopy to clipboardprint?

  1. [[email protected] root]$ srvctl start listener -l LISTENER_N2
  2. [[email protected] root]$ lsnrctl status listener_n2
  3. LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-APR-2012 21:07:44
  4. Copyright (c) 1991, 2009, Oracle.  All rights reserved.
  5. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_N2)))
  6. STATUS of the LISTENER
  7. ------------------------
  8. Alias                     LISTENER_N2
  9. Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
  10. Start Date                24-APR-2012 21:04:14
  11. Uptime                    0 days 0 hr. 3 min. 30 sec
  12. Trace Level               off
  13. Security                  ON: Local OS Authentication
  14. SNMP                      OFF
  15. Listener Parameter File   /oracle/app/grid/network/admin/listener.ora
  16. Listener Log File         /oracle/app/grid/log/diag/tnslsnr/xty3/listener_n2/alert/log.xml
  17. Listening Endpoints Summary...
  18. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_N2)))
  19. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.76.135)(PORT=1521)))
  20. The listener supports no services
  21. The command completed successfully

可以看到,监听LISTENER_N2增加成功。增加监听也可以使用netca图形界面操作,但还是命令行操作快捷。不过从上面的输出可以看到,新的public
network上的监听并没有监听到相对应的public固定IP。实际上他们监听hostname对应的IP地址。这是由BUG
8678541引起,在11.2.0.2及以上版本中已经修复。

第5步,我们来实现第2个需求,也就是增加SCAN IP,实际上在GI中,只能有一个SCAN,所以新增加的“SCAN IP”,实际上应称为“Application IP”,用两种方法,先介绍简单的,用root命令执行:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# appvipcfg create -network=2 -ip=192.168.76.155 -vipname=xty-cluster-svip2 -user=root
  2. Production Copyright 2007, 2008, Oracle.All rights reserved
  3. 2012-04-24 21:29:23: Skipping type creation
  4. 2012-04-24 21:29:23: Create the Resource
  5. 2012-04-24 21:29:23: Executing cmd: /oracle/app/grid/bin/crsctl add resource xty-cluster-svip2 -type app.appvip.type -attr USR_ORA_VIP=192.168.76.155,START_DEPENDENCIES=hard(ora.net2.network) pullup(ora.net2.network),STOP_DEPENDENCIES=hard(ora.net2.network),ACL=‘owner:root:rwx,pgrp:root:r-x,other::r--,user:root:r-x‘

然后查看并启动资源:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl stat res -t | grep svip2
  2. xty-cluster-svip2
  3. [[email protected] ~]# crsctl start resource xty-cluster-svip2
  4. CRS-2672: Attempting to start ‘xty-cluster-svip2‘ on ‘xty3‘
  5. CRS-2676: Start of ‘xty-cluster-svip2‘ on ‘xty3‘ succeeded

使用ifconfig命令可以确认IP地址已经加到新的public network上了,由于这个是类似”SCAN IP“的地址,只能在一个节点上起。我们可以用下面的命令来调整这个IP到另一个节点上:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl relocate resource xty-cluster-svip2
  2. CRS-2673: Attempting to stop ‘xty-cluster-svip2‘ on ‘xty3‘
  3. CRS-2677: Stop of ‘xty-cluster-svip2‘ on ‘xty3‘ succeeded
  4. CRS-2672: Attempting to start ‘xty-cluster-svip2‘ on ‘xty4‘
  5. CRS-2676: Start of ‘xty-cluster-svip2‘ on ‘xty4‘ succeeded
  6. [[email protected] ~]# crsctl stat res xty-cluster-svip2 -p | grep -i type
  7. TYPE=app.appvip.type
  8. [[email protected] ~]# crsctl stat type app.appvip.type
  9. TYPE_NAME=app.appvip.type
  10. BASE_TYPE=cluster_resource

这个实现”SCAN IP“功能的application ip,不属于VIP,也不属于SCAN,因此这个资源是srvctl不能管理的。

下面介绍用第2种方法来实现新的public network上的"SCAN IP"。

把上面建好的资源xty-cluster-svip2停掉并删除:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl stop res xty-cluster-svip2
  2. CRS-2673: Attempting to stop ‘xty-cluster-svip2‘ on ‘xty4‘
  3. CRS-2677: Stop of ‘xty-cluster-svip2‘ on ‘xty4‘ succeeded
  4. [[email protected] ~]# crsctl delete res xty-cluster-svip2

然后执行下面的命令生成现有的SCAN IP的属性:

  1. [[email protected] ~]# crsctl stat res ora.scan1.vip -p > /tmp/1.txt

接着手工修改一下/tmp/1.txt文件,下面列出修改的部分:

view plaincopy to clipboardprint?

  1. NAME=ora.n2_scan1.vip
  2. SCAN_NAME=xty-cluster-svip2
  3. DESCRIPTION=Oracle SCAN VIP resource on network2
  4. SCAN_NAME=xty-cluster-svip2
  5. START_DEPENDENCIES=hard(ora.net2.network) dispersion:active(type:ora.scan_vip.type) pullup(ora.net2.network)
  6. STOP_DEPENDENCIES=hard(ora.net2.network)
  7. USR_ORA_VIP=192.168.76.155

然后配置SCAN并启动:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl add resource ora.n2_scan1.vip -type ora.scan_vip.type -file /tmp/1.txt
  2. [[email protected] ~]# srvctl config scan
  3. SCAN name: xty-cluster-svip2, Network: 2/192.168.76.0/255.255.255.0/eth2
  4. SCAN VIP name: n2_scan1, IP: /xty-cluster-svip2/192.168.76.155
  5. SCAN VIP name: scan1, IP: /xty-cluster-svip1/192.168.0.155
  6. [[email protected] ~]# crsctl start resource ora.n2_scan1.vip
  7. CRS-2672: Attempting to start ‘ora.n2_scan1.vip‘ on ‘xty3‘
  8. CRS-2676: Start of ‘ora.n2_scan1.vip‘ on ‘xty3‘ succeeded
  9. [[email protected] ~]# crsctl relocate resource ora.n2_scan1.vip
  10. CRS-2673: Attempting to stop ‘ora.n2_scan1.vip‘ on ‘xty3‘
  11. CRS-2677: Stop of ‘ora.n2_scan1.vip‘ on ‘xty3‘ succeeded
  12. CRS-2672: Attempting to start ‘ora.n2_scan1.vip‘ on ‘xty4‘
  13. CRS-2676: Start of ‘ora.n2_scan1.vip‘ on ‘xty4‘ succeeded

注意第2种方法使用的SCAN VIP资源的名字跟第1种方法不一样,在实际使用中,可以根据需要选择即可。不过注意在第2种方法中不要用ora.scan1_n2.vip这样的名字,否则srvctl查看这个资源时会出错。

看上去srvctl显示的结果有点异常,只有一个SCAN
Name,是新加的那个。不过至少可以用srvctl看到了,并且这也是可以理解的,因为目前就只能支持一个SCAN
Name,在本文仅处于研究的目的,所以这种方法不建议使用于生产,建议使用上面的第1种方法。

到目前为止,新的public network上的SCAN已经增加成功。

第6步,在新配的SCAN VIP上配置一个SCAN LISTENER。注意不能使用srvctl add
listener命令来配置,因为这种方式实际上是在所有的节点上都加了可同时启动的监听,需要增加的是scan listener。不过srvctl
add scan_listener是不会成功的,因为它会检测到在1521端口上已经有了SCAN
Listener,即使是在高版本的GI中,这个命令增加了-k 参数指定network,也是会报错的。因此只能使用类似上面第2种增加SCAN
VIP的方法来增加新的SCAN Listener,不过这次需要用GI的安装用户(此环境是oracle用户)来执行操作:

  1. [[email protected] root]$ crsctl stat res  ora.LISTENER_SCAN1.lsnr -p > /tmp/2.txt

修改/tmp/2.txt文件,修改的行如下:

view plaincopy to clipboardprint?

  1. NAME=ora.LISTENER_N2_SCAN1.lsnr
  2. DESCRIPTION=Oracle SCAN listener resource on network 2
  3. START_DEPENDENCIES=hard(ora.n2_scan1.vip) dispersion:active(type:ora.scan_listener.type) pullup(ora.n2_scan1.vip)
  4. STOP_DEPENDENCIES=hard(intermediate:ora.n2_scan1.vip)

然后配置SCAN Listener并启动:

view plaincopy to clipboardprint?

  1. [[email protected] root]$ crsctl add resource ora.listener_n2_scan1.lsnr -type ora.scan_listener.type -file /tmp/2.txt
  2. [[email protected] root]$ srvctl config scan_listener
  3. SCAN Listener LISTENER_N2_SCAN1 exists. Port: TCP:1521
  4. SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
  5. [[email protected] root]$ crsctl start resource ora.LISTENER_N2_SCAN1.lsnr
  6. CRS-2672: Attempting to start ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty4‘
  7. CRS-2676: Start of ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty4‘ succeeded

可以看到新增的SCAN Listener成功在节点xty4上启动,当然在之前的操作步骤中,新的SCAN VIP即N2_SCAN2是启动到了xty4上,所以这个监听也会在xty4上。

我们把新的SCAN VIP调整到节点xty3上:

view plaincopy to clipboardprint?

  1. [[email protected] ~]# crsctl relocate resource ora.n2_scan1.vip -f
  2. CRS-2673: Attempting to stop ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty4‘
  3. CRS-2677: Stop of ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty4‘ succeeded
  4. CRS-2673: Attempting to stop ‘ora.n2_scan1.vip‘ on ‘xty4‘
  5. CRS-2677: Stop of ‘ora.n2_scan1.vip‘ on ‘xty4‘ succeeded
  6. CRS-2672: Attempting to start ‘ora.n2_scan1.vip‘ on ‘xty3‘
  7. CRS-2676: Start of ‘ora.n2_scan1.vip‘ on ‘xty3‘ succeeded
  8. CRS-2672: Attempting to start ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty3‘
  9. CRS-2676: Start of ‘ora.LISTENER_N2_SCAN1.lsnr‘ on ‘xty3‘ succeeded
  10. [[email protected] ~]# su oracle
  11. [[email protected] root]$ lsnrctl status LISTENER_N2_SCAN1
  12. LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-APR-2012 23:29:49
  13. Copyright (c) 1991, 2009, Oracle.  All rights reserved.
  14. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_N2_SCAN1)))
  15. STATUS of the LISTENER
  16. ------------------------
  17. Alias                     LISTENER_N2_SCAN1
  18. Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
  19. Start Date                24-APR-2012 23:29:32
  20. Uptime                    0 days 0 hr. 0 min. 17 sec
  21. Trace Level               off
  22. Security                  ON: Local OS Authentication
  23. SNMP                      OFF
  24. Listener Parameter File   /oracle/app/grid/network/admin/listener.ora
  25. Listener Log File         /oracle/app/grid/log/diag/tnslsnr/xty3/listener_n2_scan1/alert/log.xml
  26. Listening Endpoints Summary...
  27. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_N2_SCAN1)))
  28. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.76.155)(PORT=1521)))
  29. The listener supports no services
  30. The command completed successfully

至此所有的操作已经完成。然后重启一下所有节点的crs,验证一下重启后是否正常。在关闭第1个节点的crs之后,第2个节点上顺利接管了所有的VIP地址,并且所有的SCAN
Listener也运行到了节点2上。然后重启两个节点的crs后,一切看起来比较正常。唯一的不足是由于BUG
8678541引起的问题,使新的public network的VIP地址上的监听,监听到了错误的IP地址上。

以上的操作全部是针对Grid Infrastructure,不过在数据库上,还需要调整参数LISTENER_NETWORKS,而不能使用local_listener和remote_listener参数。这个参数的设置,举例如下:

view plaincopy to clipboardprint?

  1. alter system set LISTENER_NETWORKS=‘((NAME=network1)(LOCAL_LISTENER=192.168.0.135:1521)(REMOTE_LISTENER=xty-cluster-svip1:1521))‘,‘((NAME=network2)(LOCAL_LISTENER=192.168.76.135:1521)(REMOTE_LISTENER=xty-cluster-svip2:1521))‘ sid=‘inst1‘;
  2. alter system set LISTENER_NETWORKS=‘((NAME=network1)(LOCAL_LISTENER=192.168.0.145:1521)(REMOTE_LISTENER=xty-cluster-svip1:1521))‘,‘((NAME=network2)(LOCAL_LISTENER=192.168.76.145:1521)(REMOTE_LISTENER=xty-cluster-svip2:1521))‘ sid=‘inst2‘;

实际上Grid Infrastructure已经是一个完整的clusterware,完全可以通过自定义的脚本来增加自己想要的资源,以实现高可用性。

本文参考了来自于MOS的文档《How to Configure A Second Listener on a Separate Network in 11.2 Grid Infrastructure [ID 1063571.1]》

原文地址:https://www.cnblogs.com/lcword/p/8297827.html

时间: 2024-11-10 07:39:35

为11gR2 Grid Infrastructure增加新的public网络的相关文章

INS-20802 PRVF-9802 PRVF-5184 PRVF-5186 After Successful Upgradeto 11gR2 Grid Infrastructure

INS-20802 PRVF-9802 PRVF-5184 PRVF-5186 After Successful Upgradeto 11gR2 Grid Infrastructure (文档 ID 974481.1) This document is being delivered to you viaOracle Support's Rapid Visibility (RaV) process and therefore has not beensubject to an independe

Grid Infrastructure Single Client Access Name (SCAN) Explained (文档 ID 887522.1)

APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.1 and laterExalogic Elastic Cloud X4-2 Half RackInformation in this document applies to any platform. PURPOSE 11gR2 Grid Infrastructure (CRS) introduced Single Client Access Name (SCAN

转://诊断 Grid Infrastructure 启动问题 (文档 ID 1623340.1) .

文档内容   用途   适用范围   详细信息   启动顺序:   集群状态   问题 1: OHASD 无法启动   问题 2: OHASD Agents  未启动   问题 3: OCSSD.BIN 无法启动   问题 4: CRSD.BIN 无法启动   问题 5: GPNPD.BIN 无法启动   问题 6: 其它的一些守护进程无法启动   问题 7: CRSD Agents 无法启动   问题 8: HAIP 无法启动       网络和域名解析的验证   日志文件位置, 属主和权限

Oracle 11gR2 RAC 安装Grid Infrastructure错误

Oracle 11gR2 RAC 安装Grid Infrastructure错误 系统环境: 操作系统:RedHat EL5 Cluster: Oracle GI(Grid Infrastructure) Oracle:  Oracle 11.2.0.1.0 如图所示:RAC 系统架构   对于Oracle 11G构建RAC首先需要构建GI(Grid Infrastructure)的架构 错误现象: 报:node2 检测用户信任关系错误,node2安装目录不可访问! 手工检测,node2与nod

为11.2.0.2 Grid Infrastructure添加节点

转自:http://www.askmaclean.com/archives/add-node-to-11-2-0-2-grid-infrastructure.html 在之前的文章中我介绍了为10g RAC Cluster添加节点的具体步骤.在11gr2中Oracle CRS升级为Grid Infrastructure,通过GI我们可以更方便地控制CRS资源如:VIP.ASM等等,这也导致了在为11.2中的GI添加节点时,同10gr2相比有着较大的差异. 这里我们要简述在11.2中为GI ADD

SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-010-Introduction为类增加新方法

一. 1.Introduction的作用是给类动态的增加方法 When Spring discovers a bean annotated with @Aspect , it will automatically create a proxy that delegates calls to either the proxied bean or to the introduction implementation, depending on whether the method called be

C#WinForm 用textbox与button控件,向xml文件中增加新的数据

1 旧的xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <datas> 3 <XianJia> 4 <ShengHao>女娲娘娘</ShengHao> 5 <Password>nwnn</Password> 6 </XianJia> 7 <XianJia> 8 <ShengHao>后土娘娘</Sh

RAC2——11g Grid Infrastructure的新机制

版权声明:本文为博主原创文章,未经博主允许不得转载. 可以看到,最初CRS(Cluster Ready Services)名词的起源就是因为10.1中作为集群软件的原因.后来经历了Clusterware,到了11g,终于改成了GI了. 11g新的进程: 安装结束后,会产生一些后台进程来确保集群正常工作并能够与外部通讯.其中的一些有序linux平台的要求需要以root用户权限来启动.比如,网络配置的改动就需要更高的权限.其他后台进程将以grid软件所在系统用户的权限来运行.下面的表格介绍主要的一些

Caffe中增加新的layer以及Caffe中triplet loss layer的实现

关于Tripletloss的原理,目标函数和梯度推导在上一篇博客中已经讲过了,具体见:Tripletloss原理以及梯度推导,这篇博文主要是讲caffe下实现Tripletloss,编程菜鸟,如果有写的不优化的地方,欢迎指出. 尊重原创,转载请注明:http://blog.csdn.net/tangwei2014 1.如何在caffe中增加新的layer 新版的caffe中增加新的layer,变得轻松多了,概括说来,分四步: 1)在./src/caffe/proto/caffe.proto 中增