Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP
Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP最近安裝了一下Oracle 11gR2的RAC ,但是11gR2版本的RAC 采用的是SCAN 在
Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP
最近安裝了一下Oracle 11gR2的RAC ,但是11gR2版本的RAC 采用的是SCAN 在Oracle 11gR2以前,如果數(shù)據(jù)庫采用了RAC 架構(gòu),在客戶端的tnsnames IP. 中,需要配置多個(gè)節(jié)點(diǎn)的連接信息,從而實(shí)現(xiàn)諸如負(fù)載均衡,failover 等等RAC 的特性。因此,當(dāng)數(shù)據(jù)庫RAC 集群需要添加或刪除節(jié)點(diǎn)時(shí),需要及時(shí)對(duì)客戶端機(jī)器的tns 進(jìn)行更新,以免出現(xiàn)安全隱患。
在11gR2中,為了簡化該項(xiàng)配置工作,引入了SCAN (Single Client Access Name )的特性,該特性的好處在于,在數(shù)據(jù)庫與客戶端之間,添加了一層虛擬的服務(wù)層,就是所謂的scan ip 以及scan ip listener ,在客戶端僅需要配置scan ip 的tns 信息,通過scan ip listener,連接后臺(tái)集群數(shù)據(jù)庫。這樣,不論集群數(shù)據(jù)庫是否有添加或者刪除節(jié)點(diǎn)的操作,均不會(huì)對(duì)client 產(chǎn)生影響。
可以把scan 理解為一個(gè)虛擬主機(jī)名,它對(duì)應(yīng)的是整個(gè)RAC 集群??蛻舳酥鳈C(jī)只需通過這個(gè)scan name 即可訪問數(shù)據(jù)庫集群的任意節(jié)點(diǎn)。當(dāng)然訪問的節(jié)點(diǎn)是隨機(jī)的,oracle 強(qiáng)烈建議通過DNS Server的round robin模式配置解析SCAN ,實(shí)現(xiàn)負(fù)載均衡(即輪換連接SCAN 對(duì)應(yīng)的IP 地址)。這有點(diǎn)類似通過vip 和listener loadbalance配置實(shí)現(xiàn)負(fù)載均衡的原理。
更多信息參考我的Blog :
px
Oracle 11gR2 RAC 新特性說明 http://blog.csdn.net/tianlesoftware/archive/2010/11/02/5982972.as
一. 安裝DNS Server
在安裝Redhat 系統(tǒng)的時(shí)候,有提示安裝DNS Server 。不過那時(shí)為了簡單,就沒有安裝。這里要用到DNS ,就只能在安裝一下。安裝需要的RPM 包安裝鏡像里有。找到一下包,并安裝:
bind-9.3.6-4.P1.el5.i386.rpm --提供核心的二進(jìn)制程序 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 的守護(hù)進(jìn)程
/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. 復(fù)制named.conf 文件
由于安裝了chroot 環(huán)境,所以DNS 主配置文件應(yīng)該在
/var/named/chroot/etc目錄下面。
[root@rac1 etc]# cd /var/named/chroot/
[root@rac1 chroot]# ls
devetcvar
[root@rac1 chroot]# cdetc/
[root@rac1 etc]# ls
localtimenamed.caching-nameserver.conf named.rfc1912.zones rndc.key
查看named.caching-nameserver.conf 文件:
[root@rac1 etc]# catnamed.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.
//
...
這里提示不要直接的編輯該文件,去創(chuàng)建一個(gè)named.conf 文件,然后編輯named.conf 文件,當(dāng)有了named.conf ,將不在讀取這個(gè)文件。
現(xiàn)在開始復(fù)制:
[root@rac1 etc]# cp-p named.caching-nameserver.confnamed.conf
查看一下文件權(quán)限是否一致:
[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
-P 的參數(shù),保留權(quán)限。否則啟動(dòng)服務(wù)的時(shí)候會(huì)報(bào)權(quán)限拒絕的。
2. 查看編輯named.conf 文件:
[root@rac1 etc]# catnamed.conf
,options { ---代表全局配置
listen-on port 53 { 127.0.0.1; }; -- DNS服務(wù)監(jiān)聽在所有接口 listen-on-v6 port 53 { ::1; }; -- ipv6監(jiān)聽在本地回環(huán)接口 directory "/var/named";
--zone 文件的存放目錄,指的是chroot 環(huán)境下面的/var/named
dump-file "/var/named/data/cache_dump.db"; --存放緩存的信息
statistics-file "/var/named/data/named_stats.txt"; --統(tǒng)計(jì)用戶的訪問狀態(tài)
memstatistics-file "/var/named/data/named_mem_stats.txt";
--每一次訪問耗費(fèi)了多數(shù)內(nèi)存的存放文件
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { localhost; };
};
logging {
channeldefault_debug {
file "data/named.run";
severity dynamic;
};
};
--定義日志的存放位置在/var/named/chroot/var/named/data/目錄下面
viewlocalhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes; --允許查詢的客戶端,本實(shí)驗(yàn)中需要修改成本地網(wǎng)段 --允許那些客戶端來查詢緩存,any 表示允許任何人。 allow-query-cache { localhost; };
,include "/etc/named.rfc1912.zones";
};
-- 定義視圖的功能,
--Match-clients 是指匹配的客戶端
--Match-destination 是指匹配的目標(biāo)
編輯named.conf 文件,將
listen-on port 53 { 127.0.0.1; }; allow-query { localhost; }; match-clients { localhost; }; match-destinations { localhost; }; allow-query-cache { localhost; }; 中的內(nèi)容修改成{ any; } 注意兩邊空格, 然后保存退出
3. 定義Zone 文件 (編輯named.rfc1912.zones 文件)
[root@rac1 etc]# cat named.rfc1912.zones
zone "." IN {
type hint; -- 根區(qū)域的類型為hint
file "named.ca"; -- 區(qū)域文件是named.ca,
};
-- Zone “. ” 代表根區(qū)域
-- IN 代表 Internet記錄
zone "localdomain" IN {
type master; -- 區(qū)域的類型為主要的
file "localdomain.zone";
allow-update { none; }; --默認(rèn)情況下,是否允許客戶端自動(dòng)更新 };
zone "localhost" IN {
type master; --在named.ca 文件中就定義了全球的13臺(tái)根服務(wù)器
,file "localhost.zone";
allow-update { none; };
};
-- zone "localhost" 定義正向解析的區(qū)域
-- file "localhost.zone"; 指定正向解析的區(qū)域文件是localhost.zone - -在localhost.zone 文件中就定義DNS 的正向解析數(shù)據(jù)庫
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
-- zone "0.0.127.in-addr.arpa" :localhost 定義反向解析的區(qū)域 -- file "named.local"; 指定反向解析的區(qū)域文件是named.local -- 在named.local 文件中就定義DNS 反向解析的數(shù)據(jù)庫
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 文件里添加一下內(nèi)容:
,-- 配置正向解析Zone
zone "tianlesoftware.com " IN { -- 注意,這個(gè)域名要和后面配置的一致 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 地址時(shí)是以相反的方向解釋的,所以需要將ip 地址反向排列。這里,192.168.6.*網(wǎng)段的反向解析域名為"6.168.192.in-addr.arpa ”。
4. 復(fù)制模板文件成數(shù)據(jù)庫文件
[root@rac1 etc]# cd /var/named/chroot/var/named
[root@rac1 named]# ls
datalocalhost.zone named.ca named.local slaves
localdomain.zonenamed.broadcast named.ip6.local named.zero
可以看到,在chroot 環(huán)境下面的/var/named/有很多模板文件。
Named.ca就是根區(qū)域的數(shù)據(jù)庫文件.
將localhost.zone 復(fù)制成rac.tianlesoftware.zone ,這個(gè)是正向解析的數(shù)據(jù)庫文件
將named.local 復(fù)制成rac.tianlesoftware.local ,這個(gè)是反向解析的數(shù)據(jù)庫文件
這個(gè)名稱一定要和/etc/named.rfc1912.zones這個(gè)文件里面,我們剛才添加的一致。
[root@rac1 named]# cp -p localhost.zonerac.tianlesoftware.zone
,[root@rac1 named]# cp -p named.localrac.tianlesoftware.local
[root@rac1 named]# ls
datalocalhost.zone named.ca
named.localrac.tianlesoftware.local slaves
localdomain.zonenamed.broadcast named.ip6.local
named.zerorac.tianlesoftware.zone 、
至此,正向解析和反向解析的數(shù)據(jù)庫文件就創(chuàng)建完成。
5. 定義數(shù)據(jù)庫文件
(1) 定義正向解析數(shù)據(jù)庫文件
[root@rac1 named]# vimrac.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
說明,因?yàn)槲业?1gR2 測試是2個(gè)節(jié)點(diǎn)的RAC 。所以這里就添加了2個(gè)rac-scan 。如果節(jié)點(diǎn)比較多,可以多添加幾個(gè)rac-scan 。rac-scan 至少要有一個(gè)。并且這些IP 在RAC 安裝之前不能被使用。
一些參數(shù)說明:
,$TTL 86400 :-- 最小的存活的時(shí)間是86400S (24H )
@ IN SOA tianlesoftware.com root.tianlesoftware.com ( --這是一筆SOA 記錄,只允許存在一個(gè)SOA 記錄
@:代表要解析的這個(gè)域本身(tianlesoftware.com)
IN :Internet 記錄。
SOA :是初始授權(quán)記錄,指定網(wǎng)絡(luò)中第一臺(tái)DNS Server。
localhost: DNS 服務(wù)器的名字。
root.localhost: 是指管理員的郵箱。
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
這些部分主要是用來主DNS 和輔助DNS 做同步用的.
42: 序列號(hào),當(dāng)主DNS 數(shù)據(jù)改變時(shí),這個(gè)序列號(hào)就要被增加1,而輔助3H 刷新,主DNS 和輔助DNS 每隔三小時(shí)同步一次。 15M 重試,3H 之內(nèi),沒有同步,每隔15M 在嘗試同步 1W 過期,1W 之內(nèi),還沒有同步,就不同步了 1D 生存期,沒有這條記錄,緩存的時(shí)間。 @ IN NS server1.example.com. : 這是一筆NS 記錄,指定nameserver 為server1.example.com DNS 通過序列號(hào)來和主DNS 同步。
(2)定義反向解析數(shù)據(jù)庫
[root@rac1 named]# vimrac.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.
這個(gè)文件和上面的那個(gè)差不多。兩點(diǎn)要注意的:
(1)數(shù)字寫IP 地址的最后一個(gè)。如192.168.6.100, 就寫100
(2)rac-scan . 后面有一個(gè)點(diǎn)
6. 驗(yàn)證DNS 配置
至此,DNS 的基本配置就完成了,在來看看DNS 是否能夠正常工作。
重啟DNS 服務(wù):
[root@rac1 named]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
DNS 客戶端配置
主機(jī)默認(rèn)通過本地解析域名,也就是讀取/etc/hosts文件里的解析。對(duì)于配置DNS 的網(wǎng)絡(luò)環(huán)境,特別是RAC 各節(jié)點(diǎn)如果使用SCAN 特性的話,必須修改/etc/resolv.conf文件配置本地使用哪臺(tái)DNS Server進(jìn)行域名解析工作。
[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