RAC理论基础
在RAC术语中,主机通常叫做“节点”。
每个主机的硬件配置应该一样:
- 每个主机至少需要两块网卡,一个用于集群内部私有通信—Private NIC,另一个网卡用于对外提供服务,如提供用户数据查询—公共网卡(Public NIC);
- 每个主机还要有一个HBA卡,通过光纤连接到存储设备
- 除公共和私有IP,每个节点还有VIP(Virtual IP),宕机时使用
共享存储 - 多实例,单一数据 架构
- 所有节点共享一个数据库
- 数据文件、联机日志、参数文件、控制文件必须存放在共享存储上
- 保证每个节点都能访问这个存储设备
安装步骤
服务器准备
- 操作系统及补丁包
要求:OEL 使用 ASMlib、其他Linux使用udev内存:2G以上、SWAP 4G 、硬盘 30G以上
- 创建所需组、用户和软件home目录
oracle - oinstall dba
grid - asmadmin - 若部署GNS,需提前设置
- 设置存储空间
安装Oracle Grid Infrastructure
- 包括Oracle Clusterware和Oracle ASM
11gR2 整合了Clusterware
ASM安装是个重点
如使用OEL系统,自带asmlib但还是要安装asm-support(系统光盘中有)
如使用非OEL系统,有两种解决方案:
- 安装对应内核的asmlib和asm-support,一般只适合较老版本Linux(Oracle对非自家Linux不提供支持,oracleasm最新支持到oracleasm-2.6.18-238.9.1.el5)
- 使用linux自带设备管理器udev,其中又有两种情形:
2.1 6.0版本以前的可以用scsi_id -g -u -s
1.确认在所有RAC节点上已经安装了必要的UDEV包
1 | [root@rh2 ~]# rpm -qa|grep udev |
2.通过scsi_id获取设备的块设备的唯一标识名,假设系统上已有LUN sdc-sdp
1 | for i in c d e f g h i j k l m n o p ; |
sdc 1IET_00010001
sdd 1IET_00010002
sde 1IET_00010003
sdf 1IET_00010004
sdg 1IET_00010005
sdh 1IET_00010006
sdi 1IET_00010007
sdj 1IET_00010008
sdk 1IET_00010009
sdl 1IET_0001000a
sdm 1IET_0001000b
sdn 1IET_0001000c
sdo 1IET_0001000d
sdp 1IET_0001000e
以上列出于块设备名对应的唯一标识名
3.创建必要的UDEV配置文件,
首先切换到配置文件目录
1 | [root@rh2 ~]# cd /etc/udev/rules.d |
定义必要的规则配置文件
1 | [root@rh2 rules.d]# touch 99-oracle-asmdevices.rules |
Result 为/sbin/scsi_id -g -u -s %p的输出–Match the returned string of the last PROGRAM call. This key may be
used in any following rule after a PROGRAM call.
按顺序填入刚才获取的唯一标识名即可
OWNER为安装Grid Infrastructure的用户,在11gr2中一般为grid,GROUP为asmadmin
MODE采用0660即可
NAME为UDEV映射后的设备名,
建议为OCR和VOTE DISK创建独立的DISKGROUP,为了容易区分将该DISKGROUP专用的设备命名为ocr1..ocrn的形式
其余磁盘可以根据其实际用途或磁盘组名来命名
- 将该规则文件拷贝到其他节点上
1
[root@rh2 rules.d]# scp 99-oracle-asmdevices.rules Other_node:/etc/udev/rules.d
5.在所有节点上启动udev服务,或者重启服务器即可
1 | [root@rh2 rules.d]# /sbin/udevcontrol reload_rules |
6.检查设备是否到位
1 | [root@rh2 rules.d]# cd /dev |
2.2 6.0版本以后的-g失效,需使用
1.
1 | 首先确认是 Linux 6.0以上版本 |
2.
1 | 添加记录到/etc/scsi_id.config |
-
1
2
3
4
5
6
7
8
9
10
11确认哪些块设备需要udev绑定
[root@vrh6 dev]# ls -l sd*
brw-rw----. 1 root disk 8, 0 Jun 30 09:29 sda
brw-rw----. 1 root disk 8, 1 Jun 30 09:29 sda1
brw-rw----. 1 root disk 8, 2 Jun 30 09:29 sda2
brw-rw----. 1 root disk 8, 16 Jun 30 09:29 sdb
brw-rw----. 1 root disk 8, 32 Jun 30 09:29 sdc
brw-rw----. 1 root disk 8, 48 Jun 30 09:29 sdd
brw-rw----. 1 root disk 8, 64 Jun 30 09:29 sde
brw-rw----. 1 root disk 8, 80 Jun 30 09:29 sdf
例如在本实例中 sdb-> sdf的块设备需要绑定
- 将 b->f的编号放入for 循环中,例如:
1
2
3
4
5AUTO UDEV RULE BY Maclean Liu 2012/06/30
for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
就会生成sdb->sdf 设备绑定的RULE,在将这些RULE写入到/etc/udev/rules.d/99-oracle-asmdevices.rules中
也可以直接利用以下脚本 ,写出RULE到99-oracle-asmdevices.rules
1 | AUTO UDEV RULE BY Maclean Liu 2012/06/30 |
- 之后运行用root运行/sbin/start_udev 即可
注:
使用vmware,需要在主机vmx文件中加入: disk.EnableUUID = “TRUE”,否则UUID出不来
安装Oracle RAC
学会使用集群验证实用程序(CVU)
未完。