阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用多路径在Oracle Linux 6.5上搭建Oracle RAC 11.2.0.4

196次阅读
没有评论

共计 33975 个字符,预计需要花费 85 分钟才能阅读完成。

1. 目的

详细描述使用多路径搭建两个节点的 Oracle RAC 集群的方法。

2. 适用范围

数据库管理员和系统管理员。

3. 环境规划

3.1 硬件环境

在此环境中,使用了 3 台服务器。服务器的配置如表 1 所示:

服务器 CPU 内存 硬盘
racdb1.dhc.com 4 核 4G 100G
racdb2.dhc.com 4 核 4G 100G
storages.dhc.com 4 核 2G 100G

表 1 RAC 安装硬件环境

3.2 软件环境

此环境使用的软件及其版本如表 2 所示:

软件类型 软件名称 版本
操作系统 Red Hat Enterprise Linux 6.4
存储系统 scsi-target-utils 0.4.9
数据库 Oracle Database, Oracle Infrastructure 11.2.0.4

表 2 RAC 安装软件环境

3.3 网络环境

此环境使用的网络 IP 如表 3 所示:

  racdb1.dhc.com racdb2.dhc.com
公共网络 10.128.20.101 10.128.20.102
专用网络 192.168.1.101 192.168.1.102
存储网络 192.168.136.101 192.168.136.102
网关 10.128.20.103 10.128.20.103
DNS 10.128.20.103 10.128.20.103
SCAN IP 10.128.20.110 10.128.20.110
SCAN IP 10.128.20.111 10.128.20.111
SCAN IP 10.128.20.112 10.128.20.112

表 3 RAC 安装网络环境

3.4 存储规划

存储服务器这里使用多种存储,这里使用的是 scsi-target-utils 来搭建一个简单存储。存储的规划可以参考表 4。

卷名称 磁盘組 大小
data1 DATA 10G
data2 DATA 10G
data3 DATA 10G
data4 DATA 10G
fra1 FRA 10G
fra2 FRA 10G
quorum1 QUORUM 1G
quorum2 QUORUM 1G
quorum3 QUORUM 1G

表 4 RAC 安装存储规划

4. 搭建数据库服务器

为每台数据库服务器配置最少三个网卡。将操作系统的安装盘放到服务器的光驱里,然后启动服务器,根据环境规划来安装操作系统。
操作系统安装完成,需要配置 YUM 源。
新建 /var/yum 目录,存储安装文件

# mkdir /var/yum

将系统安装盘中的文件复制到 /var/yum 中
编辑 /etc/yum.repos.d/rhel.repo,加入下面的内容

[base]
name=local source
baseurl=file:///var/yum
enable=1

导入 yum 安装密钥

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release

搭建好 YUN 源之后,我们就可以用 YUM 来安装所需要的软件。
关闭 selinux
修改 /etc/selinux/config 文件,将 SELINUX 设置为 disabled

SELINUX=disabled

关闭防火墙

service iptables stop
chkconfig iptables off

5. 配置共享存储

参照存储的使用手册,在存储服务器上根据存储的规划,划分出 9 个盘。使用网线或者是光纤卡,将存储和数据库服务器连接起来。

6. 配置数据库服务器

在安装 ORACLE RAC 之前,需要对数据库服务器做一些配置。下面的配置需要在两台数据库服务器上面分别进行操作。

6.1 安装软件包

安装 Oracle RAC 需要安装一些额外的软件包,下面列出了必须的 RPM 包。

binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

通过一下的命令来检测上面列出的包是否安装成功

rpm -q binutils  elfutils compat-libstdc++-33 gcc glibc libaio libgcc libstdc++ \
make sysstat unixODBC compat-libcap1 elfutils-libelf-devel glibc-devel ksh libaio-devel sysstat gcc-c++

如果上面的包没有安装,可以用 yum 来进行安装。

yum install libaio-devel

6.2 配置 hosts 文件
编辑 /etc/hosts 文件,加入以下内容。

10.128.20.101 racdb1.dhc.com racdb1
10.128.20.102 racdb2.dhc.com racdb2
192.168.1.101 racdb1-priv.dhc.com racdb1-priv
192.168.1.102 racdb2-priv.dhc.com racdb2-priv
10.128.20.201 racdb1-vip.dhc.com racdb1-vip
10.128.20.202 racdb2-vip.dhc.com racdb2-vip
192.168.136.103 storage1.dhc.com storage1

6.3 配置域名解析服务

本环境配置 DNS 来解析 SCAN 名字。在 DNS 服务器里加入 dhc.com 域和 10.128.20.0 网段的反向解析域即可。

/etc/named.conf

zone "dhc.com" IN {type master;
        file "/var/named/dhc.com.zone";
};

zone "20.128.10.in-addr.arpa" IN {type master;
        file "/var/named/20.128.10.in-addr.arpa.zone";
};

/var/named/dhc.com.zone

$TTL 1D
@     IN SOA      @ rname.invalid. (0       ; serial
                                              1D    ; refresh
                                              1H    ; retry
                                              1W   ; expire
                                              3H )  ; minimum
        NS    @
        A       127.0.0.1
        AAAA        ::1
racdb-cluster-scan A 10.128.20.110
racdb-cluster-scan A 10.128.20.111
racdb-cluster-scan A 10.128.20.112

