数据库管理334期 2024-06-07
- 数据库管理-第334期 Oracle Database 23ai测试版RAC部署文档(20240607)
- 1 环境与安装介质
- 2 操作标准系统配置
- 2.1 关闭防火墙
- 2.2 关闭SELinux
- 2.3 关闭avahi-daemon
- 2.4 时间同步配置
- 3 存储服务器配置
- 3.1 配置本地yum源
- 3.2 安装targetcli
- 3.3 配置磁盘
- 3.4 配置iscsi
- 4 数据库服务器配置
- 4.1 配置网卡
- 2.4 配置tmpfs
- 2.5 配置hosts文件
- 2.6 预安装软件及用户配置
- 2.7 透明大页内存检查
- 2.8 配置环境变量
- 2.9 处理磁盘
- 2.10 配置软件安装目录
- 3 安装GRID
- 4 创建ASM磁盘组
- 5 安装DB软件
- 6 创建数据库
- 7 验证
- 总结
数据库管理-第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。
除授权转载并标明出处外,均为“非法”抄袭
本期带来Oracle Database 23ai测试版RAC集群部署,使用数据库版本是23.8。
1 环境与安装介质
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作为共享磁盘。
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
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
# 创建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
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=110.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
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/
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
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
根据磁盘ID,使用udev绑定磁盘(生产环境中应当根据实际情况配置multipa),编辑/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
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
配置集群名称和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
4 创建ASM磁盘组
asmca
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
仅安装软件
安装集群数据库
配置SSH互信
安装企业版
确认安装信息
配置用户组
按需配置root脚本自动执行
处理检查(忽略报错)
开始安装
允许root脚本自动执行
完成安装
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,与操作系统共享磁盘属组一致
dbca
创建数据库
高级安装
选择数据库类型与模板
选择节点
配置数据库信息
配置数据存放位置
配置快速恢复区和归档
按需配置安全相关配置
配置数据库参数
按需配置CVU和注册EMCC
配置密码
选择创建数据库
处理检查(忽略报错)
开始安装
完成安装
7 验证
总结
Oracle Database 23ai RAC部署过程中还是遇到了许多问题,应该是一些变化,比如Grid磁盘属组权限原来是asmadmin,现在需要asmdba,这也算是踩坑了。
老规矩知道写了些啥。