一、 规划 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
虚拟 IP :虚拟 IP 是集群搭建完成后,产生的 IP 。这个 IP 需要与物理 IP 在同一个网段。虚拟 IP 最大的特点:当这个节点服务器或集群宕机的时候,虚拟 IP 会无缝衔接到另外节点,以保证事务的连续性和查询的连续性。所以建议在业务分离的情况下,业务连接该节点虚拟 IP 。 在双节点的RAC 集群中,每个操作系统都有他本身的物理 IP ,集群各节点还会需要一个虚拟 IP ( VIP ),这两个 IP 需要在同一个网段。
SCAN-IP :浮动 IP 。这个 IP 会随机的浮动与两个节点之间。如果业务没有分离,建议业务连接 SCAN-IP ,以达到负载均衡的作用
磁盘规划需要考虑两个层面:一是集群需要的磁盘,二是数据库需要的磁盘。
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) 数据库需要的磁盘
数据库至少需要两个磁盘组,一个是用于存放数据文件,另一个是用于存放归档日志文件。大小无最低要求,需要根据业务数据量情况分配大小。
(这里是我的测试环境)
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: 结束验证
解释:在RAC 集群中,每台服务器需要两块网卡,一块用做外网服务,一块用于私网通信。
添加私有网卡
# systemctl stop firewall
# systemctl disable firewall
关闭selinux
# vi /etc/selinux/config
SELINUX=disabled
( 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
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
# 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
# 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
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
( 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
# 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
----- 切换到 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
( 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
# 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*
(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
忽略报错,不影响
Grid 用户
$ asmca
这里需要注意一下,对于普通磁盘组(非OCR ),正常冗余模式至少需要 2 块盘;高冗余模式至少需要 3 块盘;不冗余模式至少需要 2 块盘。
最后结果如下:
(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 建立互信
(Oracle 用户)
$ dbca
密码 oracle
----------- end -------------
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。