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

来源:互联网 发布:网络布线人工费 编辑:程序博客网 时间:2024/05/24 16:16

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

 

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

 

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

 

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

 

更多信息参考我的Blog:

       Oracle 11gR2 RAC 新特性说明

       http://blog.csdn.net/xujinyang/article/details/6836370

 

一. 安装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(tcp udp)

 

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。 所以这里就添加了2个rac-scan。 如果节点比较多,可以多添加几个rac-scan。 rac-scan 至少要有一个。 并且这些IP 在RAC安装之前不能被使用。

 

一些参数说明:

$TTL    86400  :-- 最小的存活的时间是86400S(24H)

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

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

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

IN:Internet记录。

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记录,指定nameserver为server1.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 解析正常。

 


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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩装病不去上学怎么办 卖衣服顾客嫌贵怎么办 当顾客说再看看怎么办 读完高中没考上大学怎么办 手抖不会写字了怎么办 字认识写不出来怎么办 八四把衣服发黄怎么办 孩孑在学校被打怎么办 在学校有人打我怎么办 孩子在学校不爱说话怎么办 孩子上幼儿园不和小朋友玩怎么办 遇到有人要打你怎么办 被表白了怎么办神回复 学校要发展我该怎么办 如果有人要打你怎么办 梦见有人要杀我怎么办 如果有人要杀我怎么办 梦到有人要杀我怎么办 感觉有人要杀我怎么办 我很自卑 没自信怎么办 如果在学校被打怎么办 如果有人打我该怎么办 别人要砍我我怎么办 专四两次没过怎么办 3岁宝宝害羞胆小怎么办 人太老实被欺负怎么办 在外面被欺负了怎么办 同学们老欺负我怎么办 孩子在学校受欺负怎么办 来例假吃了螃蟹怎么办 流产后受风头疼怎么办 种鸽配种无精怎么办 有钱但不舍得花怎么办 黑户急用3万块钱怎么办 和室友闹矛盾了怎么办 型煤炉不好烧是怎么办 生完孩子记性差怎么办 脑子记忆力好差怎么办啊 脸和驴脸一样长怎么办 看3d电影近视眼怎么办 户籍证明不给开怎么办