centos7搭建rac集群

1、vmware安装两台相同的centos7系统,分别取名rac1、rac2

2、vmware在rac1新增7块硬盘,两块data、两块archive、三块ocr。测试用大小建议<=10g,均设置为独立永久模式(将虚拟机磁盘存储为单个磁盘)。

3、关机rac1和rac2

4、rac2新增磁盘选择现有虚拟磁盘,对应刚才的7个vmdx文件,也全部设为独立永久模式。

5、修改两个虚拟机的vmx文件,增加如下配置(scsi*因人而已)

scsi0.sharedBus= "virtual"
disk.locking= "false"
diskLib.dataCacheMaxSize= "0"
diskLib.dataCacheMaxReadAheadSize= "0"
diskLib.DataCacheMinReadAheadSize= "0"
diskLib.dataCachePageSize= "4096"
diskLib.maxUnsyncedWrites= "0"

6、将rac1和rac2开机

*****************************之后两台节点均执行以下操作*****************

7、yum -y install device-mapper-multipath.x86_64 安装多路径 (rac1和rac2都要安装配置)

8、systemctl list-unit-files | grep multipathd 查看多路径是否开机自动启动

9、/usr/lib/udev/scsi_id -g -u /dev/sd* 查看7个磁盘的wwid

10、vim /etc/multipath.conf

