Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称。SCAN 这个特性为客户端提供了单一的主机名,用于访问集群中运行的 Oracle 数据库。如果您在集群中添加或删除节点,使用 SCAN 的客户端无需更改自己的 TNS 配置。无论集群包含哪些节点,SCAN 资源及其关联的 IP 地址提供了一个稳定的名称供客户端进行连接使用。在Oracle 11g grid 安装时即要求为该特性配置DNS解析方式或GNS解析方式。本文描述了安装Oracle 11g grid时的DNS配置。
1、安装环境
#配置DNS,可以使用单独的DNS服务器,也可以直接使用RAC的一个节点来提供DNS解析
#直接使用某个节点时,容易出现该节点如果宕机将导致SCAN无法解析,客户端无法连接数据库
#本文仅作演示,,使用节点1的public ip用作dns,不考虑上面描述的情形以及DNS安全性等。
[root@node1 ~]# cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
2、主机节点host信息
[root@node1 ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6
127.0.0.1 localhost.szdb.com localhost
# Public eth0
192.168.7.71 node1.szdb.com node1 #该地址作为DNS服务器地址
192.168.7.72 node2.szdb.com node2
#Private eth1
10.10.7.71 node1-priv.szdb.com node1-priv
10.10.7.72 node2-priv.szdb.com node2-priv
#Virtual
192.168.7.81 node1-vip.szdb.com node1-vip
192.168.7.82 node2-vip.szdb.com node2-vip
#scan
192.168.7.91 scan-cluster1.szdb.com scan-cluster1
3、配置dns需要用到的安装包
[root@node1 dns_rpm]# ls -hltr
total 1.1M
-rw-r–r– 1 root root 45K Dec 7 18:04 bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm
-rw-r–r– 1 root root 985K Dec 7 18:04 bind-9.3.6-4.P1.el5_4.2.i386.rpm
-rw-r–r– 1 root root 61K Dec 7 18:04 caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm
#下面安装rpm包
[root@node1 dns_rpm]# rpm -Uvh bind-9.3.6-4.P1.el5_4.2.i386.rpm
warning: bind-9.3.6-4.P1.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing…########################################### [100%]
1:bind ########################################### [100%]
[root@node1 dns_rpm]# rpm -Uvh bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm
warning: bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing…########################################### [100%]
1:bind-chroot ########################################### [100%]
[root@node1 dns_rpm]# rpm -Uvh caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing…########################################### [100%]
1:caching-nameserver ########################################### [100%]
4、配置DNS
#关于DNS的配置,分为以下几个步骤
#a.安装所需的rpm包
#b.配置named.conf文件
#c.配置zone文件,包括正向和反向zone文件
#d.配置解析文件resolv.conf
#e.启动dns服务
[root@node1 ~]# cd /var/named/chroot/etc/
#使用下面的方式复制两个新的副本并修改,参数-p表示连同权限及属主,属组一同复制。切记不可忽略参数-p
[root@node1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@node1 etc]# cp -p named.rfc1912.zones named.zones
#修改named.conf文件,将源文件中的所有localhost以及127.0.0.1修改成any,注意any;前后保留空格
#该文件主要是配置dns监听那些端口以及ip地址并指明相应的名字解析zone文件名named.zones
#下面是修改后的named.conf文件
[root@node1 ~]# cat /var/named/chroot/etc/named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include “/etc/named.zones”;
};