欢迎光临
我们一直在努力

【RAC】RAC搭建步骤Linux7.2+11G(基于Vmware+Openfile)


一、
规划

2

1.
网络规划

2

2.

磁盘规划

2

3.

主机硬件配置

3


二、
思路清晰

3


三、
准备工作

3

1.

网卡准备(rac1&rac2

3

2.

关闭防火墙和SElinux

rac1&rac2

5

3.

软件包准备

5

4.

共享磁盘准备

5


四、
搭建RAC

17

1.
修改系统参数(
rac1&rac2

17

2.

修改limits
文件(
rac1&rac2

18

3.
修改
/etc/hosts
文件(
rac1&rac2

18

4.
创建用户和组(
rac1&rac2

18

5.

创建软件安装目录(rac1&rac2

19

6.

修改环境变量(rac1&rac2

19

7.

配置本地YUM

rac1&rac2

20

8. UDEV
方式绑定磁盘(
rac1&rac2

21

9.

安装grid
软件(
rac1

22

10.
配置
ASM
磁盘(
rac1

34

11.
创建数据库(
rac1

36

12. DBCA
建库(
rac1

43


五、
验证

52

1.
验证集群状态

52

2.

验证实例信息

53

3.

验证数据文件、日志文件、控制文件信息

53

一、


规划

1. 

网络规划


虚拟
IP
:虚拟
IP
是集群搭建完成后,产生的
IP
。这个
IP
需要与物理
IP
在同一个网段。虚拟
IP
最大的特点:当这个节点服务器或集群宕机的时候,虚拟
IP
会无缝衔接到另外节点,以保证事务的连续性和查询的连续性。所以建议在业务分离的情况下,业务连接该节点虚拟
IP


在双节点的RAC
集群中,每个操作系统都有他本身的物理
IP
,集群各节点还会需要一个虚拟
IP

VIP
),这两个
IP
需要在同一个网段。

SCAN-IP
:浮动
IP
。这个
IP
会随机的浮动与两个节点之间。如果业务没有分离,建议业务连接
SCAN-IP
,以达到负载均衡的作用

2. 

磁盘规划


磁盘规划需要考虑两个层面:一是集群需要的磁盘,二是数据库需要的磁盘。

1)

集群需要的磁盘


为了满足集群的功能,需要提供两种作用的磁盘,OCR

Vote
盘。
OCR
盘记录着集群的一些相关信息,
Vote
盘在集群单节点出现故障,剔除该节点的时候决定性的作用。

OCR
盘和
Votefile
盘可以在同一个磁盘组,大小要求如下:

– Externel Redundancy

1 OCR(1 x 400M)=0.4G

1 voting files(1 x 300M)=0.3G

– Normal Redundancy

2 OCRs(2 x 400M)=0.8G

3 voting files(3 x 300M)=0.9G

– High Redundancy

3 OCRs(3 x 400M)=1.2G

5 Voting files(5 x 300M)=1.5G

2)

数据库需要的磁盘


数据库至少需要两个磁盘组,一个是用于存放数据文件,另一个是用于存放归档日志文件。大小无最低要求,需要根据业务数据量情况分配大小。

3. 

主机硬件配置




(这里是我的测试环境)

二、

思路清晰

step1:
网卡配置
(rac1&rac2)

step2:
关闭防火墙和
Selinux(rac1&rac2)

step3:
共享磁盘准备


(自己的测试环境用Openfile
作为共享存储就行,如果是生产环境,则需要一


台存储服务器用做共享存储)

step4:
修改内核参数文件

step5:
修改用户限制文件

step6:
修改
Hosts
文件

step7:
创建用户、组

step8:
创建目录并赋予权限

step9:
配置环境变量(
grid

oracle

step10:
配置本地
YUM
源,安装必需软件包

step11: udev
方式绑定共享磁盘

step12:
安装集群软件(
GI

step13:
配置
ASM
磁盘

step14:
安装数据库软件

step15: DBCA
建库

step16:
结束验证

三、

准备工作

1. 

网卡准备(rac1&rac2


解释:在RAC
集群中,每台服务器需要两块网卡,一块用做外网服务,一块用于私网通信。


添加私有网卡

2. 

关闭防火墙和SElinux

rac1&rac2

#
 systemctl stop firewall

#
 systemctl disable firewall


关闭selinux

# vi /etc/selinux/config

SELINUX=disabled

3. 

软件包准备



rac1

GI
目录



# mkdir -p /u01/setup/grid

DB

目录:# mkdir -p /u01/setup/db

OS
目录


# mkdir -p /u01/setup/os

   (
rac2

OS
目录:# mkdir -p /u01/setup/os

4. 

共享磁盘准备

Openfile iso

文件


下载地址

http://www.openfiler.com/community/download

1) 

创建一个虚拟机,配置如下


磁盘说明:


磁盘

1
是用于安装
openfile
系统,
30G


磁盘2
用于
ocr

vote
盘,
5G


磁盘3/4
用于
DATA
磁盘组,每个
100G


磁盘5
用于
ARCH
磁盘组,
50G

2) 

打开虚拟机,安装openfile


点击Enter
,自动安装

3) 

访问openfile
的管理界面(上面的地址)

username: openfiler

password: password

4) 

进入service

s

标签,


启动

iscsi
服务

5) 

进入system
标签页


添加一个允许访问的

IP
网段

6)
进入

volu
mes

创建物理



此时,物理卷已经创建完成

6) 

创建一个卷组

7) 
创建逻辑卷


同理,将上面规划的物理磁盘都创建为逻辑卷

8) 

添加IQN

4) 

做磁盘映射


此时


逻辑卷添加完成,要使用的话,需要对逻辑卷进行


扫描

9) 

客户


端对

openfile
服务器进行扫描

# iscsiadm -m discovery -t sendtargets -p
172.16.70.176
 -l


如果iscsiadm
命令


不可




,则需要安装

iscsi-initiator
 rpm

# iscsiadm -m discovery -t st -p 192.168.0.10

    -bash: iscsiadm: command not found

# mount /dev/cdrom /media  —
加载光盘,安装
iscsi-initiator rpm

    mount: block device /dev/cdrom is write-protected, mounting read-only

# cd /media/

# cd Server/

# ls -l *iscsi*

    -r–r–r– 55 root root 579386 Dec 17  2008 iscsi-initiator-utils-6.2.0.868-0.18.el5.i386.rpm

# rpm -ivh iscsi-initiator-utils-6.2.0.868-0.18.el5.i386.rpm 

四、

搭建RAC

1. 

修改系统参数(rac1&rac2

#
vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmax =
8589934591
    

kernel.shmmni = 4096

kernel.shmall =
2097152

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576


使参数生效

# sysctl -p

2. 

修改limits
文件(
rac1&rac2

# vi /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

3. 

修改/etc/hosts
文件(
rac1&rac2

172.16.70.170 rac1

172.16.70.171 rac2

10.0.0.100      rac1-priv

10.0.0.101      rac2-priv

172.16.70.173    rac1-vip

172.16.70.174    rac2-vip

172.16.70.175    cluster-scan-ip

4. 

创建用户和组(rac1&rac2



1

)创建组

#
groupadd -g 501 dba                                

#
groupadd -g 50
2
 oinstall



2

)创建用户

                             

#
useradd -u 50
1
 -g oinstall -G dba -d /home/oracle oracle

#
useradd -u 600 -g oinstall -G dba -d /home/grid grid


3



oracle

grid
用户设置密码

# passwd oracle

# passwd grid


4
)检查

# id oracle

# id grid

5. 

创建软件安装目录(rac1&rac2

#
mkdir -p /u01/app/oracle

#
mkdir -p /u01/app/oracle
/product/11.2.0/db_1

#
mkdir -p /u01/app/grid

#
mkdir -p /u01/app/11.2.0/grid

# chown -R oracle:oinstall /u01

#
chown -R grid:oinstall /u01
/app/grid

#
chown -R grid:oinstall /u01/app/11.2.0
/grid

#
chown -R oracle:oinstall /u01/app/oracle

#
chmod -R 775 /u01

(rac1
执行
)

#
chown -R grid:oinstall /u01/setup/grid

#
chown -R oracle:oinstall /u01/setup/db

6. 

修改环境变量(rac1&rac2

—–
切换到
grid
用户下
—–

rac1

$ vi .bash_profile

export ORACLE_SID=
+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$ORACLE_HOME/bin:$PATH

rac2

$ vim .bash_profile

export ORACLE_SID=
+ASM2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$ORACLE_HOME/bin:$PATH

—-
切换到
Oracle
用户下
——

rac1

# su – oracle

$ vi /home/oracle/.bash_profile

export ORACLE_SID=
ORCL1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$PATH:$ORACLE_HOME/bin

rac2

# su – oracle

$ vi /home/oracle/.bash_profile

export ORACLE_SID=
ORCL2

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$PATH:$ORACLE_HOME/bin


使上述环境变量生效

$ source .bash_porofile

7. 

配置本地YUM

rac1&rac2

(
root

用户)

# mount -o loop /u01/setup/os/
rhel-server-7.2-x86_64-dvd.iso
 /mnt

#
vi  /etc/yum.repos.d/mnt.repo

[mnt]

name=Yum Source

baseurl=file:///mnt

enabled=1

gpgcheck=0

# yum makecache


安装


如下包:

#
 
yum install

 

-y  binutils compat*  elfutils-libelf elfutils-libelf-devel  glibc glibc-common  glibc-devel gcc gcc-c++ libaio libgcc  libstdc++ libstdc++-devel make sysstat unixODBC-devel libaio-devel
ksh

8. 

UDEV
方式绑定磁盘(
rac1&rac2

#
vi /etc/udev/rules.d/
99-oracle-asmdevices.rules

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="
14f504e46494c45524932494157712d763771782d30694f30
", RUN+="/bin/sh -c 'mknod
/dev/asm_ocr
 b  $major $minor; chown grid:oinstall
/dev/asm_ocr
; chmod 0660
/dev/asm_ocr
'"

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="
14f504e46494c45526d70325177442d616f33572d35686452
", RUN+="/bin/sh -c 'mknod
/dev/asm_data1
 b  $major $minor; chown grid:oinstall
/dev/asm_data1
; chmod 0660
/dev/asm_data1
'"

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="
14f504e46494c455251726b30676d2d337842312d55375278
", RUN+="/bin/sh -c 'mknod
/dev/asm_data2
 b  $major $minor; chown grid:oinstall
/dev/asm_data2
; chmod 0660
/dev/asm_data2
'"

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="
14f504e46494c45527650634d78742d4a7664622d3276506e
", RUN+="/bin/sh -c 'mknod
/dev/asm_arch
 b  $major $minor; chown grid:oinstall
/dev/asm_arch
; chmod 0660
/dev/asm_arch
'"


注:RESULT
参数应对应裸设备的
wwid
号;每个小版本的
udev
配置略有不同,当前这个配置只适用于
RHEL 7.2
版本


启动udev

# /sbin/udevadm trigger –type=devices –action=change


查看asm
磁盘

# ll /dev/asm*

9. 

安装grid
软件(
rac1


1
)解压
grid
软件

# su – grid

$ cd /u01/setup/grid

$ unzip p*.zip


2
)安装

cvuqdisk

# cd rpm/

#
rpm -ivh cvuqdisk-1.0.9-1.rpm


将这个

rpm
包传输到
2
节点上安装



3

)运行图形界面

$
unzip /u01/setup/grid/
p*

$ cd /u01/setup/grid/grid


运行 ./runInstaller


注:

1)

远程运行图形界面需要


打开Xmanager,
双机
Xmanager-Passive

$ export DISPLAY=
本机
IP:0.0

2
)检查是否可以运行图形

$ xhost +

access control disabled, clients can connect from any host
s


出现以上字样,代表可运行图形界面

3
)出现



口口口口口



乱码,执行

$ export Lang=en_US


跳过软件更新


选择高级安装

SCAN name
名字要写
/etc/hosts
文件中
scan-ip
的名字


这里的rac1/rac1-vip/rac2/rac2-vip
名字要和
/etc/hosts
文件中名字对应


输入密码

grid
,点击
setup
配置互信


通用密码写

oracle


执行如下两个脚本


执行顺序:

A
机执行脚本
1

B
机执行脚本
1

A
机执行脚本
2

B
机执行脚本
2


执行脚本必须一个一个来,最好不要一起执行。

rac1:

rac2


脚本执行完成,点击OK


注:

1
)如果这里
root.sh
脚本执行失败,可以回退,如下:

# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose

2
)如果一直卡在

Adding daemon to inittab

或者

Adding Clusterware entries to inittab

或者

ohasd
进程启动失败




则此时需要新开一个窗口执行下面脚本,等ohasd
进行启动成功后再取消执行脚本即可

#
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1


忽略报错,不影响

10. 

配置ASM
磁盘(
rac1

Grid
用户

$ asmca


这里需要注意一下,对于普通磁盘组(非OCR
),正常冗余模式至少需要
2
块盘;高冗余模式至少需要
3
块盘;不冗余模式至少需要
2
块盘。


最后结果如下:

11. 

创建数据库(rac1


Oracle
用户)

# su – oracle

$ cd /u01/setup/db/

$ unzip p13390677_112040_Linux-x86-64_1of7.zip

$ unzip p13390677_112040_Linux-x86-64_2of7.zip


将两个zip
包解压会生成一个
database
目录

$ cd database/

$ pwd

/u01/setup/db/database

$ ./runInstaller

Oracle
的密码是
oracle
,选择
setup
建立互信

12. 

DBCA
建库(
rac1


Oracle
用户)

$ dbca


密码

oracle

五、

验证

1. 

验证集群状态



2. 

验证实例信息

3. 

验证数据文件、日志文件、控制文件信息

 
———– end ————-

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。