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 sourcebaseurl=file:///var/yumenable=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 stopchkconfig iptables off5. 配置共享存储
参照存储的使用手册,在存储服务器上根据存储的规划,划分出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.i686gcc-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.i686kshlibgcc-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.i686libstdc++-devel-4.4.4-13.el6 (x86_64)libstdc++-devel-4.4.4-13.el6.i686libaio-0.3.107-10.el6 (x86_64)libaio-0.3.107-10.el6.i686libaio-devel-0.3.107-10.el6 (x86_64)libaio-devel-0.3.107-10.el6.i686make-3.81-19.el6sysstat-9.0.4-11.el6 (x86_64)通过一下的命令来检测上面列出的包是否安装成功
rpm -q binutilselfutils 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-devel6.2 配置hosts文件
编辑/etc/hosts文件,加入以下内容。
10.128.20.101 racdb1.dhc.com racdb110.128.20.102 racdb2.dhc.com racdb2192.168.1.101 racdb1-priv.dhc.com racdb1-priv192.168.1.102 racdb2-priv.dhc.com racdb2-priv10.128.20.201 racdb1-vip.dhc.com racdb1-vip10.128.20.202 racdb2-vip.dhc.com racdb2-vip192.168.136.103 storage1.dhc.com storage16.3 配置域名解析服务
本环境配置DNS来解析SCAN名字。在DNS服务器里加入dhc.com域和10.128.20.0网段的反向解析域即可。
/etc/named.confzone "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 ; serial1D; refresh1H; retry1W ; expire3H ); minimumNS@A 127.0.0.1AAAA::1racdb-cluster-scan A 10.128.20.110racdb-cluster-scan A 10.128.20.111racdb-cluster-scan A 10.128.20.112/var/named/20.128.10.in-addr.arpa.zone$TTL 1D@ IN SOA@ rname.invalid. (0 ; serial1D; refresh1H; retry1W ; expire3H ); minimumNS@A 127.0.0.1AAAA::1110 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.comracdb-cluster-scan.dhc.com has address 10.128.20.111racdb-cluster-scan.dhc.com has address 10.128.20.112racdb-cluster-scan.dhc.com has address 10.128.20.1106.4 内核参数调整
由于现在oracle新版本提供一个script来修改内核参数,这一步现在可以省略。
6.5 创建用户
用root用户执行下面的命令,添加以下用户组
groupadd -g 1000 oinstallgroupadd -g 1200 asmadmingroupadd -g 1201 asmdbagroupadd -g 1202 asmopergroupadd -g 1300 dbagroupadd -g 1301 oper用root用户添加grid和oracle用户
useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash griduseradd -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 2047grid hard nproc 16384grid soft nofile 1024grid hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536编辑/etc/pam.d/login,加入以下内容
session required pam_limits.so6.7 创建挂载点
用root用户执行下面的命令创建挂载点
mkdir -p /u01/app/11.2.0.4/gridmkdir -p /u01/app/gridchown -R grid:oinstall /u01mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1chown -R oracle:oinstall /u01/app/oraclechmod -R 775 /u016.8 配置用户的环境变量
- 配置grid用户的环境变量
切换到grid用户,编辑.bash_profile文件,加入以下内容
export ORACLE_SID=+ASM1export ORACLE_BASE=/u01/app/gridexport ORACLE_HOME=/u01/app/11.2.0.4/gridexport PATH=$ORACLE_HOME/bin:$PATH:/usr/local/binexport TEMP=/tmpexport TMP=/tmpexport TMPDIR=/tmpexport 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_1export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1export ORACLE_TERM=xtermexport NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/bin:usr/bin/X11:/usr/local/binexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport TEMP=/tmpexport TMPDIR=/tmpumask 022注意在另外一个节点ORACLE_SID为PROD_2
为了使新的环境变量生效,重启服务器或者执行下面的命令:
. .bash_profile编辑/etc/profile,加入以下内容
if [ $USER = "oracle" ] || [ $USER = "grid" ] ; thenif [ $SHELL = "/bin/ksh" ] ; then ulimit -p 16384ulimit -n 65536 elseulimit -u 16384 -n 65536fiumask 022fi6.9 配置共享存储
安装iscsi和多路径包
yum install iscsi-initiator-utils device-mapper-multipath配置iscsi和多路径自动启动
chkconfig iscsi onchkconfig iscsid onchkconfig multipathd on发现target
[root@racdb1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.136.103 --discover192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data1192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data2192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data3192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:data4192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra1192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:fra2192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum1192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum2192.168.136.103:3260,1 iqn.2014-09.com.dhc.storage1:quorum3挂载存储
iscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:quorum1 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:quorum2 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:quorum3 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:data1 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:data2 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:data3 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:data4 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.2014-09.com.dhc.storage1:fra1 -p 192.168.136.103:3260 -liscsiadm -m node -Tiqn.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 –showTarget 1: iqn.2014-09.com.dhc.storage1:data1。。。。。。LUN: 1Type: diskSCSI ID: IET 00010001SCSI SN: beaf11Size: 10737 MB, Block size: 512Online: YesRemovable media: NoPrevent removal: NoReadonly: NoBacking store type: rdwrBacking store path: /target/data1.imgBacking 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/devpolling_interval10path_selector "round-robin 0"path_grouping_policymultibusgetuid_callout"/lib/udev/scsi_id --whitelisted --device=/dev/%n"path_checkerreadsector0rr_min_io 100max_fds 8192rr_weight prioritiesfailbackimmediateno_path_retry failuser_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_multipathmodprobe dm_mod/etc/init.d/multipathd start查看多路径multipath -ll
[root@racdb2 ~]# multipath -llquorum3 (1IET 00090001) dm-7 IET,VIRTUAL-DISKsize=1.0G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 8:0:0:1sdh 8:112 active readyrunningquorum2 (1IET 00080001) dm-2 IET,VIRTUAL-DISKsize=1.0G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 4:0:0:1sdb 8:16active readyrunningquorum1 (1IET 00070001) dm-10 IET,VIRTUAL-DISKsize=1.0G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 9:0:0:1sdf 8:80active readyrunningfra2 (1IET 00060001) dm-9 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 5:0:0:1sdc 8:32active readyrunningfra1 (1IET 00050001) dm-4 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 6:0:0:1sde 8:64active readyrunningdata4 (1IET 00040001) dm-5 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 10:0:0:1 sdi 8:128 active readyrunningdata3 (1IET 00030001) dm-8 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 3:0:0:1sdd 8:48active readyrunningdata2 (1IET 00020001) dm-6 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 7:0:0:1sdg 8:96active readyrunningdata1 (1IET 00010001) dm-3 IET,VIRTUAL-DISKsize=10G features="0" hwhandler="0" wp=rw`-+- policy="round-robin 0" prio=1 status=active`- 2:0:0:1sda 8:0 active readyrunning如果绑定成功,会在/dev/mapper目录下面看到新生成的磁盘
[root@racdb1 mapper]# llcrw-rw---- 1 root root 10, 58 9月28 02:33 controllrwxrwxrwx 1 root root7 9月28 02:52 data1 -> ../dm-2lrwxrwxrwx 1 root root7 9月28 02:52 data2 -> ../dm-8lrwxrwxrwx 1 root root7 9月28 02:52 data3 -> ../dm-5lrwxrwxrwx 1 root root7 9月28 02:52 data4 -> ../dm-6lrwxrwxrwx 1 root root7 9月28 02:52 fra1 -> ../dm-9lrwxrwxrwx 1 root root7 9月28 02:52 fra2 -> ../dm-4lrwxrwxrwx 1 root root8 9月28 02:52 quorum1 -> ../dm-10lrwxrwxrwx 1 root root7 9月28 02:52 quorum2 -> ../dm-3lrwxrwxrwx 1 root root7 9月28 02:52 quorum3 -> ../dm-7lrwxrwxrwx 1 root root7 9月28 02:34 vg_racdb-lv_root -> ../dm-0lrwxrwxrwx 1 root root7 9月28 02:33 vg_racdb-lv_swap -> ../dm-1将第一个节点的 multipathd.conf复制到第二个节点,然后在第二个节点启动多路径
修改共享存储的权限
chown grid:asmadmin data1chmod 660 data1使用同样的方法更改所有存储的权限。
最终的权限如下面所示:
[root@racdb1 mapper]# ls -lL总用量 0brw-rw---- 1 root disk 253,5 9月29 03:23 data1brw-rw---- 1 root disk 253,7 9月29 03:23 data2brw-rw---- 1 root disk 253,3 9月29 03:24 data3brw-rw---- 1 root disk 253, 10 9月29 03:24 data4brw-rw---- 1 root disk 253,2 9月29 03:25 fra1brw-rw---- 1 root disk 253,8 9月29 03:25 fra2brw-rw---- 1 root disk 253,4 9月29 03:20 quorum1brw-rw---- 1 root disk 253,6 9月29 03:22 quorum2brw-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.bk7. 部署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 ~]$ 跳过软件更新,如果有MOS账号,可以尝试更新
选择为集群安装和配置Oracle Grid Infrastructure
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-11/137424p2.htm
Linux 6.5(Oracle 11.2.0.4)单实例ASM安装用Oracle的PROFILE限制Oracle用户相关资讯 Oracle RAC Oracle RAC 11.2.0.4
- 升级Oracle RAC 11.2.0.3.0到 11.2 (今 08:28)
- 11.2.04 Oracle RAC 目录中 (12/21/2015 15:10:42)
- 关于心跳网络引起的Oracle RAC的节 (06/04/2015 17:53:20)
| - Oracle RAC 更换存储实验 (08月24日)
- Oracle RAC客户端tnsnames.ora相关 (09/02/2015 19:31:57)
- Oracle 11gR2 RAC集群服务启动与关 (04/29/2015 10:27:54)
|
本文评论 查看全部评论 (0)