Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP

最近安装了一下Oracle 11gR2RAC 但是11gR2版本的RAC 采用的是SCAN IP.

Oracle 11gR2以前,如果数据库采用了RAC架构,在客户端的tnsnames中,需要配置多个节点的连接信息,从而实现诸如负载均衡,failover等等RAC的特性。因此,当数据库RAC集群需要添加或删除节点时,需要及时对客户端机器的tns进行更新,以免出现安全隐患。

11gR2中,为了简化该项配置工作,引入了SCANSingle Client Access Name)的特性,该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的scan ip以及scan ip listener,在客户端仅需要配置scan iptns信息,通过scan ip listener,连接后台集群数据库。这样,不论集群数据库是否有添加或者删除节点的操作,均不会对client产生影响。

可以把scan理解为一个虚拟主机名,它对应的是整个RAC集群。客户端主机只需通过这个scan name即可访问数据库集群的任意节点。当然访问的节点是随机的,oracle强烈建议通过DNS Serverround robin模式配置解析SCAN,实现负载均衡(即轮换连接SCAN对应的IP地址)。这有点类似通过viplistener loadbalance配置实现负载均衡的原理。

更多信息参考我的Blog

Oracle 11gR2 RAC 新特性说明

http://blog.csdn.net/tianlesoftware/archive/2010/11/02/5982972.aspx

. 安装DNS Server

在安装Redhat 系统的时候,有提示安装DNS Server 不过那时为了简单,就没有安装。 这里要用到DNS,就只能在安装一下。 安装需要的RPM包安装镜像里有。 找到一下包,并安装:

bind-9.3.6-4.P1.el5.i386.rpm --提供核心的二进制程序

bind-chroot-9.3.6-4.P1.el5.i386.rpm --提供安装性

caching-nameserver-9.3.6-4.P1.el5.i386.rpm --提供模板文件

