oracle RAC 高可用集群

本文详细介绍了Oracle RAC集群的搭建过程,包括环境配置、共享磁盘创建、节点互信、软件安装及高可用性验证。强调了在安装过程中遇到的问题及其解决方法,展示了Oracle RAC如何实现多节点负载均衡和故障容错。
摘要由CSDN通过智能技术生成

oracle RAC集群简介

Oracle RAC主要支持Oracle9i、10g、11g,12C版本
在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
1)多节点负载均衡;
2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
6)可扩展性好,可以方便添加删除节点,扩展硬件资源。

缺点:
1)相对单机,管理更复杂,要求更高;
2)在系统规划设计较差时性能甚至不如单节点;
3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费

搭建环境

硬件每个节点要求必须配置两个网卡

操作系统 IP 主机名
centos 7.4 192.168.169.10 192.168.69.10 rac1
centos 7.4 192.168.169.20 192.168.69.20 rac2
centos 7.4 192.168.169.30 iscsi-server

一. 基础环境规划
IP地址的规划、要求修改host文件,所有节点的host文件一样

IP类型 IP地址 对应的主机名 对IP地址的理解
public ip 192.168.169. 10 rac1 这是本机物理网卡对应的IP用于网络之间的连接
192.168.169.20 rac2
priv ip 192.168.69.10 rac1-priv 这个IP是私网的IP地址、每个节点的私网IP都必须要在同一网段、用于各节点之间做心跳检测
192.168.69.20 rac2-priv
vip 192.168.169.111 rac1-vip 虚拟IP地址,需要与物理网卡在同一网段、只需写入host文件,当服务启动时就会生成这个IP、当服务宕机这个IP地址就会漂移到其他存活的节点上
192.168.169.222 rac2-vip
scan ip 192.168.169.63 rac-scan Oracle 11g推出的新功能,用于DNS和GNS解析、一个节点最多有三个scan ip,但写入host文件解析只能有一个,在官网上不推荐这样做,因为这样做失去了他的新功能、但在实际的生产环境中我们都是写入host文件的

1. 节点1和节点2 的hosts文件必须一致