multipaths {
       multipath {
               wwid                    36000c293284e57a0c5e07e1189131264
               alias                   sdb_asmocr1
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }
       multipath {
               wwid                    36000c293445ec1e56884b853905dfde1
               alias                   sdc_asmocr2
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
       multipath {
               wwid                    36000c29989b1c4aa3bbe1a56e5aa2a21
               alias                   sdd_asmocr3
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
       multipath {
               wwid                    36000c291080ad0f78272bc938de8514f
               alias                   sde_asmdata1
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
       multipath {
               wwid                    36000c292b54f5d6338f27faa63b3e218
               alias                   sdf_asmdata2
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
       multipath {
               wwid                    36000c29c41289120cca5a118214c7fb2
               alias                   sdg_asmarch1
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
       multipath {
               wwid                    36000c29c72b61e145ac6544cba98448a
               alias                   sdh_asmarch2
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                manual
               rr_weight               priorities
               no_path_retry           5
       }       
}      

11、service multipathd start , 之后ll /dev/dm* 以及 ll /dev/mapper/ 查看各个盘的多路径是否出现

12、创建create_rac_user.sh脚本并执行

#!/bin/bash
groupadd -g 200 oinstall
groupadd -g 201 dba
groupadd -g 202 oper
groupadd -g 203 asmadmin
groupadd -g 204 asmoper
groupadd -g 205 asmdba
useradd  -u 200 -g oinstall -G dba,asmdba,oper oracle -s /bin/bash
useradd  -u 201 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid -s /bin/bash

 13、创建create_rac_dir.sh脚本并执行

#!/bin/bash
#1、Create 'Oracle inventory'
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory/
chmod -R 775 /u01/app/oraInventory/

#2、Create 'Grid Infrastructure BASE'
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01/app/grid
chmod -R 775 /u01/app/grid

#3、Create 'Grid Infrastructure Home'
mkdir -p /u01/app/11.2.0.4/grid
chown -R grid:oinstall /u01/app/11.2.0.4/grid/
chmod -R 775 /u01/app/11.2.0.4/grid/

#4、Create ‘Oracle Base’
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

#5、Create ‘Oracle Rdbms Home’
mkdir -p /u01/app/oracle/product/11.2.0.4/db_1
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0.4/db_1
chmod -R 775 /u01/app/oracle/product/11.2.0.4/db_1

 14、vim /etc/udev/rules.d/99-asmmultipath.rules

#!/bin/bash
KERNEL=="dm-[3-9]", OWNER="grid", GROUP="asmadmin", MODE="0660"

15、service systemd-udev-trigger restart 并执行ll /dev/dm*查看路径用户用户组是否变更

16、vim /etc/sysctl.conf   追加

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
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

17、sysctl -p   执行生效

18、 vim /etc/security/limits.conf  追加

#modify for oracle
oracle  soft   nproc   16384
oracle  hard   nproc   16384
oracle  soft   nofile  1024
oracle  hard   nofile  65536
oracle  soft   stack   10240
oracle  hard   stack   32768

#modify for grid
grid    soft   nproc   16384
grid    hard   nproc   16384
grid    soft   nofile  1024
grid    hard   nofile  65536
grid    soft   stack   10240
grid    hard   stack   32768

19、 su - grid 再vim .bash_profile  追加后source .bash_profile

export EDITOR=vi
#这边的SID要求不一样,rac2这种可以直接设置为+ASM2
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export THREADS_FLAG=native
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
umask 022

20、su - oracle 再vim  .bash_profile  追加后source .bash_profile

export EDITOR=vi
#这边的SID要求不一样,rac2这种可以直接设置为racdb2
export ORACLE_SID=racdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
umask 022

21、 关闭防火墙

service firewalld stop
systemctl disable firewalld

22、关闭selinux。     setenforce 0再vim /etc/selinux/config修改SELINUX=disabled

23、创建vip,复制/etc/sysconfig/network-scripts/ifcfg-ens*(对应rac1的主ip)改名增加:1,修改内容设NAME、DEVICE、IPADDR之后重启network

24、创建私有ip,vmware为两个机器添加虚拟网卡,进入系统ifconfig查看多了一个ens*网卡,创建/etc/sysconfig/network-scripts/ifcfg-ens*设置一个其他网段ip,之后重启network

25、两个节点修改/etc/hosts

192.168.3.151 rac1
192.168.3.152 rac2
10.10.1.101   rac1-priv
10.10.1.202   rac2-priv
192.168.3.153 rac1-vip
192.168.3.154 rac2-vip
192.168.3.155 zc-cluster-scan

****************************建立ssh互信(以oracle和grid用户分别执行一次)****************

26、在grid用户下解压linux.x64_11gR2_grid.zip,进入grid/sshsetup

./sshUserSetup.sh -user grid  -hosts "rac1 rac2" -advanced -noPromptPassphrase
./sshUserSetup.sh -user oracle  -hosts "rac1 rac2" -advanced -noPromptPassphrase
./sshUserSetup.sh -user root  -hosts "rac1 rac2" -advanced -noPromptPassphrase

*********************rac1机器安装grid********************* 

27、su切换到root用户 ,先安装yum install smartmontools,再安装grid/rpm/cvuqdisk-1.0.7-1.rpm, rpm -ivh cvuqdisk-1.0.7-1.rpm

28、切换会grid用户,./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

29、依据检查结果安装对应程序,若安装完成后仍然检查错误,则跳过不用管。

30、在grid用户下,./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/  (jre路径利用which java和ls -l查看,具体找到最后一个软连接指向的路径,不指定jre可能会存在安装界面弹出看不到,只出现一条竖线),弹出界面进行安装(若在xshell或secureCrt下没有正确弹出窗口,检查xhost,yum安装xclock在执行xclock看看能否弹出。某些情况只有root用户才能调出界面,grid无法实现。。这时只能选择静默安装,或者进虚拟机桌面下执行runInstaller,无桌面版则需要安装桌面后startx即可)

31、界面步骤:

  • 安装选项学选择集群
  • 高级安装
  • 添加库名(随意)和scan名称(这里对应zc-cluster-scan),GNS选项不选
  • Edit和Add将两个节点的ip和vip填进去,例子(rac1,rac1-vip;rac2,rac2-vip),若出现ins40912,则分别在两节点执行ifdown ens*:1,将对应vip网卡下线。
  • 网络设置直接next
  • 选择ASM
  • 磁盘组取名,选normal,add disks点击change discovery path,输入/dev/mapper/sd*,出来路径后选择ocr的三个盘,再下一步。(若存在盘没显示,大概率为权限问题,查看/dev/dm*的用户用户组是否匹配,再chown修改)
  • 设置密码(大小写加数字)
  • next
  • next
  • next
  • next
  • 等待校验,之后选择ignore all,next
  • install或者finish,等待安装
  • 弹出以下窗口时,以root用户分别登入两个节点,执行脚本。(注:执行第二个脚本时,需要在另一个终端不停地执行"/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1"直到执行成功为止。否则出现CRS-4124报错)

  •  最后点击OK,会继续安装剩下的程序。
  • 最后结果如下图(这两个错误不用管),next即可,安装结束。
  • 最后分别在两个节点su - grid,再执行asmcmd查看共享盘中的文件是否一致。

********************************安装oracle***************************

32、步骤

  • install database software only
  • application cluster (rac1 rac2)
  • enterprise edition
  • next next 开始检查
  • ignore all 再finish 开始安装,55%的时候弹出错误
  • 修改文件ins_ctx.mk,"$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)"修改为"-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/li64/libc.a",再修改ins_emagent.mk文件将"$(MK_EMAGENT_NMECTL)"修改为:"$(MK_EMAGENT_NMECTL) -lnnz11",之后界面retry即可
  • 弹出执行root.sh创久,在两个节点分别新开终端root用户登入,执行root.sh即可。
  • 点击ok,显示安装成功。

************************安装asm磁盘组*************************

33、

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的集群相比,还是与普通的oracle数据库相比,RAC都有一些独特之处。 RAC由至少两个节点组成,节点之间通过公共网络和私有网络连接,其中私有网络的功能是实现节点之间的通信,而公共网络的功能是提供用户的访问。在每个节点上分别运行一个Oracle数据库实例和一个监听器,分别监听一个IP地址上的用户请求,这个地址称为VIP(Virtual IP)。用户可以向任何一个VIP所在的数据库服务器发出请求,通过任何一个数据库实例访问数据库。Clusterware负责监视每个节点的状态,如果发现某个节点出现故障,便把这个节点上的数据库实例和它所对应的VIP以及其他资源切换到另外一个节点上,这样可以保证用户仍然可通过这个VIP访问数据库。 在普通的Oracle数据库中,一个数据库实例只能访问一个数据库,而一个数据库只能被一个数据库实例打开。在RAC环境中,多个数据库实例同时访问同一个数据库,每个数据库实例分别在不同的节点上运行,而数据库存放在共享的存储设备上。 通过RAC,不仅可以实现数据库的并发访问,而且可以实现用户访问的负载均衡。用户可以通过任何一个数据库实例访问数据库,实例之间通过内部通信来保证事务的一致性。例如,当用户在一个实例修改数据时,需要对数据加锁。当另一个用户在其他实例中修改同样的数据时,便需要等待锁的释放。当前一个用户提交事务时,后一个用户立即可以得到修改之后的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值