Oracle 11gR2引入SCAN之后,SCAN的名称是作为连接RAC数据库的唯一别名。SCAN对应3个SCAN VIP,每次使用其中一个连接到数据库。这里就涉及如何解析SCAN名称的问题。
Oracle提供两种方法解析SCAN,一种是传统的DNS解析,另一种是Oracle提供的GNS解析。不管用哪种方法解析都需要配置DNS。下面对这两种解析方式的DNS配置进行讨论,使用DNS解析SCAN用到的软件是Red Hat Enterprise Linux自带的bind。虽然域名解析服务可以直接在节点服务器上配置,但为了RAC的高可用性,最好将域名解析服务配置在第三方的服务器上,最好是配置在企业级别的DNS服务器上。
使用DNS解析SCAN名称还是使用GNS来解析,考虑如下几点:
q 大多数的生产环境都不会提供DHCP服务,每个IP地址都有详细的安排、配置和记录,不会随意分配IP。
q 从目前对GNS的使用来看,效果并不理想,有时候会出现SCAN名称对应4个IP等异常情况。
q 从解析过程上比较,使用DNS解析要比GNS解析简单一些。
q GNS是GPnP(网格即插即用)的一部分,能够减少节点添加、删除需要完成的配置工作,但在实际的环境中,添加、删除节点发生的情况是很少的。
综上所述,更好的方式是使用DNS来解析,这样可以将SCAN VIP和节点的VIP固定,既方便管理,运行也很稳定。GNS作为一种新技术,在安装的时候也将讨论其配置方法。
1. DNS域名解析
SCAN类似传统的域名,SCAN名称对应固定的3个SCAN VIP,需要在3个SCAN VIP之间循环解析SCAN的名称,才能完成3个SCAN VIP的动态注册。
注意 不能通过在客户端上配置hosts文件来解析SCAN的名称,这样只能解析出其中一个VIP地址,不能实现循环解析。
DNS解析配置的步骤如下:
步骤1 安装软件包。
确保bind包已经成功安装在DNS服务器,如果未安装执行yum install bind命令进行安装。
步骤2 创建域。
在/etc/named.conf文件中加入如下的zone配置:
zone "4.168.192.IN-ADDR.ARPA." IN {#创建example.com的反向解析
type master;
file "192.168.4.db";
};
zone "example.com." IN {#创建example.com域
type master;
file "example.com.db";
};
步骤3 创建example.com.db配置文件。
在/var/named/目录下创建example.com.db文件,加入以下配置:
$TTL 1H
@ SOA homeserver.localdomain. root.homeserver.localdomain. ( 5
3H
1H
1W
1H )
NS homeserver.localdomain.
rhel-cluster-scan.grid IN 1H A 192.168.4.149
IN 1H A 192.168.4.150
IN 1H A 192.168.4.151
Hostserver是DNS服务器的机器名,localdomain是DNS服务器的域名。
步骤4 创建192.168.4.db配置文件。
在/var/named/目录下创建192.168.4.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain.grid.example.com.
root.homeserver.localdomain.grid.example.com. (2
3H
1H
1W
1H )
NS homeserver.localdomain.grid.example.com.
149 PTR rhel-cluster-scan.grid.example.com.
150 PTR rhel-cluster-scan.grid.example.com.
151 PTR rhel-cluster-scan.grid.example.com.
步骤5 重新启动DNS服务器软件。
执行以下命令重启DNS服务:
[root@rhel1 Server]# service named restart
Stopping named: [ OK ]
Starting named:
步骤6 DNS服务自动启动。
执行以下命令设置DNS服务自动启动:
chkconfig --level 35 named on
步骤7 DNS客户端配置。
所谓DNS客户端指的是需要通过DNS服务器解析域名的所有机器,在RAC环境中,所有的节点服务器都是DNS客户端。在每个 数据库服务器节点修改/etc/resolv.conf文件,确保有如下的search和nameserver配置。
search grid.example.com example.com
nameserver 192.168.4.102
注意 修改了以上DNS客户端配置之后,需要执行service network restart命令重启network服务才能生效。
步骤8 修改nsswitch.conf文件。
nsswitch.conf保存的是域名检索顺序。在一些系统配置中,NIS(Network Information System)可能会引起SCAN域名解析异常。为了避免这种问题的发生,对nsswitch.conf做如下调整。编辑/etc /nsswitch.conf文件,找到hosts开头的行,在该行的最后加入nis,修改结果如下:
hosts: files dns nis
步骤9 验证DNS配置。
DNS客户端和服务器都要能够完成下面的验证工作。下面是一段节点服务器的验证结果,同一个域名解析为3个IP地址,反复执行下面的命令看到解析的IP地址顺序应该是不同的。
[root@rhel1 ~]# nslookup rhel-cluster-scan.grid.example.com
Server: 192.168.4.102
Address: 192.168.4.102#53
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.151
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.152
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.150
如上所示,域名rhel-cluster-scan.grid.example.com域名能被解析为3个不同的IP地址,且多次执行nslookup rhel-cluster-scan.grid.example.com命令被解析的顺序是不同的。在操作系统多次执行ping rhel-cluster-scan.grid.example.com命令返回的IP地址应该是不同的,且是3个IP循环出现。
2. GNS域名解析
GNS是解析SCAN名称的另一种方式,由 Oracle 11gR2 Grid Infrastructure提供。使用这种方式不需要为SCAN VIP指定具体的IP地址,GNS会利用网络中的DHCP服务器为SCAN VIP自动分配IP地址,同时也不需要配置节点的VIP地址,GNS同样能够自动完成分配。GNS的优点之一在于可以减少RAC部署需要的配置工作。对于采用DNS解析域名的方式可以跳过这步的配置。
q 配置网段:192.168.4.0
q 域名(Domain):example.com
q GNS VIP:192.168.4.200
q GNS VIP域名:gns-server.example.com
q 子域名(SubDomain):grid.example.com
GNS解析配置的步骤如下:
步骤1 完成“DNS域名解析”中的步骤1。
步骤2 创建域。
在/etc/named.conf文件中加入如下zone配置:
zone "4.168.192.IN-ADDR.ARPA." IN {
type master;
file "192.168.4.db";
};
zone "example.com." IN {
type master;
file "example.com.db";
};
步骤3 创建example.com.db配置文件。
在/var/named/目录下创建example.com.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain root.homeserver.localdomain (
2
3H
1H
1W
1H )
NS homeserver.
gns-server IN 1H A 192.168.4.200
grid IN 1H NS gns-server
步骤4 创建192.168.4.db配置文件。
在/var/named/目录下创建192.168.4.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain root.homeserver.localdomain (
2
3H
1H
1W
1H )
NS homeserver.
200 PTR gns-server.example.com.
步骤5 完成“DNS域名解析”中的步骤5~8。
步骤6 验证配置。
客户端和服务器都要能够完成下面的验证工作。下面是一段客户端的验证结果,由于目前还没有安装Grid Infrastructure,没有创建SCAN,也没为SCAN分配VIP地址,只能先对配置的GNS VIP进行解析测试。
C:\Users\abin>nslookup gns-server.example.com
服务器: gns-server.example.com
Address: 192.168.4.200
名称: gns-server.example.com
Address: 192.168.4.200
如上所示,gns-server.example.com能被正常地解析。
3. DHCP服务配置
如果使用GNS方式解析域名,那么在环境中要求有DHCP服务,目前大部分硬件,如 路由器或带路由功能的交换机都自带有DHCP服务。如果环境中没有提供DHCP服务,那么需要完成以下配置。
步骤1 安装软件包。
确保系统安装了dhcp软件包,如果未安装执行yum install dhcp命令安装。
步骤2 修改DHCP配置文件。
在/etc/dhcpd.conf文件中加入如下的配置:
[root@networkserver Server]# cat /etc/dhcpd.conf
ddns-update-style none;
default-lease-time 259200;
max-lease-time 518400;
option routers 192.168.4.254;
option broadcast-address 192.168.4.255;
option domain-name-servers 192.168.4.111;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.253;
option subnet-mask 255.255.255.0;
option nis-domain "example.com";
option domain-name "example.com";
}
注意 每一行都以分号结束。如果dhcp启动失败,通过/var/log/messages文件查看换失败的具体原因。
表2-9 是对配置参数的简单说明。
表2-9 DHCP配置参数的说明
参数名 含 义
default-lease-time 默认租约时间
max-lease-time 最大租约时间
option routers 路由器地址
option broadcast-address 广播地址
option domain-name-servers DNS地址,多个DNS用逗号分隔
range DHCP分配IP的范围
option subnet-mask 子网掩码
option nis-domain NIS相关参数
option domain-name 域名
步骤3 启动DHCP服务。
执行以下命令启动DHCP服务:
[root@networkserver log]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
步骤4 设置DHCP服务器自动启动。
执行以下命令设置dhcpd服务在系统启动的时候自动启动:
chkconfig --level 35 dhcpd on
Oracle提供两种方法解析SCAN,一种是传统的DNS解析,另一种是Oracle提供的GNS解析。不管用哪种方法解析都需要配置DNS。下面对这两种解析方式的DNS配置进行讨论,使用DNS解析SCAN用到的软件是Red Hat Enterprise Linux自带的bind。虽然域名解析服务可以直接在节点服务器上配置,但为了RAC的高可用性,最好将域名解析服务配置在第三方的服务器上,最好是配置在企业级别的DNS服务器上。
使用DNS解析SCAN名称还是使用GNS来解析,考虑如下几点:
q 大多数的生产环境都不会提供DHCP服务,每个IP地址都有详细的安排、配置和记录,不会随意分配IP。
q 从目前对GNS的使用来看,效果并不理想,有时候会出现SCAN名称对应4个IP等异常情况。
q 从解析过程上比较,使用DNS解析要比GNS解析简单一些。
q GNS是GPnP(网格即插即用)的一部分,能够减少节点添加、删除需要完成的配置工作,但在实际的环境中,添加、删除节点发生的情况是很少的。
综上所述,更好的方式是使用DNS来解析,这样可以将SCAN VIP和节点的VIP固定,既方便管理,运行也很稳定。GNS作为一种新技术,在安装的时候也将讨论其配置方法。
1. DNS域名解析
SCAN类似传统的域名,SCAN名称对应固定的3个SCAN VIP,需要在3个SCAN VIP之间循环解析SCAN的名称,才能完成3个SCAN VIP的动态注册。
注意 不能通过在客户端上配置hosts文件来解析SCAN的名称,这样只能解析出其中一个VIP地址,不能实现循环解析。
DNS解析配置的步骤如下:
步骤1 安装软件包。
确保bind包已经成功安装在DNS服务器,如果未安装执行yum install bind命令进行安装。
步骤2 创建域。
在/etc/named.conf文件中加入如下的zone配置:
zone "4.168.192.IN-ADDR.ARPA." IN {#创建example.com的反向解析
type master;
file "192.168.4.db";
};
zone "example.com." IN {#创建example.com域
type master;
file "example.com.db";
};
步骤3 创建example.com.db配置文件。
在/var/named/目录下创建example.com.db文件,加入以下配置:
$TTL 1H
@ SOA homeserver.localdomain. root.homeserver.localdomain. ( 5
3H
1H
1W
1H )
NS homeserver.localdomain.
rhel-cluster-scan.grid IN 1H A 192.168.4.149
IN 1H A 192.168.4.150
IN 1H A 192.168.4.151
Hostserver是DNS服务器的机器名,localdomain是DNS服务器的域名。
步骤4 创建192.168.4.db配置文件。
在/var/named/目录下创建192.168.4.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain.grid.example.com.
root.homeserver.localdomain.grid.example.com. (2
3H
1H
1W
1H )
NS homeserver.localdomain.grid.example.com.
149 PTR rhel-cluster-scan.grid.example.com.
150 PTR rhel-cluster-scan.grid.example.com.
151 PTR rhel-cluster-scan.grid.example.com.
步骤5 重新启动DNS服务器软件。
执行以下命令重启DNS服务:
[root@rhel1 Server]# service named restart
Stopping named: [ OK ]
Starting named:
步骤6 DNS服务自动启动。
执行以下命令设置DNS服务自动启动:
chkconfig --level 35 named on
步骤7 DNS客户端配置。
所谓DNS客户端指的是需要通过DNS服务器解析域名的所有机器,在RAC环境中,所有的节点服务器都是DNS客户端。在每个 数据库服务器节点修改/etc/resolv.conf文件,确保有如下的search和nameserver配置。
search grid.example.com example.com
nameserver 192.168.4.102
注意 修改了以上DNS客户端配置之后,需要执行service network restart命令重启network服务才能生效。
步骤8 修改nsswitch.conf文件。
nsswitch.conf保存的是域名检索顺序。在一些系统配置中,NIS(Network Information System)可能会引起SCAN域名解析异常。为了避免这种问题的发生,对nsswitch.conf做如下调整。编辑/etc /nsswitch.conf文件,找到hosts开头的行,在该行的最后加入nis,修改结果如下:
hosts: files dns nis
步骤9 验证DNS配置。
DNS客户端和服务器都要能够完成下面的验证工作。下面是一段节点服务器的验证结果,同一个域名解析为3个IP地址,反复执行下面的命令看到解析的IP地址顺序应该是不同的。
[root@rhel1 ~]# nslookup rhel-cluster-scan.grid.example.com
Server: 192.168.4.102
Address: 192.168.4.102#53
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.151
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.152
Name: rhel-cluster-scan.grid.example.com
Address: 192.168.4.150
如上所示,域名rhel-cluster-scan.grid.example.com域名能被解析为3个不同的IP地址,且多次执行nslookup rhel-cluster-scan.grid.example.com命令被解析的顺序是不同的。在操作系统多次执行ping rhel-cluster-scan.grid.example.com命令返回的IP地址应该是不同的,且是3个IP循环出现。
2. GNS域名解析
GNS是解析SCAN名称的另一种方式,由 Oracle 11gR2 Grid Infrastructure提供。使用这种方式不需要为SCAN VIP指定具体的IP地址,GNS会利用网络中的DHCP服务器为SCAN VIP自动分配IP地址,同时也不需要配置节点的VIP地址,GNS同样能够自动完成分配。GNS的优点之一在于可以减少RAC部署需要的配置工作。对于采用DNS解析域名的方式可以跳过这步的配置。
q 配置网段:192.168.4.0
q 域名(Domain):example.com
q GNS VIP:192.168.4.200
q GNS VIP域名:gns-server.example.com
q 子域名(SubDomain):grid.example.com
GNS解析配置的步骤如下:
步骤1 完成“DNS域名解析”中的步骤1。
步骤2 创建域。
在/etc/named.conf文件中加入如下zone配置:
zone "4.168.192.IN-ADDR.ARPA." IN {
type master;
file "192.168.4.db";
};
zone "example.com." IN {
type master;
file "example.com.db";
};
步骤3 创建example.com.db配置文件。
在/var/named/目录下创建example.com.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain root.homeserver.localdomain (
2
3H
1H
1W
1H )
NS homeserver.
gns-server IN 1H A 192.168.4.200
grid IN 1H NS gns-server
步骤4 创建192.168.4.db配置文件。
在/var/named/目录下创建192.168.4.db文件,加入以下的配置:
$TTL 1H
@ SOA homeserver.localdomain root.homeserver.localdomain (
2
3H
1H
1W
1H )
NS homeserver.
200 PTR gns-server.example.com.
步骤5 完成“DNS域名解析”中的步骤5~8。
步骤6 验证配置。
客户端和服务器都要能够完成下面的验证工作。下面是一段客户端的验证结果,由于目前还没有安装Grid Infrastructure,没有创建SCAN,也没为SCAN分配VIP地址,只能先对配置的GNS VIP进行解析测试。
C:\Users\abin>nslookup gns-server.example.com
服务器: gns-server.example.com
Address: 192.168.4.200
名称: gns-server.example.com
Address: 192.168.4.200
如上所示,gns-server.example.com能被正常地解析。
3. DHCP服务配置
如果使用GNS方式解析域名,那么在环境中要求有DHCP服务,目前大部分硬件,如 路由器或带路由功能的交换机都自带有DHCP服务。如果环境中没有提供DHCP服务,那么需要完成以下配置。
步骤1 安装软件包。
确保系统安装了dhcp软件包,如果未安装执行yum install dhcp命令安装。
步骤2 修改DHCP配置文件。
在/etc/dhcpd.conf文件中加入如下的配置:
[root@networkserver Server]# cat /etc/dhcpd.conf
ddns-update-style none;
default-lease-time 259200;
max-lease-time 518400;
option routers 192.168.4.254;
option broadcast-address 192.168.4.255;
option domain-name-servers 192.168.4.111;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.253;
option subnet-mask 255.255.255.0;
option nis-domain "example.com";
option domain-name "example.com";
}
注意 每一行都以分号结束。如果dhcp启动失败,通过/var/log/messages文件查看换失败的具体原因。
表2-9 是对配置参数的简单说明。
表2-9 DHCP配置参数的说明
参数名 含 义
default-lease-time 默认租约时间
max-lease-time 最大租约时间
option routers 路由器地址
option broadcast-address 广播地址
option domain-name-servers DNS地址,多个DNS用逗号分隔
range DHCP分配IP的范围
option subnet-mask 子网掩码
option nis-domain NIS相关参数
option domain-name 域名
步骤3 启动DHCP服务。
执行以下命令启动DHCP服务:
[root@networkserver log]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
步骤4 设置DHCP服务器自动启动。
执行以下命令设置dhcpd服务在系统启动的时候自动启动:
chkconfig --level 35 dhcpd on