1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
一、基本环境需求
系统环境:
系统版本:RHEL5U8 x86_64
ORACLE版本:ORACLE 10.2.1
IP地址
odb1 192.168.100.144
192.168.101.144
odb2 192.168.100.143
192.168.101.143
服务器关闭Selinux /iptables
二、前期准备工作
修改两台计算机的主机名字
odb1 odb1-priv odb1-vip
obd2 odb2-priv odb2-vip
配置yum源码,保证数据包都完整安装,oracleRAC最讨厌少包,确包的问题,大多数都是由于rpm包引起的
分别在两台机器上创建oracle用户和oinstall dba两个组
准备六块共享盘,我们在此实验中可以借助virtualbox来模拟,在环境中我们可以使用EMC netapp 来规划
data×2 10G  数据盘 根据业务来划分大小
ocr×2   512M  集群信息注册盘
virdisk×3 512M
需要注意的是 在oracle11g中不支持virtualdis 只支持asm
切忌要格式创建的硬盘,格式化只需要在一台机器上配置测试就可以了
配置双向SSH无密码认证,
SSH需要两台机器互相连接,并且需要SSH本身能SSH连接,不然会在oracle集群节点报错
创建raw(裸)设备,需要修改RAC机器的节点上的两个配置文件
还需要注意raw权限的问题  chmodchown
注意:需要两边的raw设备端口号一样,不然会报错,
例如:我们在节点A上面RAW1对应的是port1,那么我们需要在节点B上的RAW1对应的也是port1,端口不能错误。不然会发生错误
修改系统参数文件,配置oracle用户的环境变量
三、实施前期准备工作
1.创建oracle用户两个节点配置创建一样
[root@rac2 ~] # groupadd oinstall
[root@rac2 ~] # groupadd dba
[root@rac2 ~] # useradd -d /home/oracle -g oinstall -G dba -s /bin/bash oracle
[root@rac2 ~] # echo "123.com" | passwd --stdin oracle
[root@rac1 oracle] # echo "123.com" | passwd --stdin oracle
Changing password foruser oracle.
passwd : all authentication tokens updated successfully.
[root@rac1 oracle] #
2.修改计算机名字,以及修改hosts文件
[root@odb1 ~] # hostname
odb1
修改计算机名字的两种方式
临时修改:hostnameodb1
永久修改:vim  /etc/sysconfig/network
hots文件需要修改,双节点需要认证 两台机器配置是一样的,另一台机器直接 scp 过去就可以
[root@odb1 ~] # cat /etc/hosts
127.0.0.1   localhost
192.168.100.144 odb1
192.168.100.143 odb2
192.168.101.144 odb1-priv
192.168.101.143 odb2-priv
192.168.100.252 odb1-vip
192.168.100.253 odb2-vip
[root@odb1 ~] #
3.修改yum源服务器,我们做是本地yum服务器,两台机器配置完全一样, scp 到新的机器就可以
mount /dev/cdrom/mnt
如下附件是yum本地源的配置,因为RHEL5.x系列配置公网yum比较麻烦,rpm安装更恐怖,只能本地yum配置
[root@odb1 ~] # cat /etc/yum.repos.d/opensource.repo
[opensource]
name=opensource
baseurl= file : ///mnt/Server
enabled=1
gpgcheck=0
[opensource1]
name=opensource1
baseurl= file : ///mnt/VT
enabled=1
gpgcheck=0
[opensource2]
name=opensource2
baseurl= file : ///mnt/Cluster
enabled=1
gpgcheck=0
[root@odb1 ~] #
4.共享共享存储磁盘的配置,我们在这里是模拟的,因此我们在第一个节点上添加硬盘共享,然后第二个节点就可以使用
用到的技术 LVM 几个命令:pvcreate cgcreate lvcreate
需要格式化
如下是裸设备的配置修改,两台机器配置的方式一模一样;
root@rac1  /home ] # cat /etc/sysconfig/rawdevices
# raw device bindings
# format:  <rawdev> <major> <minor>
#          <rawdev> <blockdev>
# example: /dev/raw/raw1 /dev/sda1
#          /dev/raw/raw2 8 5
/dev/raw/raw1/dev/sdb1
/dev/raw/raw2/dev/sdc1
/dev/raw/raw3/dev/sdd1
/dev/raw/raw4/dev/sde1
/dev/raw/raw5/dev/sdf1
/dev/raw/raw6/dev/sdg1
/dev/raw/raw7/dev/sdh1
[root@rac1  /home ] #
[root@rac1  /home ] # cat /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor
ACTION== "add" , KERNEL== "sdb" , RUN+= "/bin/raw /dev/raw/raw1 %N"
ACTION== "add" , KERNEL== "sdc" , RUN+= "/bin/raw /dev/raw/raw2 %N"
ACTION== "add" , KERNEL== "sdd" , RUN+= "/bin/raw /dev/raw/raw3 %N"
ACTION== "add" , KERNEL== "sde" , RUN+= "/bin/raw /dev/raw/raw4 %N"
ACTION== "add" , KERNEL== "sdf" , RUN+= "/bin/raw /dev/raw/raw5 %N"
ACTION== "add" , KERNEL== "sdg" , RUN+= "/bin/raw /dev/raw/raw6 %N"
ACTION== "add" , KERNEL== "sdh" , RUN+= "/bin/raw /dev/raw/raw7 %N"
[root@rac1  /home ] #
重启服务
[root@rac1  /home ] # /etc/rc.d/init.d/rawdevices restart
Assigning devices:
/dev/raw/raw1-- >    /dev/sdb1
/dev/raw/raw1 :  bound to major 8, minor 17
/dev/raw/raw2-- >    /dev/sdc1
/dev/raw/raw2 :  bound to major 8, minor 33
/dev/raw/raw3-- >    /dev/sdd1
/dev/raw/raw3 :  bound to major 8, minor 49
/dev/raw/raw4-- >    /dev/sde1
/dev/raw/raw4 :  bound to major 8, minor 65
/dev/raw/raw5-- >    /dev/sdf1
/dev/raw/raw5 :  bound to major 8, minor 81
/dev/raw/raw6-- >    /dev/sdg1
/dev/raw/raw6 :  bound to major 8, minor 97
/dev/raw/raw7-- >    /dev/sdh1
/dev/raw/raw7 :  bound to major 8, minor 113
done
[root@rac1  /home ] #
授权在两个节点都需要
[root@odb1 ~] # chown -R root:oinstall /dev/raw/raw[1-2]
[root@odb1 ~] # chown -R oracle:oinstall /dev/raw/raw[3-5]
[root@odb1 ~] # chown -R oracle:dba /dev/raw/raw[6-8]
[root@odb1 ~] # chmod 660 /dev/raw/raw*
[root@odb1 ~] # vim /etc/udev/rules.d/50-udev.rules
KERNEL== "raw[1-7]" , OWNER= "oracle" GROUP= "dba" , MODE= "0660"
5.配置SSH双向认证
三部曲,如下三步 需要在RAC两个节点上都同时配置
[oracle@odb1 ~]$  ssh -keygen -t rsa  一路回车
[oracle@odb1 ~]$  cd . ssh /
[oracle@odb1 . ssh ]$  ssh -copy- id -i id_rsa.pub oracle@192.168.100.143
[oracle@odb1 . ssh ]$  ssh -copy- id -i id_rsa.pub oracle@192.168.100.144
需要注意,在配置完成之后,需要SSH手动连接测试,保证正常因为有的会是 yes
因为如果在RAC节点检查的时候,没有安装会报错
两台节点在oracle用户下操作
sshodb1
sshodb2
sshodb1-priv
sshodb2-priv
6.yum安装oracle需要使用的包
yum -y installinstallcompat-db.* binutils* binutils-devel.* control-center.* control-center-devel.* control-center.* gcc gcc-c++ glibc-utils  glibc.* glibc-common.* glibc-devel.* glibc-headers.* compat-glibc.*  glibc-common libstdc++.* libstdc++-devel.* libstdc++44-devel.* makesetarch installcompat-db.* compat-db binutils control-center gcc gcc-c++ glibc  glibc-devel glibc-common libstdc++ libstdc++-devel makeopenmotif setarch libaio compat-libstdc++ compat-gcccompat- libXp openmotif22 compat-db
7.配置环境变量
配置环境变量
su  - oracle
vim .bashrc  两个节点配置完全一样,只需要修改SID就可以
exportORACLE_BASE= /u01/app/oracle
exportORA_CRS_HOME=$ORACLE_BASE /product/10 .2.0 /crs_1
exportORACLE_HOME=$ORACLE_BASE /product/10 .2.0 /db_1
exportPATH=$ORACLE_HOME /bin :$ORA_CRS_HOME /bin :$PATH
exportORACLE_OWNER=oracle
exportORACLE_SID=odb1
exportORACLE_TERM=vt100
exportTHREADS_FLAG=native
exportLD_LIBRARY_PATH=$ORACLE_HOME /lib :$LD_LIBRARY_PATH
exportLANG=en_US
umask022
8.创建环境变量节点 两个节点都需要创建
[root@odb1 ~] # mkdir /u01
[root@odb1 ~] # chown oracle:oinstall /u01/ -R
[oracle@odb1 ~]$  mkdir $ORACLE_BASE /admin-p
[oracle@odb1 ~]$  mkdir -p $ORACLE_HOME
[oracle@odb1 ~]$  mkdir -p $ORA_CRS_HOME
[oracle@odb1 ~]$  mkdir -p  $ORACLE_BASE /oradata/r10g
9.修改oracle最大连接数文件(两台节点都需要修改)
cat /etc/security/limits .com
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
10.添加oracle的pam认证模块
cat /etc/pam .d /login
session required  /lib/security/pam_limits .so
11.修改内核参数 两台节点都配置
vim  /etc/sysctl .conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs. file ‐max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
sysctl -p  生效
12.修改hangcheck  time 内核参数 两台节点都安装
vim  /etc/modprobe .conf 最后面添加如下一行
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
然后生效:modprobe -vhangcheck-timer
13.自己搭建NTP时间服务器,要么自己来inetrnet时间服务器
ntpdate ntp.api.bz
关于搭建NTP时间服务器,查看我的博文;
时间服务器每小时同步一样
crontab -e
* 1 * * * ntpdate -s ntp.api.bz
至此准备环境配置完成,接下来安装RAC安装

本文转自devilangel 51CTO博客,原文链接:http://blog.51cto.com/devliangel/1288235,如需转载请自行联系原作者