1 介绍
Oracle单客户端访问名称(Single Client Access Name SCAN)是 Oracle Real Application Clusters环境中使用的一种功能,它为客户端提供单一名称,以访问群集中运行的任何Oracle数据库。您可以将SCAN视为群集中数据库的群集别名。好处是,如果在群集中添加或删除节点或数据库,则无需更改客户端的连接信息。
SCAN首次在Oracle Real Application Clusters(RAC)11g第2版引入,并在Oracle RAC 12 c中提供了其他功能。只需一个名称即可访问群集以连接到此群集中的数据库,客户端可以使用EZConnect和简单的JDBC 和URL访问群集中运行的任何数据库,而与群集中运行的数据库或服务器数量无关在群集中的哪个服务器上,请求的数据库实际上是激活的。
EZconnet sqlplus system/manager@sales1-scan:1521/oltp
JDBC connect jdbc:oracle:thin:@sales1-scan:1521/oltp
示例1:示例EZConnect和JDBC连接字符串
2 使用SCAN的网络要求
默认SCAN配置是在安装随Oracle Database 11g第2版或更高版本一起分发的Oracle Grid Infrastructure期间定义的。Oracle Grid Infrastructure是一个包含Oracle Clusterware和Oracle自动存储管理的单一Oracle主目录。
您必须首先安装Oracle Grid Infrastructure才能使用Oracle RAC 11g第2版或更高版本。在Oracle Grid Infrastructure安装的访谈阶段,系统将提示您提供SCAN名称。定义SCAN有两个选项:
1. 使用公司DNS(域名服务)定义SCAN
2. 使用Oracle网格命名服务(GNS)定义SCAN
选项1 - 使用公司DNS
如果选择选项1,则必须要求网络管理员使用循环算法创建至少一个可解析为三个IP地址的单一名称。无论集群中的服务器数量多少,都建议考虑负载平衡和高可用性要求,建议使用三个IP地址。
IP地址必须与群集中的默认公共网络位于同一子网中。名称长度不得超过15个字符,不包括域名,并且必须可以在没有域名后缀的情况下解析(例如:“sales1-scan”必须是可解析的,而不是“scan1-can.example.com”) 。不得将IP分配给网络接口,因为Oracle Clusterware将负责处理它。
sales1-scan.example.com IN A 133.22.67.194
IN A 133.22.67.193
IN A 133.22.67.192
示例2:SCAN的示例DNS条目
您可以使用“nslookup”检查DNS中的SCAN配置。如果您的DNS设置为提供对SCAN条目解析的IP的循环访问,则运行“nslookup”命令至少两次以查看循环算法的工作情况。结果应该是每次“nslookup”将以不同的顺序返回一组三个IP。
|
First nslookup |
Second nslookup |
|
[oracle@mynode] nslookup sales1-scan Server: 131.32.249.41 Address: 131.32.249.41#53 Non-authoritative answer: Name: sales1-scan.example.com Address: 133.22.67.192 Name: sales1-scan.example.com Address: 133.22.67.193 Name: sales1-scan.example.com Address: 133.22.67.194 |
[oracle@mynode] nslookup sales1-scan Server: 131.32.249.41 Address: 131.32.249.41#53 Non-authoritative answer: Name: sales1-scan.example.com Address: 133.22.67.193 Name: sales1-scan.example.com Address: 133.22.67.194 Name: sales1-scan.example.com Address: 133.22.67.192 |
示例3:使用“nslookup”在DNS中查找SCAN配置
注意:如果您的DNS服务器没有返回一组三个IP,如图3所示,或者没有Round-robin,请让网络管理员启用此类设置。DNS级别的循环允许在群集中浮动的SCAN监听LISTENER之间进行连接请求负载平衡。SCAN不需要作为一个整体运行,如果列表中的第一个SCAN监听器关闭,则缺少这样的设置不会阻止连接请求故障转移到另一个SCAN监听器。
Oracle客户端通常处理群集中SCAN监听LISTENER的连接请求的故障转移。Oracle Database 11g第2版或更高版本的Oracle客户端不需要任何特殊配置即可提供此类故障转移。老客户需要考虑其他配置[1]。因此,建议使用SCAN连接到数据库的客户端的最低版本是Oracle Database 11g第2版或更高版本。
使用客户端DNS缓存可能会产生错觉,即DNS服务器没有发生DNS循环调度发送IP地址(DNS不返回一组三个IP,如图3所示)。客户端DNS缓存通常用于降低对外部DNS服务器的DNS请求以及降低DNS解析时间。这是一个部署在本地的功能简单的递归DNS服务器。
如果无法将客户端DNS设置为在本地提供循环或无法禁用,则使用JDBC:thin connect 通常会尝试连接到列表中第一个返回的SCAN-IP和SCAN listener。这基本上禁用了来自这些客户端的群集中SCAN监听LISTENER之间的连接请求负载平衡,但不会影响整个SCAN功能。基于Oracle Call Interface(OCI)的数据库访问驱动程序将应用内部循环算法,在这种情况下不需要考虑。
选项2 - 使用Oracle网格命名服务(GNS)
如果选择选项2,则只需在安装期间对话框中输入SCAN名称。在群集配置的某个阶段,当使用基于IPv6的IP地址与Oracle RAC 12 c时,将从DHCP服务或使用“无状态地址自动配置”(SLAAC)获取三个IP地址(但是,假设您使用在您的公共网络上进行某种形式的动态IP分配)来创建SCAN。然后由GNS [2]提供SCAN名称解析。
3 如果在安装时没有DNS服务器可用,则解决方法如下
Oracle Universal Installer(OUI)强制在Oracle Grid期间提供默认的SCAN解析
基础架构安装,因为SCAN概念是在群集中创建Oracle RAC 11g第2版或更高版本数据库时必不可少的部分。用于创建数据库的所有Oracle Database 11g第2版或更高版本工具(例如,数据库配置助手(DBCA)或网络配置助手(NetCA))都将采用其存在。因此,在您提供合适的SCAN解析之前,OUI不会让您继续安装。

Oracle RAC SCAN是用于客户端访问群集数据库的单一名称,首次在11g第2版引入,12c中增强。SCAN通过DNS或GNS定义,实现客户端连接负载平衡和高可用性。客户端使用EZConnect或JDBC连接到SCAN,而无需关心实际数据库位置。配置中涉及DNS循环解析、Oracle Grid Infrastructure、多子网支持以及与客户端的兼容性。文中还讨论了使用SCAN进行数据库配置、客户端负载平衡和不同版本的兼容性问题。
最低0.47元/天 解锁文章
2677

被折叠的 条评论
为什么被折叠?