[root@rac1 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#public ip
192.168.169.10        rac1
192.168.169.20        rac2

#priv ip 
192.168.69.10         rac1-priv
192.168.69.20         rac2-priv 

#vip
192.168.169.111       rac1-vip
192.168.169.222       rac2-vip

#scan 
192.168.169.63        rac-scan

2. 直接把修改好的配置文件发送给节点2

[root@rac1 ~]# scp /etc/hosts  root@192.168.169.20:/etc/hosts
The authenticity of host '192.168.169.20 (192.168.169.20)' can't be established.
ECDSA key fingerprint is SHA256:qshWKJ+cGX5OYoSmJA7YrwfvYaj9CuI5oG1UlRCmXsw.
ECDSA key fingerprint is MD5:27:a3:50:62:45:7e:6f:15:46:cf:26:96:ce:6f:cc:56.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.169.20' (ECDSA) to the list of known hosts.
root@192.168.169.20's password: 
hosts                 100%  411    16.8KB/s   00:00 

3. 配置yum 源、安装epel 源 (两个节点做相同操作)

[root@rac1 yum.repos.d]#curl -o CentOS7-Base-163.repo  http://mirrors.163.com/.help/CentOS7-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1572  100  1572    0     0  11116      0 --:--:-- --:--:-- --:--:-- 11148
[root@rac1 yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@rac1 yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@rac1 yum.repos.d]# yum install -y epel-release 

4. 关闭防火墙,关闭selinux (两个节点做相同操作)

[root@rac1 ~]# systemctl stop firewalld
[root@rac1 ~]# systemctl disable  firewalld
[root@rac1 ~]# setenforce 0
[root@rac1 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g'  /etc/selinux/config 

5. 创建用户和组,并给用户配置密码 (两个节点做相同操作)

[root@rac1 ~]# groupadd oinstall
[root@rac1 ~]# groupadd dba
[root@rac1 ~]# groupadd oper
[root@rac1 ~]# groupadd asmdba
[root@rac1 ~]# groupadd asmoper
[root@rac1 ~]# groupadd asmadmin
[root@rac1 ~]# useradd -g oinstall -G dba,oper,asmdba oracle
[root@rac1 ~]# useradd -g oinstall -G asmdba,dba,asmadmin,asmoper grid

6. 创建目录 (两个节点做相同操作)

[root@rac1 ~]# mkdir /u01
[root@rac1 ~]# mkdir /u01/{grid,oracle,gridbase}
[root@rac1 ~]# ls /u01/
grid  gridbase  oracle          

7. 对目录授权处理 (两个节点做相同操作)

[root@rac1 ~]# chown -R grid:oinstall /u01/
[root@rac1 ~]# chown -R oracle:oinstall /u01/oracle/
[root@rac1 ~]# chmod -R g+w /u01/

8. 添加环境变量 (两个节点做相同操作)

[root@rac1 ~]# vi /home/grid/.bash_profile 
ORACLE_BASE=/u01/gridbase
ORACLE_HOME=/u01/grid
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY

[root@rac1 ~]# vi /home/oracle/.bash_profile 
ORACLE_BASE=/u01/oracle
ORACLE_HOME=/u01/oracle/db
ORACLE_SID=cludb1              //注意节点1和节点2的SID 不能一样
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY

9. 重新读取配置文件,并检测是否生效 (两个节点做相同操作)

[root@rac1 ~]# source /home/grid/.bash_profile 
[root@rac1 ~]# source /home/oracle/.bash_profile 
[root@rac1 ~]# echo $ORACLE_HOME
/u01/oracle/db

10. 修改linux 内核参数 (两个节点做相同操作)

[root@rac1 ~]# cat /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

[root@rac1 ~]# sysctl -p         //使修改内核生效

11. 修改配置文件/etc/security/limits.conf (两个节点做相同操作)

[root@rac1 ~]# vi /etc/security/limits.conf       //在文件尾部添加
oracle soft nproc      2047 
oracle hard nproc      16384 
oracle soft nofile    1024 
oracle hard nofile    65536 
oracle soft stack      10240 
grid soft nproc 2047 
grid hard nproc 16384 
grid soft nofile 1024 
grid hard nofile 65536 
grid soft stack 10240

二 、 创建共享磁盘、这里我用的iscsi 来做共享,步骤如下

类别 IP 主机名
iscsi服务端 192.168.169.30 iscsi-server
iscsi 客户端 192.168.169.10 rac1
iscsi 客户端 192.168.169.20 rac2

服务端的操作

1. 服务端必须要添加三块盘作为共享盘

[root@iscsi-server ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    5G  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    5G  0 part [SWAP]
sdb      8:16   0   10G  0 disk 
sdc      8:32   0    1G  0 disk 
sdd      8:48   0    1G  0 disk 
sr0     11:0    1  4.2G  0 rom  

2. 服务端下载targetd 、targetcli

[root@iscsi-server ~]# yum install targetd targetcli -y

3. 启动服务,并设置开机自启动

[root@iscsi-server ~]# systemctl start targetd
[root@iscsi-server ~]# systemctl enable targetd

4.用targetcli 来管理

[root@iscsi-server ~]# targetcli
/> cd backstores/block 
/backstores/block> create disk0 /dev/sdb        //加入这三块磁盘
/backstores/block> create disk1 /dev/sdc
/backstores/block> create disk2 /dev/sdd
/backstores/block> cd /iscsi      
/iscsi> create       //创建target名称,配置共享资源
/iscsi> cd iqn.2003-01.org.linux-iscsi.....
/iscsi/iqn.20....a1281bc5b561> cd tpg1/luns 
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk0
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk1
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk2
/iscsi/iqn.20...561/tpg1/luns> cd ../acls 
/iscsi/iqn.20...561/tpg1/acls> create iqn.2003-01.org.
  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值