/var/named/20.128.10.in-addr.arpa.zone

$TTL 1D
@     IN SOA      @ rname.invalid. (0       ; serial
                                              1D    ; refresh
                                              1H    ; retry
                                              1W   ; expire
                                              3H )  ; minimum
        NS    @
        A       127.0.0.1
        AAAA        ::1
110 PTR racdb-cluster-scan.dhc.com.
111 PTR racdb-cluster-scan.dhc.com.
112 PTR racdb-cluster-scan.dhc.com.
103 PTR storage1.dhc.com.

将数据库服务器的 DNS 配置成该服务器的地址,在数据库服务器上做测试。

[root@racdb1 ~]# host racdb-cluster-scan.dhc.com
racdb-cluster-scan.dhc.com has address 10.128.20.111
racdb-cluster-scan.dhc.com has address 10.128.20.112
racdb-cluster-scan.dhc.com has address 10.128.20.110

6.4 内核参数调整

由于现在 oracle 新版本提供一个 script 来修改内核参数,这一步现在可以省略。

6.5 创建用户

用 root 用户执行下面的命令,添加以下用户组

groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper

用 root 用户添加 grid 和 oracle 用户

useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid
useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -g /home/oracle -s /bin/bash oracle

修改 grid 和 oracle 用户的密码。

[root@racdb1 ~]# passwd grid
更改用户 grid 的密码。新的 密码:无效的密码:它基于字典单词
无效的密码:过于简单
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

6.6 配置登录安全验证选项

编辑 /etc/security/limits.conf,加入以下内容。

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

编辑 /etc/pam.d/login,加入以下内容

session required pam_limits.so

6.7 创建挂载点
用 root 用户执行下面的命令创建挂载点

mkdir -p /u01/app/11.2.0.4/grid
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

6.8 配置用户的环境变量

  1. 配置 grid 用户的环境变量
    切换到 grid 用户,编辑.bash_profile 文件,加入以下内容
export ORACLE_SID=+ASM1    
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD"
umask 022

注意在另外一个节点 ORACLE_SID 要改为 +ASM2。
2. 配置 oracle 的环境变量
切换到 oracle 用户,编辑.bash_profile 文件,加入以下内容

export ORACLE_SID=PROD_1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export ORACLE_TERM=xterm
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/bin:usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

注意在另外一个节点 ORACLE_SID 为 PROD_2
为了使新的环境变量生效,重启服务器或者执行下面的命令:

. .bash_profile

编辑 /etc/profile,加入以下内容

if [$USER = "oracle" ] || [$USER = "grid" ] ; then
    if [$SHELL = "/bin/ksh" ] ; then 
        ulimit -p 16384
        ulimit -n 65536
     else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

6.9 配置共享存储

安装 iscsi 和多路径包

yum install iscsi-initiator-utils device-mapper-multipath

配置 iscsi 和多路径自动启动

chkconfig iscsi on
chkconfig iscsid on
chkconfig multipathd on

发现 target

