数据库管理-第334期 Oracle Database 23ai测试版RAC部署文档(20250607)

发布于:2025-06-10 ⋅ 阅读:(21) ⋅ 点赞:(0)

数据库管理-第334期 Oracle Database 23ai测试版RAC部署文档(20240607)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

3498ff20bcec87e9052f961f06737f3.png
本期带来Oracle Database 23ai测试版RAC集群部署,使用数据库版本是23.8。

1 环境与安装介质

image.png
db01和db02共配置5个网卡,2个用于公网(bond mode1),2个用于私网(Grid中配置双活),1张用于连接存储服务器。

这里需要说明的一点是,从23ai开始,多张私网不再允许如之前版本一样,共用同一个子网网段,每张网卡需要使用不同的网段

storage进配置1个网卡用于提供存储服务。
安装介质如下:

db_home.zip
grid_home.zip

2 操作标准系统配置

2.1 关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service

2.2 关闭SELinux

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
[reboot]

2.3 关闭avahi-daemon

systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon

2.4 时间同步配置

在生产环境中可以使用NTP或chrony实现时间同步。
本次由于使用公网时间同步,相关配置省略。

3 存储服务器配置

操作系统直接配置iscsi实现模拟存储。

3.1 配置本地yum源

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

3.2 安装targetcli

dnf -y install targetcli

3.3 配置磁盘

本机挂载了6块30GB的磁盘做软raid5作为共享磁盘。
image.png

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

image.png
image.png

3.4 配置iscsi

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

image.png

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

image.png

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

image.png

# 创建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

image.png

# 退出保存配置
exit

image.png

# 修改启动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

image.png

4 数据库服务器配置

4.1 配置网卡

以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

image.png

2.4 配置tmpfs

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

image.png

2.5 配置hosts文件

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

2.6 预安装软件及用户配置

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

2.7 透明大页内存检查

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

image.png

2.8 配置环境变量

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。

2.9 处理磁盘

挂载磁盘

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

image.png
根据磁盘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

image.png

2.10 配置软件安装目录

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

3 安装GRID

解压软件并开始安装

xhost +
mv grid_home.zip /u01/app/23.0.0/grid/
su - grid
cd $ORACLE_HOME
unzip grid_home.zip
./gridSetup.sh

image.png
image.png
配置集群名称和SCAN
image.png
添加节点并配置SSH互信
image.png
image.png
image.png
image.png
image.png
配置网络
image.png
按需选择(是否开启独立磁盘组自动备份OCR信息)
image.png
配置OCR磁盘组(调整磁盘搜索路径,按需选择其他选项)
image.png
配置OCR备份磁盘组
image.png
配置ASM实例用户密码
image.png
按需配置自我纠正
image.png
按需配置IPMI
image.png
按需注册EMCC
image.png
配置用户组
image.png
配置BASE目录
image.png
配置指针目录
image.png
按需配置root脚本自动执行
image.png
处理检查(忽略报错)
image.png

dnf search compat-openssl10

image.png
开始安装
image.png
image.png
允许root脚本自动执行
image.png
完成安装(跳过报错)
image.png
image.png
image.png
image.png
附加操作
在完成Grid安装后,建议检查一下asmnetwork配置:

srvctl config asmnetwork

image.png
然后进行一下配置操作:

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

image.png

4 创建ASM磁盘组

asmca

image.png
image.png
image.png
image.png

5 安装DB软件

mv db_home.zip /u01/app/oracle/product/23.0.0/dbhome_1
su - oracle
cd $ORACLE_HOME
unzip db_home.zip
./runInstaller

仅安装软件
image.png
安装集群数据库
image.png
配置SSH互信
image.png
安装企业版
image.png
确认安装信息
image.png
配置用户组
image.png
按需配置root脚本自动执行
image.png
处理检查(忽略报错)
image.png
开始安装
image.png
image.png
允许root脚本自动执行
image.png
完成安装
image.png

6 创建数据库

创建数据库前建议执行:

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,与操作系统共享磁盘属组一致

image.png

dbca

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

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

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

7 验证

image.png

总结

Oracle Database 23ai RAC部署过程中还是遇到了许多问题,应该是一些变化,比如Grid磁盘属组权限原来是asmadmin,现在需要asmdba,这也算是踩坑了。
老规矩知道写了些啥。