[root@rac1 Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[root@rac1 Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[root@rac1 Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

DNS的守护进程

/usr/sbin/named

/usr/sbin/rndc

DNS的脚本

/etc/init.d/named

DNS的端口

53 953(tcpudp)

DNS的配置文件

/var/named/chroot/etc/named.conf(主配置文件)

/var/named/chroot/*

. 配置DNS Server

1. 复制named.conf 文件

由于安装了chroot环境,所以DNS主配置文件应该在/var/named/chroot/etc目录下面。

[root@rac1 etc]# cd /var/named/chroot/

[root@rac1 chroot]# ls

dev etc var

[root@rac1 chroot]# cd etc/

[root@rac1 etc]# ls

localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key

查看named.caching-nameserver.conf 文件:

[root@rac1 etc]# cat named.caching-nameserver.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.

//

...

这里提示不要直接的编辑该文件,去创建一个named.conf文件,然后编辑named.conf文件,当有了named.conf,将不在读取这个文件。

现在开始复制:

[root@rac1 etc]# cp -p named.caching-nameserver.conf named.conf

-P的参数,保留权限。否则启动服务的时候会报权限拒绝的。

查看一下文件权限是否一致:

[root@rac1 etc]# ls -lrt

total 40

-rw-r----- 1 root named 955 Jul 30 2009 named.rfc1912.zones

-rw-r----- 1 root named 1230 Jul 30 2009 named.conf

-rw-r----- 1 root named 1230 Jul 30 2009 named.caching-nameserver.conf

-rw-r--r-- 1 root root 405 Nov 6 01:13 localtime

-rw-r----- 1 root named 113 Nov 13 14:16 rndc.key

2. 查看编辑named.conf 文件:

[root@rac1 etc]# cat named.conf

options { ---代表全局配置

listen-on port 53 { 127.0.0.1; }; -- DNS服务监听在所有接口

listen-on-v6 port 53 { ::1; }; -- ipv6监听在本地回环接口

directory "/var/named";

--zone文件的存放目录,指的是chroot环境下面的/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 { localhost; };

--允许查询的客户端,本实验中需要修改成本地网段

allow-query-cache { localhost; };

--允许那些客户端来查询缓存,any表示允许任何人。

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

--定义日志的存放位置在/var/named/chroot/var/named/data/目录下面

view localhost_resolver {

match-clients { localhost; };

match-destinations { localhost; };

recursion yes;

include "/etc/named.rfc1912.zones";

};

-- 定义视图的功能,

--Match-clients 是指匹配的客户端

--Match-destination 是指匹配的目标

编辑named.conf文件,将

listen-on port 53 { 127.0.0.1; };

allow-query { localhost; };

match-clients { localhost; };

match-destinations { localhost; };

allow-query-cache { localhost; };

中的内容修改成{ any; } 注意两边空格,然后保存退出

3. 定义Zone 文件 (编辑named.rfc1912.zones文件)

[root@rac1 etc]# cat named.rfc1912.zones

zone "." IN {

type hint; -- 根区域的类型为hint

file "named.ca"; -- 区域文件是named.ca,

--named.ca文件中就定义了全球的13台根服务器

};

-- Zone “.”代表根区域

-- IN代表Internet记录

zone "localdomain" IN {

type master; -- 区域的类型为主要的

file "localdomain.zone";

allow-update { none; }; --默认情况下,是否允许客户端自动更新

};

zone "localhost" IN {

type master;

file "localhost.zone";

allow-update { none; };

};

-- zone "localhost" 定义正向解析的区域

-- file "localhost.zone"; 指定正向解析的区域文件是localhost.zone

- -localhost.zone文件中就定义DNS的正向解析数据库

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

allow-update { none; };

};

-- zone "0.0.127.in-addr.arpa" localhost定义反向解析的区域

-- file "named.local"; 指定反向解析的区域文件是named.local

-- named.local文件中就定义DNS反向解析的数据库

zone "255.in-addr.arpa" IN {

type master;

file "named.broadcast";

allow-update { none; };

};

zone "0.in-addr.arpa" IN {

type master;

file "named.zero";

allow-update { none; };

};

我们配置zone的目的是为了解析SCAN IP 所以我们在Zone 文件里添加一下内容:

-- 配置正向解析Zone

zone "tianlesoftware.com" IN { -- 注意,这个域名要和后面配置的一致

type master;

file "rac.tianlesoftware.zone";

allow-update { none; };

};

-- 配置反向解析Zone

zone "6.168.192.in-addr.arpa" IN {

type master;

file "rac.tianlesoftware.local";

allow-update { none; };

};

这里需要注意的是,反向解析从左到右读取ip地址时是以相反的方向解释的,所以需要将ip地址反向排列。这里,192.168.6.*网段的反向解析域名为"6.168.192.in-addr.arpa”

4. 复制模板文件成数据库文件

[root@rac1 etc]# cd /var/named/chroot/var/named

[root@rac1 named]# ls

data localhost.zone named.ca named.local slaves

localdomain.zone named.broadcast named.ip6.local named.zero

可以看到,在chroot环境下面的/var/named/有很多模板文件。

Named.ca就是根区域的数据库文件.

localhost.zone复制成rac.tianlesoftware.zone,这个是正向解析的数据库文件

named.local复制成rac.tianlesoftware.local,这个是反向解析的数据库文件

这个名称一定要和/etc/named.rfc1912.zones这个文件里面,我们刚才添加的一致。

[root@rac1 named]# cp -p localhost.zone rac.tianlesoftware.zone

[root@rac1 named]# cp -p named.local rac.tianlesoftware.local

[root@rac1 named]# ls

data localhost.zone named.ca named.local rac.tianlesoftware.local slaves

localdomain.zone named.broadcast named.ip6.local named.zero rac.tianlesoftware.zone

至此,正向解析和反向解析的数据库文件就创建完成。

5. 定义数据库文件

1定义正向解析数据库文件

[root@rac1 named]# vim rac.tianlesoftware.zone

$TTL 86400

@ IN SOA tianlesoftware.com root.tianlesoftware.com (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

IN NS tianlesoftware.com

rac-scan IN A 192.168.6.100

rac-scan IN A 192.168.6.200

说明,因为我的11gR2 测试是2个节点的RAC 所以这里就添加了2rac-scan 如果节点比较多,可以多添加几个rac-scan rac-scan 至少要有一个。 并且这些IP RAC安装之前不能被使用。

一些参数说明:

$TTL 86400-- 最小的存活的时间是86400S24H

@ IN SOA tianlesoftware.com root.tianlesoftware.com (

--这是一笔SOA记录,只允许存在一个SOA记录

@代表要解析的这个域本身(tianlesoftware.com)

INInternet记录。

SOA 是初始授权记录,指定网络中第一台DNS Server

localhost: DNS服务器的名字。

root.localhost: 是指管理员的邮箱。

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

这些部分主要是用来主DNS和辅助DNS做同步用的.

42 序列号,当主DNS数据改变时,这个序列号就要被增加1,而辅助DNS通过序列号来和主DNS同步。

3H 刷新,主DNS和辅助DNS每隔三小时同步一次。

15M 重试,3H之内,没有同步,每隔15M在尝试同步

1W 过期,1W之内,还没有同步,就不同步了

1D 生存期,没有这条记录,缓存的时间。

@ IN NS server1.example.com.

这是一笔NS记录,指定nameserverserver1.example.com

2 定义反向解析数据库

[root@rac1 named]# vim rac.tianlesoftware.local

$TTL 86400

@ IN SOA tianlesoftware.com. root.tianlesoftware.com. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS tianlesoftware.com.

100 IN PTR rac-scan.tianlesoftware.com.

200 IN PTR rac-scan.tianlesoftware.com.

这个文件和上面的那个差不多。 两点要注意的:

1 数字写IP 地址的最后一个。 192.168.6.100, 就写100

2 rac-scan. 后面有一个点

6. 验证DNS 配置

至此,DNS的基本配置就完成了,在来看看DNS是否能够正常工作。

重启DNS服务:

[root@rac1 named]# service named restart

Stopping named: [ OK ]

Starting named: [ OK ]

DNS客户端配置

主机默认通过本地解析域名,也就是读取/etc/hosts文件里的解析。对于配置DNS的网络环境,特别是RAC各节点如果使用SCAN特性的话,必须修改/etc/resolv.conf文件配置本地使用哪台DNS Server进行域名解析工作。

[root@rac2 ~]# cat /etc/resolv.conf

#nameserver 202.101.172.35

nameserver 192.168.6.90 -- 我们刚才添加的DNS Server

[root@rac2 ~]# nslookup 192.168.6.100

Server: 192.168.6.90

Address: 192.168.6.90#53

100.6.168.192.in-addr.arpa name = rac-scan.tianlesoftware.com.

[root@rac2 ~]# nslookup 192.168.6.200

Server: 192.168.6.90

Address: 192.168.6.90#53

200.6.168.192.in-addr.arpa name = rac-scan.tianlesoftware.com.

[root@rac2 ~]# nslookup rac-scan.tianlesoftware.com

Server: 192.168.6.90

Address: 192.168.6.90#53

Name: rac-scan.tianlesoftware.com

Address: 192.168.6.100

Name: rac-scan.tianlesoftware.com

Address: 192.168.6.200

DNS 解析正常。

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850 DBA 超级群:63306533;

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

你可能感兴趣的:(oracle 11g)