ITPub博客

首页 > 数据库 > Oracle > 【RAC】RAC搭建步骤Linux7.2+11G(基于Vmware+Openfile)

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

原创 Oracle 作者:恩强Boy 时间:2020-07-15 16:47:42 0 删除 编辑


一、 规划 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. 修改limit限制文件(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 -------------

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31529886/viewspace-2704758/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2018-04-03

  • 博文量
    14
  • 访问量
    111798