[root@racdb1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.136.103 --discover
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data3
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data4
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum3

挂载存储

iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum2 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum3 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data2 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data3 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data4 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:fra1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:fra2 -p 192.168.136.103:3260 -l

注意,这里要按照顺序挂载存储,方便后面配置多路径。
磁盘挂在好之后,使用 fdisk -l 可以看到多了几个磁盘,但是重启之后这些磁盘的挂载点会改变,因此需要用多路径软件来固定共享磁盘的挂载点。
要使用多路径,首先要获得磁盘的 scsi id。
在存储节点运行 tgt-admin –show 可以看到

[root@storage1 named]# tgt-admin –show
Target 1: iqn.2014-09.com.dhc.storage1:data1。。。。。。LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /target/data1.img
            Backing store flags: 
    Account information:
    ACL information:
        ALL

这里 scsi id 就是我们需要的,记下每个 target 的 scsi id。
在数据库服务器上生成多路径的配置文件
从文档里拷贝一个配置文件到 /etc 目录中。

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc

编辑 /etc/multipath.conf

defaults {
    udev_dir        /dev
    polling_interval    10
    path_selector       "round-robin 0"
    path_grouping_policy    multibus
    getuid_callout      "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
    path_checker        readsector0
    rr_min_io       100
    max_fds         8192
    rr_weight       priorities
    failback        immediate
    no_path_retry       fail
    user_friendly_names yes
}
blacklist {devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^vd[a-z][0-2]"
}
multipaths {
       multipath {wwid                    "1IET     00070001"
               alias                   quorum1
       }
       multipath {wwid                    "1IET     00080001"
               alias                   quorum2
       }
       multipath {wwid                    "1IET     00090001"
               alias                   quorum3
       }
       multipath {wwid                    "1IET     00010001"
               alias                   data1
       }
       multipath {wwid                    "1IET     00020001"
               alias                   data2
       }
       multipath {wwid                    "1IET     00030001"
               alias                   data3
       }
       multipath {wwid                    "1IET     00040001"
               alias                   data4
       }
       multipath {wwid                    "1IET     00050001"
               alias                   fra1
       }
       multipath {wwid                    "1IET     00060001"
               alias                   fra2
       }
}
devices {
       device {vendor "IET"
               product "VIRTUAL-DISK"
               path_grouping_policy group_by_prio
               getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
               path_selector "round-robin 0"
               path_checker tur
               hardware_handler "0"
               failback immediate
               rr_weight uniform
               rr_min_io 128
               rr_min_io_rq 1
               flush_on_last_del yes
               fast_io_fail_tmo 5
               dev_loss_tmo infinity
       }
}

启动多路径

modprobe dm_multipath
modprobe dm_mod
/etc/init.d/multipathd start

查看多路径 multipath -ll

[root@racdb2 ~]# multipath -ll
quorum3 (1IET     00090001) dm-7 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 8:0:0:1  sdh 8:112 active ready  running
quorum2 (1IET     00080001) dm-2 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 4:0:0:1  sdb 8:16  active ready  running
quorum1 (1IET     00070001) dm-10 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 9:0:0:1  sdf 8:80  active ready  running
fra2 (1IET     00060001) dm-9 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 5:0:0:1  sdc 8:32  active ready  running
fra1 (1IET     00050001) dm-4 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 6:0:0:1  sde 8:64  active ready  running
data4 (1IET     00040001) dm-5 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 10:0:0:1 sdi 8:128 active ready  running
data3 (1IET     00030001) dm-8 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 3:0:0:1  sdd 8:48  active ready  running
data2 (1IET     00020001) dm-6 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 7:0:0:1  sdg 8:96  active ready  running
data1 (1IET     00010001) dm-3 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 2:0:0:1  sda 8:0   active ready  running

如果绑定成功,会在 /dev/mapper 目录下面看到新生成的磁盘

[root@racdb1 mapper]# ll
crw-rw---- 1 root root 10, 58 928 02:33 control
lrwxrwxrwx 1 root root      7 928 02:52 data1 -> ../dm-2
lrwxrwxrwx 1 root root      7 928 02:52 data2 -> ../dm-8
lrwxrwxrwx 1 root root      7 928 02:52 data3 -> ../dm-5
lrwxrwxrwx 1 root root      7 928 02:52 data4 -> ../dm-6
lrwxrwxrwx 1 root root      7 928 02:52 fra1 -> ../dm-9
lrwxrwxrwx 1 root root      7 928 02:52 fra2 -> ../dm-4
lrwxrwxrwx 1 root root      8 928 02:52 quorum1 -> ../dm-10
lrwxrwxrwx 1 root root      7 928 02:52 quorum2 -> ../dm-3
lrwxrwxrwx 1 root root      7 928 02:52 quorum3 -> ../dm-7
lrwxrwxrwx 1 root root      7 928 02:34 vg_racdb-lv_root -> ../dm-0
lrwxrwxrwx 1 root root      7 928 02:33 vg_racdb-lv_swap -> ../dm-1

将第一个节点的 multipathd.conf 复制到第二个节点,然后在第二个节点启动多路径
修改共享存储的权限

chown grid:asmadmin data1
chmod 660 data1

使用同样的方法更改所有存储的权限。
最终的权限如下面所示:

[root@racdb1 mapper]# ls -lL
总用量 0
brw-rw---- 1 root disk     253,  5 9 月  29 03:23 data1
brw-rw---- 1 root disk     253,  7 9 月  29 03:23 data2
brw-rw---- 1 root disk     253,  3 9 月  29 03:24 data3
brw-rw---- 1 root disk     253, 10 9 月  29 03:24 data4
brw-rw---- 1 root disk     253,  2 9 月  29 03:25 fra1
brw-rw---- 1 root disk     253,  8 9 月  29 03:25 fra2
brw-rw---- 1 root disk     253,  4 9 月  29 03:20 quorum1
brw-rw---- 1 root disk     253,  6 9 月  29 03:22 quorum2
brw-rw---- 1 root disk     253,  9 9 月  29 03:22 quorum3

为了保证重启之后,虚拟磁盘的权限不变,在 udev 里加入规则文件。

[root@racdb1 mapper]# cd /etc/udev/rules.d/
[root@racdb1 rules.d]# vi 99-grid-permission.rules 
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum2"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum3"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data2"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data3"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data4"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/fra1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/fra2"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum1"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum2"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum3"
PROGRAM="/bin/chmod 660 /dev/mapper/data1"
PROGRAM="/bin/chmod 660 /dev/mapper/data2"
PROGRAM="/bin/chmod 660 /dev/mapper/data3"
PROGRAM="/bin/chmod 660 /dev/mapper/data4"
PROGRAM="/bin/chmod 660 /dev/mapper/fra1"
PROGRAM="/bin/chmod 660 /dev/mapper/fra2"

将 99-grid-permission.rules 文件复制到节点 2 同样的目录下
这样如果服务器重启之后,共享存储的权限也不会改变。

6.10 配置时间同步服务

集群都要求在集群各节点之间保持时间一致。时间同步服务可以采用 NTP,从 11gR2 之后,集群时间同步推荐使用 oracle 自带的工具 CTSS。
下面配置禁用 NTP,从而在安装 Oracle RAC 的时候启用 CTSS。
在两个节点停止分别禁用 NTP。

service stpd stop

禁止 NTP 自动启动

chkcong ntpd off

把 ntp 的配置文件改名

mv /etc/ntp.conf /etc/npt.conf.bk

7. 部署 Oracle RAC

1. 安装 Grid Infrastructure

加载 grid 的安装介质,执行 runInstaller,然后会弹出 Grid 安装界面

[grid@racdb1 ~]$ /media/grid_11204_linux64/runInstaller
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。实际为 77481 MB    通过
检查交换空间: 必须大于 150 MB。实际为 8191 MB    通过
检查监视器: 监视器配置至少必须显示 256 种颜色。实际为 16777216    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2014-09-29_03-53-36AM. 请稍候 ...
[grid@racdb1 ~]$

使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
跳过软件更新,如果有 MOS 账号,可以尝试更新
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择为集群安装和配置 Oracle Grid Infrastructure

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-11/137424p2.htm

使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择高级安装
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择语言
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入集群和 SCAN 的名称
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
点击添加,添加集群节点
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入节点的公共主机名和虚拟主机名
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择 SSH,输入 grid 用户的密码配置 SSH 等价性
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
等价性配置成功,点击确定,然后选择下一步
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择网络接口的类型,eth0 选择公共,这里采用 HAIP,所以 eth1 和 eth2 选择专用
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
存储类型选择 Oracle ASM
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
更改磁盘搜索路径,输入 /dev/mapper/*
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
创建仲裁磁盘,这里我起的磁盘组名叫 QUORUM,磁盘用了 QUORUM1、QUORUM2 和 QUORUM3
冗余有 3 个级别,每个级别要求的磁盘数如下:
外部 >=1
普通 >=3
高 >=5
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入管理员的密码,一定要记住这个密码。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
如果密码比较简单,点击是,忽略这个问题
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
这里没有配置 IPMI,所以选择不使用 IPMI
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择对应的用户组,一般默认就可以
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择 Oracle base 和 Oracle home 的位置
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择产品清单目录
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
由于开头并没有配置内核参数,所以这里有很多问题,这时候点击修补并再次检查。

1. 目的

详细描述使用多路径搭建两个节点的 Oracle RAC 集群的方法。

2. 适用范围

数据库管理员和系统管理员。

3. 环境规划

3.1 硬件环境

在此环境中,使用了 3 台服务器。服务器的配置如表 1 所示:

服务器 CPU 内存 硬盘
racdb1.dhc.com 4 核 4G 100G
racdb2.dhc.com 4 核 4G 100G
storages.dhc.com 4 核 2G 100G

表 1 RAC 安装硬件环境

3.2 软件环境

此环境使用的软件及其版本如表 2 所示:

软件类型 软件名称 版本
操作系统 Red Hat Enterprise Linux 6.4
存储系统 scsi-target-utils 0.4.9
数据库 Oracle Database, Oracle Infrastructure 11.2.0.4

表 2 RAC 安装软件环境

3.3 网络环境

此环境使用的网络 IP 如表 3 所示:

  racdb1.dhc.com racdb2.dhc.com
公共网络 10.128.20.101 10.128.20.102
专用网络 192.168.1.101 192.168.1.102
存储网络 192.168.136.101 192.168.136.102
网关 10.128.20.103 10.128.20.103
DNS 10.128.20.103 10.128.20.103
SCAN IP 10.128.20.110 10.128.20.110
SCAN IP 10.128.20.111 10.128.20.111
SCAN IP 10.128.20.112 10.128.20.112

表 3 RAC 安装网络环境

3.4 存储规划

存储服务器这里使用多种存储,这里使用的是 scsi-target-utils 来搭建一个简单存储。存储的规划可以参考表 4。

卷名称 磁盘組 大小
data1 DATA 10G
data2 DATA 10G
data3 DATA 10G
data4 DATA 10G
fra1 FRA 10G
fra2 FRA 10G
quorum1 QUORUM 1G
quorum2 QUORUM 1G
quorum3 QUORUM 1G

表 4 RAC 安装存储规划

4. 搭建数据库服务器

为每台数据库服务器配置最少三个网卡。将操作系统的安装盘放到服务器的光驱里,然后启动服务器,根据环境规划来安装操作系统。
操作系统安装完成,需要配置 YUM 源。
新建 /var/yum 目录,存储安装文件

# mkdir /var/yum

将系统安装盘中的文件复制到 /var/yum 中
编辑 /etc/yum.repos.d/rhel.repo,加入下面的内容

[base]
name=local source
baseurl=file:///var/yum
enable=1

导入 yum 安装密钥

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release

搭建好 YUN 源之后,我们就可以用 YUM 来安装所需要的软件。
关闭 selinux
修改 /etc/selinux/config 文件,将 SELINUX 设置为 disabled

SELINUX=disabled

关闭防火墙

service iptables stop
chkconfig iptables off

5. 配置共享存储

参照存储的使用手册,在存储服务器上根据存储的规划,划分出 9 个盘。使用网线或者是光纤卡,将存储和数据库服务器连接起来。

6. 配置数据库服务器

在安装 ORACLE RAC 之前,需要对数据库服务器做一些配置。下面的配置需要在两台数据库服务器上面分别进行操作。

6.1 安装软件包

安装 Oracle RAC 需要安装一些额外的软件包,下面列出了必须的 RPM 包。

binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

通过一下的命令来检测上面列出的包是否安装成功

rpm -q binutils  elfutils compat-libstdc++-33 gcc glibc libaio libgcc libstdc++ \
make sysstat unixODBC compat-libcap1 elfutils-libelf-devel glibc-devel ksh libaio-devel sysstat gcc-c++

如果上面的包没有安装,可以用 yum 来进行安装。

yum install libaio-devel

6.2 配置 hosts 文件
编辑 /etc/hosts 文件,加入以下内容。

10.128.20.101 racdb1.dhc.com racdb1
10.128.20.102 racdb2.dhc.com racdb2
192.168.1.101 racdb1-priv.dhc.com racdb1-priv
192.168.1.102 racdb2-priv.dhc.com racdb2-priv
10.128.20.201 racdb1-vip.dhc.com racdb1-vip
10.128.20.202 racdb2-vip.dhc.com racdb2-vip
192.168.136.103 storage1.dhc.com storage1

6.3 配置域名解析服务

本环境配置 DNS 来解析 SCAN 名字。在 DNS 服务器里加入 dhc.com 域和 10.128.20.0 网段的反向解析域即可。

/etc/named.conf

zone "dhc.com" IN {type master;
        file "/var/named/dhc.com.zone";
};

zone "20.128.10.in-addr.arpa" IN {type master;
        file "/var/named/20.128.10.in-addr.arpa.zone";
};

/var/named/dhc.com.zone

$TTL 1D
@     IN SOA      @ rname.invalid. (0       ; serial
                                              1D    ; refresh
                                              1H    ; retry
                                              1W   ; expire
                                              3H )  ; minimum
        NS    @
        A       127.0.0.1
        AAAA        ::1
racdb-cluster-scan A 10.128.20.110
racdb-cluster-scan A 10.128.20.111
racdb-cluster-scan A 10.128.20.112

/var/named/20.128.10.in-addr.arpa.zone

$TTL 1D
@     IN SOA      @ rname.invalid. (0       ; serial
                                              1D    ; refresh
                                              1H    ; retry
                                              1W   ; expire
                                              3H )  ; minimum
        NS    @
        A       127.0.0.1
        AAAA        ::1
110 PTR racdb-cluster-scan.dhc.com.
111 PTR racdb-cluster-scan.dhc.com.
112 PTR racdb-cluster-scan.dhc.com.
103 PTR storage1.dhc.com.

将数据库服务器的 DNS 配置成该服务器的地址,在数据库服务器上做测试。

[root@racdb1 ~]# host racdb-cluster-scan.dhc.com
racdb-cluster-scan.dhc.com has address 10.128.20.111
racdb-cluster-scan.dhc.com has address 10.128.20.112
racdb-cluster-scan.dhc.com has address 10.128.20.110

6.4 内核参数调整

由于现在 oracle 新版本提供一个 script 来修改内核参数,这一步现在可以省略。

6.5 创建用户

用 root 用户执行下面的命令,添加以下用户组

groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper

用 root 用户添加 grid 和 oracle 用户

useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid
useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -g /home/oracle -s /bin/bash oracle

修改 grid 和 oracle 用户的密码。

[root@racdb1 ~]# passwd grid
更改用户 grid 的密码。新的 密码:无效的密码:它基于字典单词
无效的密码:过于简单
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

6.6 配置登录安全验证选项

编辑 /etc/security/limits.conf,加入以下内容。

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

编辑 /etc/pam.d/login,加入以下内容

session required pam_limits.so

6.7 创建挂载点
用 root 用户执行下面的命令创建挂载点

mkdir -p /u01/app/11.2.0.4/grid
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

6.8 配置用户的环境变量

  1. 配置 grid 用户的环境变量
    切换到 grid 用户,编辑.bash_profile 文件,加入以下内容
export ORACLE_SID=+ASM1    
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD"
umask 022

注意在另外一个节点 ORACLE_SID 要改为 +ASM2。
2. 配置 oracle 的环境变量
切换到 oracle 用户,编辑.bash_profile 文件,加入以下内容

export ORACLE_SID=PROD_1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export ORACLE_TERM=xterm
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/bin:usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

注意在另外一个节点 ORACLE_SID 为 PROD_2
为了使新的环境变量生效,重启服务器或者执行下面的命令:

. .bash_profile

编辑 /etc/profile,加入以下内容

if [$USER = "oracle" ] || [$USER = "grid" ] ; then
    if [$SHELL = "/bin/ksh" ] ; then 
        ulimit -p 16384
        ulimit -n 65536
     else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

6.9 配置共享存储

安装 iscsi 和多路径包

yum install iscsi-initiator-utils device-mapper-multipath

配置 iscsi 和多路径自动启动

chkconfig iscsi on
chkconfig iscsid on
chkconfig multipathd on

发现 target

[root@racdb1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.136.103 --discover
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data3
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data4
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum1
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum2
192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum3

挂载存储

iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum2 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:quorum3 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data2 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data3 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:data4 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:fra1 -p 192.168.136.103:3260 -l
iscsiadm -m node -T  iqn.2014-09.com.dhc.storage1:fra2 -p 192.168.136.103:3260 -l

注意,这里要按照顺序挂载存储,方便后面配置多路径。
磁盘挂在好之后,使用 fdisk -l 可以看到多了几个磁盘,但是重启之后这些磁盘的挂载点会改变,因此需要用多路径软件来固定共享磁盘的挂载点。
要使用多路径,首先要获得磁盘的 scsi id。
在存储节点运行 tgt-admin –show 可以看到

[root@storage1 named]# tgt-admin –show
Target 1: iqn.2014-09.com.dhc.storage1:data1。。。。。。LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /target/data1.img
            Backing store flags: 
    Account information:
    ACL information:
        ALL

这里 scsi id 就是我们需要的,记下每个 target 的 scsi id。
在数据库服务器上生成多路径的配置文件
从文档里拷贝一个配置文件到 /etc 目录中。

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc

编辑 /etc/multipath.conf

defaults {
    udev_dir        /dev
    polling_interval    10
    path_selector       "round-robin 0"
    path_grouping_policy    multibus
    getuid_callout      "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
    path_checker        readsector0
    rr_min_io       100
    max_fds         8192
    rr_weight       priorities
    failback        immediate
    no_path_retry       fail
    user_friendly_names yes
}
blacklist {devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^vd[a-z][0-2]"
}
multipaths {
       multipath {wwid                    "1IET     00070001"
               alias                   quorum1
       }
       multipath {wwid                    "1IET     00080001"
               alias                   quorum2
       }
       multipath {wwid                    "1IET     00090001"
               alias                   quorum3
       }
       multipath {wwid                    "1IET     00010001"
               alias                   data1
       }
       multipath {wwid                    "1IET     00020001"
               alias                   data2
       }
       multipath {wwid                    "1IET     00030001"
               alias                   data3
       }
       multipath {wwid                    "1IET     00040001"
               alias                   data4
       }
       multipath {wwid                    "1IET     00050001"
               alias                   fra1
       }
       multipath {wwid                    "1IET     00060001"
               alias                   fra2
       }
}
devices {
       device {vendor "IET"
               product "VIRTUAL-DISK"
               path_grouping_policy group_by_prio
               getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
               path_selector "round-robin 0"
               path_checker tur
               hardware_handler "0"
               failback immediate
               rr_weight uniform
               rr_min_io 128
               rr_min_io_rq 1
               flush_on_last_del yes
               fast_io_fail_tmo 5
               dev_loss_tmo infinity
       }
}

启动多路径

modprobe dm_multipath
modprobe dm_mod
/etc/init.d/multipathd start

查看多路径 multipath -ll

[root@racdb2 ~]# multipath -ll
quorum3 (1IET     00090001) dm-7 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 8:0:0:1  sdh 8:112 active ready  running
quorum2 (1IET     00080001) dm-2 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 4:0:0:1  sdb 8:16  active ready  running
quorum1 (1IET     00070001) dm-10 IET,VIRTUAL-DISK
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 9:0:0:1  sdf 8:80  active ready  running
fra2 (1IET     00060001) dm-9 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 5:0:0:1  sdc 8:32  active ready  running
fra1 (1IET     00050001) dm-4 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 6:0:0:1  sde 8:64  active ready  running
data4 (1IET     00040001) dm-5 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 10:0:0:1 sdi 8:128 active ready  running
data3 (1IET     00030001) dm-8 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 3:0:0:1  sdd 8:48  active ready  running
data2 (1IET     00020001) dm-6 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 7:0:0:1  sdg 8:96  active ready  running
data1 (1IET     00010001) dm-3 IET,VIRTUAL-DISK
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  `- 2:0:0:1  sda 8:0   active ready  running

如果绑定成功,会在 /dev/mapper 目录下面看到新生成的磁盘

[root@racdb1 mapper]# ll
crw-rw---- 1 root root 10, 58 928 02:33 control
lrwxrwxrwx 1 root root      7 928 02:52 data1 -> ../dm-2
lrwxrwxrwx 1 root root      7 928 02:52 data2 -> ../dm-8
lrwxrwxrwx 1 root root      7 928 02:52 data3 -> ../dm-5
lrwxrwxrwx 1 root root      7 928 02:52 data4 -> ../dm-6
lrwxrwxrwx 1 root root      7 928 02:52 fra1 -> ../dm-9
lrwxrwxrwx 1 root root      7 928 02:52 fra2 -> ../dm-4
lrwxrwxrwx 1 root root      8 928 02:52 quorum1 -> ../dm-10
lrwxrwxrwx 1 root root      7 928 02:52 quorum2 -> ../dm-3
lrwxrwxrwx 1 root root      7 928 02:52 quorum3 -> ../dm-7
lrwxrwxrwx 1 root root      7 928 02:34 vg_racdb-lv_root -> ../dm-0
lrwxrwxrwx 1 root root      7 928 02:33 vg_racdb-lv_swap -> ../dm-1

将第一个节点的 multipathd.conf 复制到第二个节点,然后在第二个节点启动多路径
修改共享存储的权限

chown grid:asmadmin data1
chmod 660 data1

使用同样的方法更改所有存储的权限。
最终的权限如下面所示:

[root@racdb1 mapper]# ls -lL
总用量 0
brw-rw---- 1 root disk     253,  5 9 月  29 03:23 data1
brw-rw---- 1 root disk     253,  7 9 月  29 03:23 data2
brw-rw---- 1 root disk     253,  3 9 月  29 03:24 data3
brw-rw---- 1 root disk     253, 10 9 月  29 03:24 data4
brw-rw---- 1 root disk     253,  2 9 月  29 03:25 fra1
brw-rw---- 1 root disk     253,  8 9 月  29 03:25 fra2
brw-rw---- 1 root disk     253,  4 9 月  29 03:20 quorum1
brw-rw---- 1 root disk     253,  6 9 月  29 03:22 quorum2
brw-rw---- 1 root disk     253,  9 9 月  29 03:22 quorum3

为了保证重启之后,虚拟磁盘的权限不变,在 udev 里加入规则文件。

[root@racdb1 mapper]# cd /etc/udev/rules.d/
[root@racdb1 rules.d]# vi 99-grid-permission.rules 
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum2"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/quorum3"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data2"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data3"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/data4"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/fra1"
PROGRAM="/bin/chown grid:asmadmin /dev/mapper/fra2"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum1"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum2"
PROGRAM="/bin/chmod 660 /dev/mapper/quorum3"
PROGRAM="/bin/chmod 660 /dev/mapper/data1"
PROGRAM="/bin/chmod 660 /dev/mapper/data2"
PROGRAM="/bin/chmod 660 /dev/mapper/data3"
PROGRAM="/bin/chmod 660 /dev/mapper/data4"
PROGRAM="/bin/chmod 660 /dev/mapper/fra1"
PROGRAM="/bin/chmod 660 /dev/mapper/fra2"

将 99-grid-permission.rules 文件复制到节点 2 同样的目录下
这样如果服务器重启之后,共享存储的权限也不会改变。

6.10 配置时间同步服务

集群都要求在集群各节点之间保持时间一致。时间同步服务可以采用 NTP,从 11gR2 之后,集群时间同步推荐使用 oracle 自带的工具 CTSS。
下面配置禁用 NTP,从而在安装 Oracle RAC 的时候启用 CTSS。
在两个节点停止分别禁用 NTP。

service stpd stop

禁止 NTP 自动启动

chkcong ntpd off

把 ntp 的配置文件改名

mv /etc/ntp.conf /etc/npt.conf.bk

7. 部署 Oracle RAC

1. 安装 Grid Infrastructure

加载 grid 的安装介质,执行 runInstaller,然后会弹出 Grid 安装界面

[grid@racdb1 ~]$ /media/grid_11204_linux64/runInstaller
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。实际为 77481 MB    通过
检查交换空间: 必须大于 150 MB。实际为 8191 MB    通过
检查监视器: 监视器配置至少必须显示 256 种颜色。实际为 16777216    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2014-09-29_03-53-36AM. 请稍候 ...
[grid@racdb1 ~]$

使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
跳过软件更新,如果有 MOS 账号,可以尝试更新
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择为集群安装和配置 Oracle Grid Infrastructure

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-11/137424p2.htm

使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
grid 安装程序会生产一个脚本来修复这个问题,需要我们用 root 用户分别在两个节点运行。

[root@racdb1 ~]# /tmp/CVU_11.2.0.4.0_grid/runfixup.sh 
Response file being used is :/tmp/CVU_11.2.0.4.0_grid/fixup.response
Enable file being used is :/tmp/CVU_11.2.0.4.0_grid/fixup.enable
Log file location: /tmp/CVU_11.2.0.4.0_grid/orarun.log
Setting Kernel Parameters...
The value for shmmni in response file is not greater than value of shmmni for current session. Hence not changing it.
The value for semmsl in response file is not greater than value of semmsl for current session. Hence not changing it.
The value for semmns in response file is not greater than value of semmns for current session. Hence not changing it.
The value for semmni in response file is not greater than value of semmni for current session. Hence not changing it.
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
Installing Package /tmp/CVU_11.2.0.4.0_grid//cvuqdisk-1.0.9-1.rpm
Preparing...              ##################################### [100%]
   1:cvuqdisk         ###################################### [100%]

如果这里有包没有安装就用 YUM 进行安装。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
并不是所有问题都会被修复。点击全部忽略。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
生成的安装概要,前面那个步骤要是有问题,可以在这里进行修改。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
开始安装。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
脚本要按照顺序执行,先执行完 orainstRoot.sh, 然后再执行 root.sh。
orainstRoot.sh 两个节点可以同时执行。root.sh, 在主节点执行成功之后,剩下的节点可以同时执行。

[root@racdb1 ~]# /u01/app/oraInventory/orainstRoot.sh
更改权限 /u01/app/oraInventory.
添加组的读取和写入权限。删除全局的读取, 写入和执行权限。更改组名 /u01/app/oraInventory 到 oinstall.
脚本的执行已完成。[root@racdb2 ~]# /u01/app/oraInventory/orainstRoot.sh 
更改权限 /u01/app/oraInventory.
添加组的读取和写入权限。删除全局的读取, 写入和执行权限。更改组名 /u01/app/oraInventory 到 oinstall.
脚本的执行已完成。[root@racdb1 ~]# /u01/app/11.2.0.4/grid/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0.4/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0.4/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
  root wallet
  root wallet cert
  root cert export
  peer wallet
  profile reader wallet
  pa wallet
  peer wallet keys
  pa wallet keys
  peer cert request
  pa cert request
  peer cert
  pa cert
  peer root cert TP
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to upstart
CRS-2672: Attempting to start 'ora.mdnsd' on 'racdb1'
CRS-2676: Start of 'ora.mdnsd' on 'racdb1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'racdb1'
CRS-2676: Start of 'ora.gpnpd' on 'racdb1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'racdb1'
CRS-2672: Attempting to start 'ora.gipcd' on 'racdb1'
CRS-2676: Start of 'ora.cssdmonitor' on 'racdb1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'racdb1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'racdb1'
CRS-2672: Attempting to start 'ora.diskmon' on 'racdb1'
CRS-2676: Start of 'ora.diskmon' on 'racdb1' succeeded
CRS-2676: Start of 'ora.cssd' on 'racdb1' succeeded

已成功创建并启动 ASM。已成功创建磁盘组 QUORUM。clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 4b2a3cc0f8bc4fe9bfb6b4e92f892b16.
Successful addition of voting disk 6406ec0a5cf94f98bfa149940c897b07.
Successful addition of voting disk 91e1caf292654f2fbf6dc8afc706f4cb.
Successfully replaced voting disk group with +QUORUM.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   4b2a3cc0f8bc4fe9bfb6b4e92f892b16 (/dev/mapper/quorum1) [QUORUM]
 2. ONLINE   6406ec0a5cf94f98bfa149940c897b07 (/dev/mapper/quorum2) [QUORUM]
 3. ONLINE   91e1caf292654f2fbf6dc8afc706f4cb (/dev/mapper/quorum3) [QUORUM]
Located 3 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'racdb1'
CRS-2676: Start of 'ora.asm' on 'racdb1' succeeded
CRS-2672: Attempting to start 'ora.QUORUM.dg' on 'racdb1'
CRS-2676: Start of 'ora.QUORUM.dg' on 'racdb1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

[root@racdb2 ~]# /u01/app/11.2.0.4/grid/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0.4/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0.4/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
Adding Clusterware entries to upstart
CRS-4402: CSS 守护程序已在独占模式下启动, 但在节点 racdb1 (编号为 1) 上发现活动 CSS 守护程序, 因此正在终止
An active cluster was found during exclusive startup, restarting to join the cluster
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

在所有节点脚本执行成功之后,回到图形界面点击确定。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
grid 开始创建网络和 ASM。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
安装成功,点击关闭。

7.2 配置磁盘组

用 grid 用户运行 asmca,出现 ASMCA 的界面
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
点击创建
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入磁盘组的名称,选择磁盘,点击确定开始创建。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
磁盘组创建成功。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
采用同样的方法创建磁盘组 FRA。

7.3 安装 Oracle 数据库软件

运行 runInstaller 开始安装

[oracle@racdb1 ~]$ /media/db_11204_linux64/runInstaller
正在启动 Oracle Universal Installer...

检查临时空间 : 必须大于 120 MB。实际为 73480 MB    通过
检查交换空间 : 必须大于 150 MB。实际为 8170 MB    通过
检查监视器 : 监视器配置至少必须显示 256 种颜色。实际为 16777216    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2014-09-29_07-32-27AM.

使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
不接受安装更新
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择是
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
跳过软件更新
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择仅安装数据库软件
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择 RAC 数据库,选择所有节点,然后点击 SSH,输入 oracle 用户密码,开始配置 SSH 等价性
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
SSH 等价性配置完成。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择要安装的语言
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择企业版
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
基目录和软件位置,一般默认。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择对应的用户组,默认即可
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
忽略该错误
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
安装概要,可以保存成响应文件
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
正在安装
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4

 用 root 用户,分别在两个节点上执行该脚本

[root@racdb1 ~]# /u01/app/oracle/product/11.2.0.4/dbhome_1/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0.4/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

[root@racdb2 ~]# /u01/app/oracle/product/11.2.0.4/dbhome_1/root.sh .
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0.4/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

脚本执行成功后,返回图形界面点击确定。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
安装成功。

7.4 创建数据库

在节点 1 上面运行 dbca 创建数据库
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择 RAC 数据库
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择创建数据库
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择定制数据库
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择策略管理的,输入数据库名以及服务器池的名字。
基数代表该服务器池有几台机器,这里是双节点,所以写的是 2。
注意:
Oracle 官方 11.2.0.2 之前推荐使用管理员管理的,11.2.0.2 之后推荐策略管理的。但是经过笔者的使用,个人建议如果没有特殊需求,还是推荐管理员管理。策略管理的无法确定每个节点上到底运行的是哪个实例,所以不好配置静态监听,因此就不好配置 DataGuard。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择是否配置 EM
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入管理员密码
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
如果密码比较简单,会提示这个问题,忽略即可
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
存储类型选择 ASM,数据库区选择 +DATA
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入安装 grid 时候管理员的密码。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
指定快速恢复区域
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择数据库组件,这里所有的组件都可以不选。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择 SGA 的大小,如果启用自动内存管理,SGA 需要大于一个值,点击下一步的时候会提示,内存大小不同,提示的值也不同。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
输入进程参数值,请根据也许需求设置。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
设置字符集,这里使用的是 UTF8 字符集。
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
配置数据存储
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
选择创建数据库
使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
安装概要,点击确定开始创建数据库。
 使用多路径在 Oracle Linux 6.5 上搭建 Oracle RAC 11.2.0.4
创建成功,点击退出。
到此,RAC 的安装结束。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137424.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计33975字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中