作者:胖头鱼的鱼缸(尹海文) Oracle ACE Pro: Database PostgreSQL ACE Partner 10年数据库行业经验 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP,ITPUB认证专家 圈内拥有“总监”称号,非著 名社恐(社交恐怖分子) 公众号:胖头鱼的鱼缸 CSDN:胖头鱼的鱼缸(尹海文) 墨天轮:胖头鱼的鱼缸 ITPUB:yhw1809。 除授权转载并标明出处外,均为“非法”抄袭
本期带来Oracle Database 23ai测试版RAC集群部署,使用数据库版本是23.8。
db01和db02共配置5个网卡,2个用于公网(bond mode1),2个用于私网(Grid中配置双活),1张用于连接存储服务器。
这里需要说明的一点是,从23ai开始,多张私网不再允许如之前版本一样,共用同一个子网网段,每张网卡需要使用不同的网段
storage进配置1个网卡用于提供存储服务。
安装介质如下:
db_home.zip grid_home.zip
systemctl stop firewalld.service systemctl disable firewalld.service
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config setenforce 0 [reboot]
systemctl stop avahi-daemon.socket systemctl stop avahi-daemon systemctl disable avahi-daemon.socket systemctl disable avahi-daemon
在生产环境中可以使用NTP或chrony实现时间同步。
本次由于使用公网时间同步,相关配置省略。
操作系统直接配置iscsi实现模拟存储。
mkdir /iso mount -r /dev/sr0 /iso rm -rf /etc/yum.repo.d/* cat > /etc/yum.repos.d/iso.repo <<EOF [AppStream] name=AppStream baseurl=file:///iso/AppStream gpgcheck=0 enabled=1 [BaseOS] name=BaseOS baseurl=file:///iso/BaseOS gpgcheck=0 enabled=1 EOF
dnf -y install targetcli
本机挂载了6块30GB的磁盘做软raid5作为共享磁盘。

mdadm --create /dev/md1 --level=5 --raid-devices=5 --spare-device=1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7 pvcreate /dev/md1 vgcreate datavg /dev/md1 lvcreate -L 10G -n data01 datavg lvcreate -L 10G -n data02 datavg lvcreate -L 10G -n data03 datavg lvcreate -L 10G -n data04 datavg lvcreate -L 10G -n data05 datavg lvcreate -L 10G -n data06 datavg lvcreate -L 10G -n data07 datavg lvcreate -L 10G -n data08 datavg lvcreate -L 10G -n data09 datavg lvcreate -L 10G -n data10 datavg lvcreate -L 10G -n data11 datavg

targetcli #进入iscsi配置命令行 # 创建映射磁盘 cd /backstores/block create data01 /dev/mapper/datavg-data01 create data02 /dev/mapper/datavg-data02 create data03 /dev/mapper/datavg-data03 create data04 /dev/mapper/datavg-data04 create data05 /dev/mapper/datavg-data05 create data06 /dev/mapper/datavg-data06 create data07 /dev/mapper/datavg-data07 create data08 /dev/mapper/datavg-data08 create data09 /dev/mapper/datavg-data09 create data10 /dev/mapper/datavg-data10 create data11 /dev/mapper/datavg-data11

# 创建iqn标签 cd /iscsi create iqn.2025-06.com.iscsi.www:server

# 创建acl cd iqn.2025-06.com.iscsi.www:server/tpg1/acls create iqn.2025-06.com.iscsi.www:client

# 创建lun cd /iscsi/iqn.2025-06.com.iscsi.www:server/tpg1/luns create /backstores/block/data01 create /backstores/block/data02 create /backstores/block/data03 create /backstores/block/data04 create /backstores/block/data05 create /backstores/block/data06 create /backstores/block/data07 create /backstores/block/data08 create /backstores/block/data09 create /backstores/block/data10 create /backstores/block/data11

# 退出保存配置 exit

# 修改启动iqn cat > /etc/iscsi/initiatorname.iscsi <<EOF InitiatorName=iqn.2025-06.com.iscsi.www:client EOF # 启动iscsi并配置开机启动systemctl restart iscsi systemctl restart iscsid systemctl start target.service systemctl enable target.service

以db01为例,db02配置相同(已在操作系统安装过程中配置,下面仅是配置参考):
cat> /etc/sysconfig/network-scripts/ifcfg-bondeth0 <<EOF BONDING_OPTS="downdelay=2000 miimon=1000 mode=active-backup updelay=5000" TYPE=Bond BONDING_MASTER=yes PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=10.10.10.231 PREFIX=24 GATEWAY=10.10.10.2 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=bondeth0 DEVICE=bondeth0 ONBOOT=yes EOF cat> /etc/sysconfig/network-scripts/ifcfg-ens160 <<EOF TYPE=Ethernet BOOTPROTO=none IPV6INIT=no NAME=ens160 DEVICE=ens160 ONBOOT=yes MASTER=bondeth0 SLAVE=yes EOF cat> /etc/sysconfig/network-scripts/ifcfg-ens192 <<EOF TYPE=Ethernet BOOTPROTO=none IPV6INIT=no NAME=ens192 DEVICE=ens192 ONBOOT=yes MASTER=bondeth0 SLAVE=yes EOF systemctl restart network

head -1 /proc/meminfo #获取内存大小 echo "tmpfs /dev/shm tmpfs defaults,size=内存大小 0 0" >>/etc/fstab systemctl daemon-reload mount -o remount /dev/shm/

cat >> /etc/hosts <<EOF ###HOSTIP### 10.10.10.231 db01 10.10.10.232 db02 ###VIP### 10.10.10.233 db01-vip 10.10.10.234 db02-vip ###SCANIP### 10.10.10.235 db-scan ###PRIVATRIP### 20.20.20.231 db01-priv1 20.20.20.232 db02-priv1 20.20.21.231 db01-priv2 20.20.21.232 db02-priv2 ###STORAGE### 30.30.30.230 storage 30.30.30.231 db01-san 30.30.30.232 db02-san EOF
dnf -y install oracle-database-preinstall-23ai.x86_64 groupadd -g 54331 asmadmin groupadd -g 54332 asmdba groupadd -g 54333 asmoper useradd -u 54322 -g oinstall -G oinstall,dba,asmadmin,asmdba,asmoper grid usermod -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba,asmdba oracle echo "oracle" | passwd --stdin grid echo "oracle" | passwd --stdin oracle cp /etc/security/limits.d/oracle-database-preinstall-23ai.conf /etc/security/limits.d/grid.conf sed -i "s/oracle/grid/g" /etc/security/limits.d/grid.conf
cat /sys/kernel/mm/transparent_hugepage/enabled #如果上面返回结果不是never则需要进行以下配置 cat >>/etc/rc.d/rc.local <<EOF if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi EOF chmod +x /etc/rc.d/rc.local reboot

grid用户下,编辑.bash_profile,添加以下内容:
export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/23.0.0/grid export ORACLE_SID=+ASM1 export PATH=$ORACLE_HOME/bin:$PATH export DISPLAY=:0
oracle用户下,编辑.bash_profile,添加以下内容:
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1 export ORACLE_SID=racdb1 export PATH=$ORACLE_HOME/bin:$PATH export DISPLAY=:0
上述配置需根据节点配置ORACLE_SID。
挂载磁盘
cat > /etc/iscsi/initiatorname.iscsi <<EOF InitiatorName=iqn.2025-06.com.iscsi.www:client EOF iscsiadm -m discovery -t st -p storage iscsiadm -m node -L all
根据磁盘ID,使用udev绑定磁盘(生产环境中应当根据实际情况配置multipath),编辑/etc/udev/rules.d/99-oracleasm.rules
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405fdd800759b3e4a67a515fa418",SYMLINK+="asmdisk01",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405986348a326f046c2b64858ff6",SYMLINK+="asmdisk02",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="360014052524a367aa5e472fb42a83e2a",SYMLINK+="asmdisk03",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="360014055db3840aa56a466cb8372e3d1",SYMLINK+="asmdisk04",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="360014051581162963da4b94a00ca9f37",SYMLINK+="asmdisk05",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405df4dd9c43c7f4f0ea3bc2dddf",SYMLINK+="asmdisk06",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="3600140540d6b2542ba74f9dbdc5cbb64",SYMLINK+="asmdisk07",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405c3a1dddb58914e3583108393f",SYMLINK+="asmdisk08",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405a1265f0b2c984d62a94142699",SYMLINK+="asmdisk09",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405c824d88d399a4b0295281dc26",SYMLINK+="asmdisk10",OWNER="grid",GROUP="asmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{DEVTYPE}=="disk",ENV{ID_SERIAL}=="36001405785ad93e0b1e48e881dac60a5",SYMLINK+="asmdisk11",OWNER="grid",GROUP="asmdba",MODE="0660"
udev处理
udevadm trigger --action=change

mkdir /u01/app/23.0.0/grid -p mkdir /u01/app/grid -p mkdir /u01/app/oracle/product/23.0.0/dbhome_1 -p chown grid:oinstall /u01 -R chown oracle:oinstall /u01/app/oracle -R
解压软件并开始安装
xhost + mv grid_home.zip /u01/app/23.0.0/grid/ su - grid cd $ORACLE_HOME unzip grid_home.zip ./gridSetup.sh
配置集群名称和SCAN
添加节点并配置SSH互信
配置网络
按需选择(是否开启独立磁盘组自动备份OCR信息)
配置OCR磁盘组(调整磁盘搜索路径,按需选择其他选项)
配置OCR备份磁盘组
配置ASM实例用户密码
按需配置自我纠正
按需配置IPMI
按需注册EMCC
配置用户组
配置BASE目录
配置指针目录
按需配置root脚本自动执行
处理检查(忽略报错)

dnf search compat-openssl10
开始安装
允许root脚本自动执行
完成安装(跳过报错)
附加操作
在完成Grid安装后,建议检查一下asmnetwork配置:
srvctl config asmnetwork
然后进行一下配置操作:
su -export ORACLE_HOME=/u01/app/23.0.0/grid /u01/app/23.0.0/grid/bin/srvctl modify asmnetwork -netnum 1 -subnet 20.20.20.0/255.255.255.0/ens224 /u01/app/23.0.0/grid/bin/srvctl modify asmnetwork -netnum 2 -subnet 20.20.21.0/255.255.255.0/ens256

asmca

mv db_home.zip /u01/app/oracle/product/23.0.0/dbhome_1 su - oraclecd $ORACLE_HOMEunzip db_home.zip ./runInstaller
仅安装软件
安装集群数据库
配置SSH互信
安装企业版
确认安装信息
配置用户组
按需配置root脚本自动执行
处理检查(忽略报错)
开始安装
允许root脚本自动执行
完成安装

创建数据库前建议执行:
su - root /u01/app/23.0.0/grid/bin/setasmgidwrap -o /u01/app/oracle/product/23.0.0/dbhome_1/bin/oracle # 确保/u01/app/oracle/product/23.0.0/dbhome_1/bin/oracle的属组是asmdba,与操作系统共享磁盘属组一致

dbca
创建数据库
高级安装
选择数据库类型与模板

选择节点
配置数据库信息
配置数据存放位置
配置快速恢复区和归档
按需配置安全相关配置
配置数据库参数

按需配置CVU和注册EMCC
配置密码
选择创建数据库
处理检查(忽略报错)
开始安装
完成安装


Oracle Database 23ai RAC部署过程中还是遇到了许多问题,应该是一些变化,比如Grid磁盘属组权限原来是asmadmin,现在需要asmdba,这也算是踩坑了。
老规矩知道写了些啥。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31466763/viewspace-3086956/ ,如需转载,请注明出处,否则将追究法律责任。