一觉醒来,北京已经下雪了,早早起来整理正在实施的一套RAC的实施文档,细心一算,这10年的职业生涯,Oracle的RAC部署已经完成了第150套,感慨颇深,因为热爱,所以一直想把技术深耕下去。接下来就将RAC部署中核心的共享存储配置方式分享给大家…

150套RAC实施达成!我把共存储存配置刷通过了-LMLPHP

Oracle RAC是Oracle的集群版本,从现在流行的观点去理解,可以认为是一个基于共享存储的多租户/多写集群。RAC环境搭建需要配置共享存储,那么不同的操作系统在生产环境怎么实现呢?

150套RAC实施达成!我把共存储存配置刷通过了-LMLPHP

1.HP-UX配置

从HP-UX11.3开始引入了永久设备文件名/dev/rdisk/disk*,同时也兼容旧版本的/dev/rdsk/ctd的模式。由于ctd的设备文件名会随着存储链路的变化而更改,并且新引入的永久设备文件名还具有多链路聚合功能,所以我们一般使用新引入的永久设备文件

1.检查永久设备文件名跟设备路径的对应关系
ioscan -m lun
diskinfo /dev/rdisk/diskxxx

2.修改裸设备权限
chown grid:asmadmin /dev/rdisk/disk49

3.两边盘符不一致情况
RAC的2个节点,可使用软连接实现两边盘符的的对应关系保持一致
ln -s /dev/rdisk/diskx /ShareDisk/asm_lunl

150套RAC实施达成!我把共存储存配置刷通过了-LMLPHP

2.AIX系统配置

IBM的AIX作为稳定性佳、可靠性高、性能卓越的操作系统,自然也是大家的首选之一,那么AIX系统怎么配置共享存储呢?

1.查看磁盘号
lscfg |grep hd
查看磁盘的主号和次号: ls -l /dev |grep hd

2.创建别名
mknod /dev/ocr_disk c 4 2
--c表示字符设备 4表示主号 2表示次号

mknod /dev/ocr_disk c 25 4
mknod /dev/vote_disk c 25 6
mknod /dev/asm_disk1 c 25 5
mknod /dev/asm_disk2 c 25 7

3.修改磁盘用户和权限
chown oracle:oinstall /dev/ocr_disk
chown oracle:oinstall /dev/vote_disk
chown oracle:oinstall /dev/asm_disk1

4.清空磁盘内容
--安装前最好清理下磁盘内容
dd if=/dev/zero of=/dev/ocr_disk bs=8192 count=25000 &

3.Solaris系统配置

Solaris是一种基于Unix操作系统的操作系统,由Sun Microsystems(现为Oracle公司)开发。那么Solaris系统怎么配置共享存储呢?

1.首先在存储上划分vdisk
NSF11RAC_DATA01
NSF11RAC_DATA02

2.在两个节点上扫盘,并对硬盘进行format
磁盘分区只需要在一个节点做即可,这里针对一个磁盘分区进行说明,
其他磁盘分区与其配置方法一致,使用format命令进行分区
format> partition
format> disk

3.修改磁盘用户组、所属组、以及权限
--要确保每一个共享盘的用户组为 grid:asmadmin 权限为660
cd scsi_vhci
ls –ltr
chmod -R 660 disk@g60060e80122e7f0050402e7f000000*

150套RAC实施达成!我把共存储存配置刷通过了-LMLPHP

4.RHEL/Centos配置

一般在多RHEL/Centos操作系统,我们采用经典的链路+UDEV方式,配置方式如下

4.1 安装multipath

若没有安装则执行以下命令安装:
yum install -y device-mapper*

4.2 生成配置文件

mpathconf --enable --with_multipathd y

查看scsi_id
[root@racdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc

cat <<EOF>> /etc/multipath.conf
blacklist {
  devnode "^sda"
}

multipaths {
  multipath {
  wwid "36000c29f7e6ca7c54bd3ad4d2a2b8939"
  alias asm_ocr01
  }
  multipath {
  wwid "36000c2970b50cdffdc8e547c8a87938d"
  alias asm_ocr02
  }
  multipath {
  wwid "36000c292f6145f1679dcb64d20c7499e"
  alias asm_ocr03
  }
  multipath {
  wwid "36000c29c6f447f602411b8adabfe82a9"
  alias asm_data01
  }  
  multipath {
  wwid "36000c29937fecda3c66ce8a02e9a9d9d"
  alias asm_data02
  }
  multipath {
  wwid "36000c29541e4d4e620c8326c45b51dd4"
  alias asm_arch01
  }
}
EOF

4.3 激活multipath多路径

删除现有路径:multipath -F
格式化路径  :multipath -v2
查看多路径:multipath -ll
--查看状态
systemctl status multipathd.service
--开机自启动服务
systemctl enable multipathd.service

4.4 配置 UDEV

注意:2个节点均执行,root用户
[root@racdb1 ~]# cd /dev/mapper
for i in asm_*; do
  printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
  dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
  disk_name=$(echo "$line" | awk '{print $1}')
  echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done < /dev/mapper/udev_info

udevadm control --reload-rules
udevadm trigger --type=devices

150套RAC实施达成!我把共存储存配置刷通过了-LMLPHP

总结

在Oracle RAC中,一些常见的概念包括数据库实例、共享存储、负载均衡、故障转移和并行处理。这些概念共同构成了Oracle RAC的核心特性,确保了集群系统的高效运行和稳定性。

那么希望本次的Oracle共享存储配置帮助到大家,下次继续分享!

12-14 16:48