Oracle 11gR2 RAC中的SCAN IP
Oracle 11gR2 中,引入了SCAN(Single ClientAccess Name)的特性。SCAN是一个域名,可以解析至少1个IP,最多解析3个SCAN IP,客户端可以通过这个SCAN 名字来访问数据库,另外SCAN ip必须与public ip和VIP在一个子网。 在11gR2之前配置TNS连接串使用的都是VIP,如果RAC集群添加节点或VIP有变化,就需要对所有的客户端的TNS配置进行修改,这样很麻烦,引入SCAN后就省去了这些麻烦。启用SCAN 之后,会在数据库与客户端之间,添加了一层虚拟的服务层,就是SCAN IP和SCAN IP Listener,在客户端仅需要配置SCAN IP的tns信息,通过SCANIP Listener,连接后台集群数据库。这样,不论集群数据库是否有添加或者删除节点的操作,均不会对客户端产生影响,也就不需要修改配置。 1、配置SCAN有3种方法: 1. 使用/etc/hosts文件 这个是我们目前用的最多的方式,但是缺点只能对应一个SCAN IP,该方法Oracle 不推荐,但是简单,不需要单独的DNS 服务器,使用该方法,客户端还是需要VIP来链接。 Oracle 推荐使用其他的2种方法来实现SCAN 功能。 2. 在DNS中定义域名,只需要在DNS中配置即可实现SCAN 功能。 3. 通过Grid Naming Server(GNS),需要配置DNS 和DHCP才能实现SCAN 功能。 注:这部分摘自David的博客,http://www.52php.cn/article/p-hdmwhbqi-bmn.html,我困惑的是使用第一种方法也可以使用SCAN IP来连接到数据库,但为什么davide说还是需要使用VIP来连接? 配置完成后就可以在TNS连接串用SCAN IP来连接数据库了。 2、SCAN工作流程 从Oracle给出的图中可以看到,图的右边是一个4个节点的RAC 集群,所以有4个Local Listener。 配置了3个SCAN IP和3个 SCAN Listeners。这3个SCAN IP 是随机的落在RAC节点上。 更多概念性的东西可以参考David的博客:http://www.52php.cn/article/p-hdmwhbqi-bmn.html。 3、实际管理SCAN 在安装RAC的时候,需要在/etc/hosts文件中配置一条如下的信息: 启动集群后可以看到关于SCAN的服务,它们被分在集群资源中,可以看到有vip服务和监听服务 使用srvctl进行管理scan,下面为查看SCAN和SCAN_LISTENER的状态和配置 下面看看SCAN Listenre的状态,和监听的服务 从上在的配置中可以看出,现在这个集群中只有一个SCAN IP,现在增加一个SCAN IP 先在两个节点的/etc/hosts文件中添加一个新的ip 192.168.56.27 rac-scan 添加完成后,修改SCAN服务 从上图中可以看到新的IP已经添加到了SCAN服务中,但还没有运行,执行下面命令 从上面的截图中可以看到虽然报错了,但scan2服务仍然启动了,虚拟IP也已经绑定到了网卡上 启动监听后查看第二个监听是否有数据库服务 连接成功。 参考:Grid Infrastructure Single Client Access Name (SCAN) Explained (文档 ID 887522.1) http://docs.oracle.com/cd/E11882_01/rac.112/e41960/toc.htm http://www.52php.cn/article/p-hdmwhbqi-bmn.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |