zoukankan      html  css  js  c++  java
  • 11g RAC R2 之Linux DNS 配置

       在动手配置前,最好先了解下DNS的理论,以免犯不必要的错误。这都是被坑后的觉悟 -_-!!!

      Oracle 11g RAC 集群中引入了SCAN(SingleClientAccessName)的概念,是指集群的单客户端访问名称。相当于在客户端和数据库之间增加一层虚拟的网络服务层,即 SCAN IP 和 SCAP IP Listener。在客户端的 tnsnames.ora 配置文件中,只需要配置 SCAN IP 的配置信息即可,客户端通过 SCANIP、 SCAN IP Listener 来访问数据库。

      同之前各版本的 RAC 相比,使用 SCAN IP 的好处就是, 当后台 RAC 数据库添加、删除节点时,客户端配置信息无需修改。SCAN 可以通过配置DNS 服 务器或 GNS 来配置 SCAN,我们这里以 DNS 为例来进行配置。

    1、安装环境

    1 可用单独机器作为DNS服务器,也可直接使用RAC的一个节点来做DNS解析。  
    2 使用某个RAC节点时,容易出现该节点如果宕机将导致SCAN无法解析,客户端无法连接数据库.  
    3 由于资源限制,我们只使用RAC1节点的public ip用作DNS。  
    4 [root@racdb ~]# cat /etc/issue
    5 Oracle Linux Server release 5.6Kernel 
     on an m
    6     
    7 [root@racdb ~]# 

    2、主机节点host信息

    [root@racdb ~]# cat /etc/hosts
    127.0.0.1      localhost.racdb.com     localhost
    ::1            localhost6.localdomain6 localhost6
    
    #public ip:
    192.168.1.203  rac1.racdb.com   rac1        --用作DNS服务器地址
    192.168.1.204  rac2.racdb.com   rac2
    
    #private ip:
    192.168.0.203  rac1priv.racdb.com rac1priv
    192.168.0.204  rac2priv.racdb.com rac2priv
    
    #vip
    192.168.1.213  rac1vip.racdb.com  rac1vip
    192.168.1.214  rac2vip.racdb.com  rac2vip
    [root@racdb ~]# 

    3、配置DNS

    • 安装所需的rpm包 
    • 配置named.conf文件,配置zone文件(可称为zone的索引文件) 
    • 配置正向和反向文件(zone文件中所指向的文件) 
    • 配置解析文件resolv.conf 
    • 启动dns服务 

    3.1 安装所需的rpm包,注意安装顺序

    1 [root@node1 dns_rpm]# ls 
    2     bind-9.3.6-16.P1.el5.i386.rpm  
    3     bind-chroot-9.3.6-16.P1.el5.i386.rpm
    4     caching-nameserver-9.3.6-16.P1.el5.i386.rpm    
    5 下面安装rpm包  
    6 [root@node1 dns_rpm]# rpm -ivh bind-9.3.6-16.P1.el5.i386.rpm   
    7 [root@node1 dns_rpm]# rpm -ivh bind-chroot-9.3.6-16.P1.el5.i386.rpm   
    8 [root@node1 dns_rpm]# rpm -ivh caching-nameserver-9.3.6-16.P1.el5.i386.rpm

    3.2 配置named.conf文件

     1 进入目录
     2 [root@racdb ~]# cd /var/named/chroot/etc/                   
     3 
     4 使用下面的方式复制一个新的副本并修改,参数-p表示连同权限及属主,属组一同复制。切记不可忽略参数-p  
     5 [root@node1 etc]# cp -p named.caching-nameserver.conf   named.conf   
     6 [root@node1 etc]# cp -p named.rfc1912.zones   named.zones 7 
     8 修改named.conf文件
     9 将源文件中的所有localhost以及127.0.0.1修改成any,注意any;前后保留空格  
    10 该文件主要是配置dns监听那些端口以及ip地址并指明相应的名字解析zone文件名named.zones  
    11 下面是修改后的named.conf文件  
    12 [root@racdb etc]# cat /var/named/chroot/etc/named.conf
    13 //
    14 // named.caching-nameserver.conf
    15 //
    16 // Provided by Red Hat caching-nameserver package to configure the
    17 // ISC BIND named(8) DNS server as a caching only nameserver 
    18 // (as a localhost DNS resolver only). 
    19 //
    20 // See /usr/share/doc/bind*/sample/ for example named configuration files.
    21 //
    22 // DO NOT EDIT THIS FILE - use system-config-bind or an editor
    23 // to create named.conf - edits to this file will be lost on 
    24 // caching-nameserver package upgrade.
    25 //
    26 options {
    27         listen-on port 53 { any; };  //修改
    28         listen-on-v6 port 53 { ::1; };
    29         directory       "/var/named";
    30         dump-file       "/var/named/data/cache_dump.db";
    31         statistics-file "/var/named/data/named_stats.txt";
    32         memstatistics-file "/var/named/data/named_mem_stats.txt";
    33 
    34         // Those options should be used carefully because they disable port
    35         // randomization
    36         // query-source    port 53;
    37         // query-source-v6 port 53;
    38 
    39         allow-query     { any; };   //修改
    40         allow-query-cache { any; }; //修改
    41 };
    42 logging {
    43         channel default_debug {
    44                 file "data/named.run";
    45                 severity dynamic;
    46         };
    47 };
    48 view localhost_resolver {
    49         match-clients      { any; }; //修改
    50         match-destinations { any; }; //修改
    51         recursion yes;
    52         include "named.zones"; //修改,修改后的指向我们的拷贝文件 named.zones                                         
    53 };
    54 [root@racdb etc]# 

        配置zone文件(可称为zone的索引文件)

     1 #文件末尾最后的两个zone为新增加的  
     2 #注意每一个zone的file用于指向真正的zone文件,后面要用到     
     3 #下面是修改后的named.zones文件  
     4 [root@racdb etc]# cat named.zones
     5 // named.rfc1912.zones:
     6 //
     7 // Provided by Red Hat caching-nameserver package 
     8 //
     9 // ISC BIND named zone configuration for zones recommended by
    10 // RFC 1912 section 4.1 : localhost TLDs and address zones
    11 // 
    12 // See /usr/share/doc/bind*/sample/ for example named configuration files.
    13 //
    14 zone "." IN {
    15         type hint;
    16         file "named.ca";
    17 };
    18 
    19 zone "localdomain" IN {
    20         type master;
    21         file "localdomain.zone";
    22         allow-update { none; };
    23 };
    24 
    25 zone "localhost" IN {
    26         type master;
    27         file "localhost.zone";
    28         allow-update { none; };
    29 };
    30 
    31 zone "0.0.127.in-addr.arpa" IN {
    32         type master;
    33         file "named.local";
    34         allow-update { none; };
    35 };
    36 
    37 zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    38         type master;
    39         file "named.ip6.local";
    40         allow-update { none; };
    41 };
    42 
    43 zone "255.in-addr.arpa" IN {
    44         type master;
    45         file "named.broadcast";
    46         allow-update { none; };
    47 };
    48 
    49 zone "0.in-addr.arpa" IN {
    50         type master;
    51         file "named.zero";
    52         allow-update { none; };
    53 };
    54 
    55 #以下两个zone为新增的,包含正向和反向zone
    56 zone "racdb.com" IN {          #正向。racdb.com为域名,此域名的声明要放到 resolv.conf 文件中
    57         type master;  
    58         file "racdb.zero";     #正向解析文件名称 此文件目录/var/named/chroot/var/named
    59         allow-update { none; };  
    60 };
    61     
    62 zone "1.168.192.in-addr.arpa" IN {  #反向,1.168.192为所要解析的ip网段
    63         type master;
    64         file "1.168.192.in-addr.arpa";  #反向解析文件名称 此文件目录/var/named/chroot/var/named
    65         allow-update { none; };
    66 };

    3.3 配置正向和反向解析文件

    1 [root@racdb etc]# pwd
    2 /var/named/chroot/etc
    3 [root@racdb etc]# cd ../var/named/
    4 [root@racdb named]#   
    5 #同样使用cp -p 方式复制文件到新的正向和反向文件  
    6 [root@racdb named]# cp -p named.zero  racdb.zero #文件名就是named.zones -> racdb.com(正向域名) -> file的名称一致     
    7 [root@racdb named]# cp -p named.local 1.168.192.in-addr.arpa   #文件名就是named.zones -> racdb.com(反向域名) -> file的名称一致 

    3.3.1 修改后的正向搜索文件

     1 [root@racdb named]# cat racdb.zero 
     2 $TTL    86400
     3 @               IN SOA  racdb.com.      root.racdb.com. (
     4                                         42              ; serial (d. adams)
     5                                         3H              ; refresh
     6                                         15M             ; retry
     7                                         1W              ; expiry
     8                                         1D )            ; minimum
     9         IN      NS      racdb.com.
    10 racscan IN      A       192.168.1.200
    11 racscan IN      A       192.168.1.199
    12 racscan IN      A       192.168.1.198
    13 [root@racdb named]#
    14 
    15 SOA 是授权起始(Start Of Authority)的缩写,后面接着是dns服务器的主机名,这里是"racdb.com。"16 注意,主机名称后面的小圆点。凡是出现在记录文件了的主机名,记得都要加上这各小圆点  
    17 NS 是名称服务器资源记录,指明域中的名称服务器,这里就是dns服务器
    18 A是主机记录,把IP名和ip地址对应起来
    19 可以添加多个A记录,我们的SCAN 有三个ip,这里我们就添加了3个
    20 了解这些已经够用了,具体详情自行google ^_^

    3.3.2 修改后的反向搜索文件

     1 [root@racdb named]# cat 1.168.192.in-addr.arpa
     2 $TTL    86400
     3 @       IN      SOA     racdb.com. root.racdb.com.  (
     4                                       1997022700 ; Serial
     5                                       28800      ; Refresh
     6                                       14400      ; Retry
     7                                       3600000    ; Expire
     8                                       86400 )    ; Minimum
     9         IN      NS      racdb.com.
    10 1       IN      PTR     racdb.com.
    11 200     IN      PTR     racscan.
    12 199     IN      PTR     racscan.
    13 198     IN      PTR     racscan.
    14 
    15 [root@racdb named]#  
    16 同正向解析文件相似,不同点是PTR
    17 PTR记录把IP和IP名对应起来,
    18 可以添加多个PTR记录

    3.4 配置解析文件resolv.conf

     1 在RAC1节点配置resolv.conf文件  
     2 [root@racdb named]# vi /etc/resolv.conf
     3 search     racdb.com      #定义域名的搜索列,即name.zones文件中zone域名均要在此声明(不包含反向zone及系统默认的localhost)
     4 nameserver 192.168.1.203  #定义DNS服务器的IP地址
     5 
     6   
     7 #在RAC2节点上的resolv.conf文件  
     8 [root@racdb named]# vi /etc/resolv.conf
     9 search     racdb.com      #定义域名的搜索列
    10 nameserver 192.168.1.203  #定义DNS服务器的IP地址

    3.5 启动dns服务

     1 [root@racdb named]# service named restart  
     2 Stopping named: .[  OK  ]
     3 Starting named: [  OK  ]
     4 [root@racdb named]# chkconfig named on  
     5   
     6 #测试dns解析RAC1 正向解析 
     7 [root@rac1 bin]# nslookup racscan
     8 Server:         192.168.1.203
     9 Address:        192.168.1.203#53
    10 
    11 Name:   racscan.racdb.com
    12 Address: 192.168.1.200
    13 Name:   racscan.racdb.com
    14 Address: 192.168.1.198
    15 Name:   racscan.racdb.com
    16 Address: 192.168.1.199
    17 
    18 [root@rac1 bin]# 
    19 
    20 #测试dns解析RAC2 正向解析 
    21 [root@rac2 bin]# nslookup racscan
    22 Server:         192.168.1.203
    23 Address:        192.168.1.203#53
    24 
    25 Name:   racscan.racdb.com
    26 Address: 192.168.1.199
    27 Name:   racscan.racdb.com
    28 Address: 192.168.1.200
    29 Name:   racscan.racdb.com
    30 Address: 192.168.1.198
    31 
    32 [root@rac2 bin]#   
    33 
    34 #测试dns解析RAC1 反向解析 
    35 [root@rac1 bin]# nslookup 192.168.1.200
    36 Server:         192.168.1.203
    37 Address:        192.168.1.203#53
    38 
    39 200.1.168.192.in-addr.arpa      name = racscan.
    40 
    41 [root@rac1 bin]# nslookup 192.168.1.199
    42 Server:         192.168.1.203
    43 Address:        192.168.1.203#53
    44 
    45 199.1.168.192.in-addr.arpa      name = racscan.
    46 
    47 [root@rac1 bin]# nslookup 192.168.1.198
    48 Server:         192.168.1.203
    49 Address:        192.168.1.203#53
    50 
    51 198.1.168.192.in-addr.arpa      name = racscan.
    52 
    53 [root@rac1 bin]# 
    54 
    55 #测试dns解析RAC2 反向解析
    56 [root@rac2 bin]# nslookup 192.168.1.200
    57 Server:         192.168.1.203
    58 Address:        192.168.1.203#53
    59 
    60 200.1.168.192.in-addr.arpa      name = racscan.
    61 
    62 [root@rac2 bin]# nslookup 192.168.1.199
    63 Server:         192.168.1.203
    64 Address:        192.168.1.203#53
    65 
    66 199.1.168.192.in-addr.arpa      name = racscan.
    67 
    68 [root@rac2 bin]# nslookup 192.168.1.198
    69 Server:         192.168.1.203
    70 Address:        192.168.1.203#53
    71 
    72 198.1.168.192.in-addr.arpa      name = racscan.
    73 
    74 [root@rac2 bin]#
  • 相关阅读:
    网络七层模型
    datagaridview添加序号
    sqlserver查询数据库所有字段和表的关系
    Code Project精彩系列转
    操作不同线程中的控件
    PetaPoco数据读写并发时出错
    浮点型float数据强制转换成int整型
    PetaPoco微型ORM的使用错误记录
    EF出现基础提供程序在 Open 上失败
    Python中random模块
  • 原文地址:https://www.cnblogs.com/polestar/p/3827268.html
Copyright © 2011-2022 走看看