日期:2014-05-16  浏览次数:20574 次

Oracle 11.2中SCAN的鸡肋功能

??????? Oracle 11.2 SCAN 功能,我认为是鸡肋。

(墙内:http://mikixiyou.iteye.com/blog/1507412)

(墙外:http://mikixiyou.blogspot.com/2012/05/oracle-112scan.html )

Oracle 所言,SCAN 的最主要的目的是方便访问RAC 的客户端数据库连接配置。在RAC 增加或减少节点时,客户端不必修改连接配置了,这是因为它使用SCAN 访问RAC

(miki西游的文档,原文链接http://mikixiyou.iteye.com/blog/1507412,转载请著名出处和作者)

Oracle 推挤了两种配置SCN 的方法DNS Grid Naming Solutions (GNS)

这两种方法都和网络管理系统密切地结合在一起。对于多层的应用系统而言,这种配置将故障点又扩展到网络层了。哪天DNS 服务器解析不了,就会导致RAC 不能访问。

SCAN 仅仅是客户端访问数据库的一个新的通道。以前VIP 访问机制照样可以正常使用。因此,我们完全绕开这个机制。

在安装配置时,伪造一个SCAN ,保证安装成功。在以后的使用中,继续使用VIP 访问RAC 数据库。这样就可以绕开SCAN

下面以linux 环境为例,展示伪造方法如下:

/etc/hosts 中增加一个条目,配置SCANIP 地址和名称;再到/usr/bin/nslookup 文件修改,将其备份一份为nslookup.original, 修改文件内容为:

/usr/bin@serv1=>servdb1$more nslookup

#!/bin/bash

?

HOSTNAME=${1}

?

if [[ $HOSTNAME = "serv-scan" ]]; then

??? echo "Server:???????? 24.154.1.34"

??? echo "Address:??????? 24.154.1.34#53"

??? echo "Non-authoritative answer:"

??? echo "Name:?? serv-scan"

??? echo "Address: 192.168.15.193"

else

??? /usr/bin/nslookup.original $HOSTNAME

fi

?

其实,nslookup 文件你都可以不修改,任其在RAC 安装校验步骤报错,忽略掉可以继续安装。

?

如果SCAN功能不用,下面一个参数注意了。这是一定要修改的,否则将导致数据库启动不成功。