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 配置用户的环境变量
- 配置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 9月 28 02:33 control
lrwxrwxrwx 1 root root 7 9月 28 02:52 data1 -> ../dm-2
lrwxrwxrwx 1 root root 7 9月 28 02:52 data2 -> ../dm-8
lrwxrwxrwx 1 root root 7 9月 28 02:52 data3 -> ../dm-5
lrwxrwxrwx 1 root root 7 9月 28 02:52 data4 -> ../dm-6
lrwxrwxrwx 1 root root 7 9月 28 02:52 fra1 -> ../dm-9
lrwxrwxrwx 1 root root 7 9月 28 02:52 fra2 -> ../dm-4
lrwxrwxrwx 1 root root 8 9月 28 02:52 quorum1 -> ../dm-10
lrwxrwxrwx 1 root root 7 9月 28 02:52 quorum2 -> ../dm-3
lrwxrwxrwx 1 root root 7 9月 28 02:52 quorum3 -> ../dm-7
lrwxrwxrwx 1 root root 7 9月 28 02:34 vg_racdb-lv_root -> ../dm-0
lrwxrwxrwx 1 root root 7 9月 28 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 ~]$
跳过软件更新,如果有MOS账号,可以尝试更新
选择为集群安装和配置Oracle Grid Infrastructure
选择高级安装
选择语言
输入集群和SCAN 的名称
点击添加,添加集群节点
输入节点的公共主机名和虚拟主机名
选择SSH,输入grid用户的密码配置SSH等价性
等价性配置成功,点击确定,然后选择下一步
选择网络接口的类型,eth0选择公共,这里采用HAIP,所以eth1和eth2选择专用
存储类型选择Oracle ASM
更改磁盘搜索路径,输入/dev/mapper/*
创建仲裁磁盘,这里我起的磁盘组名叫QUORUM,磁盘用了QUORUM1、QUORUM2和QUORUM3
冗余有3个级别,每个级别要求的磁盘数如下:
外部>=1
普通>=3
高>=5
输入管理员的密码,一定要记住这个密码。
如果密码比较简单,点击是,忽略这个问题
这里没有配置IPMI,所以选择不使用IPMI
选择对应的用户组,一般默认就可以
选择Oracle base和Oracle home的位置
选择产品清单目录
由于开头并没有配置内核参数,所以这里有很多问题,这时候点击修补并再次检查。
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进行安装。
并不是所有问题都会被修复。点击全部忽略。
生成的安装概要,前面那个步骤要是有问题,可以在这里进行修改。
开始安装。
脚本要按照顺序执行,先执行完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
在所有节点脚本执行成功之后,回到图形界面点击确定。
grid开始创建网络和ASM。
安装成功,点击关闭。
7.2 配置磁盘组
用grid用户运行asmca,出现ASMCA的界面
点击创建
输入磁盘组的名称,选择磁盘,点击确定开始创建。
磁盘组创建成功。
采用同样的方法创建磁盘组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.
不接受安装更新
选择是
跳过软件更新
选择仅安装数据库软件
选择RAC数据库,选择所有节点,然后点击SSH,输入oracle用户密码,开始配置SSH等价性
SSH等价性配置完成。
选择要安装的语言
选择企业版
基目录和软件位置,一般默认。
选择对应的用户组,默认即可
忽略该错误
安装概要,可以保存成响应文件
正在安装
用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.
脚本执行成功后,返回图形界面点击确定。
安装成功。
7.4 创建数据库
在节点1上面运行dbca创建数据库
选择RAC数据库
选择创建数据库
选择定制数据库
选择策略管理的,输入数据库名以及服务器池的名字。
基数代表该服务器池有几台机器,这里是双节点,所以写的是2。
注意:
Oracle官方11.2.0.2之前推荐使用管理员管理的,11.2.0.2之后推荐策略管理的。但是经过笔者的使用,个人建议如果没有特殊需求,还是推荐管理员管理。策略管理的无法确定每个节点上到底运行的是哪个实例,所以不好配置静态监听,因此就不好配置DataGuard。
选择是否配置EM
输入管理员密码
如果密码比较简单,会提示这个问题,忽略即可
存储类型选择ASM,数据库区选择+DATA
输入安装grid时候管理员的密码。
指定快速恢复区域
选择数据库组件,这里所有的组件都可以不选。
选择SGA的大小,如果启用自动内存管理,SGA需要大于一个值,点击下一步的时候会提示,内存大小不同,提示的值也不同。
输入进程参数值,请根据也许需求设置。
设置字符集,这里使用的是UTF8字符集。
配置数据存储
选择创建数据库
安装概要,点击确定开始创建数据库。
创建成功,点击退出。
到此,RAC的安装结束。