Oracle 23ai RAC安装部署文档
前言
推荐大家安装部署前,详细都看一遍官方文档。本文也是参考官方文档的情况下,写出的。由于有时效性,以官方文档为准。
https://docs.oracle.com/en/database/oracle/oracle-database/23/cwlin/index.html
1、基础环境准备
1.1、适配操作系统
参考官方文档
选用Oracle Linux 8.8
1.2.网络规划
物理IP: 192.168.0.127 192.168.0.128
VIP: 192.168.0.129 192.168.0.130
SCAN IP: 192.168.0.131
心跳IP: 10.0.0.200 10.0.0.201
1.3.硬件配置

内存16GB以上,要配置NTP,因为23ai已经不支持CTSS了。
1.4.虚拟机安装注意点
添加参数disk.EnableUUID = “TRUE”
要新建一个SCSI
共享硬盘的配置如下
1.5.共享磁盘划分
ocr 10GB 存储集群voting disk文件、OCR注册文件
arch 50GB 存储数据库归档日志文件
data 100GB 存储数据库文件、redo日志、undo表空间
1.6.安装包下载
下载地址
https://edelivery.oracle.com/
grid安装包名为 V1043786-01.zip
数据库安装包名为 V1043785-01.zip
2.安装部署前准备
以下操作默认在2个节点上同时操作。
检查主机时区、各个主机网卡名是否一致。
2.1.依赖包安装
备份走其他repo文件
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
加载本地的安装光盘后,配置dnf源(后续用dnf代替yum命令)
mount /dev/cdrom /mnt
vi /etc/yum.repos.d/ol.repo
[local-source]
name=ol
baseurl=file:///mnt/BaseOS/
enabled=1
gpgcheck=0
[local-source1]
name=ol
baseurl=file:///mnt/AppStream/
enabled=1
gpgcheck=0
官网下载 oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm (貌似不下载也能安装,没试过)
dnf install -y oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm
dnf install -y bc binutils compat-openssl10 elfutils-libelf fontconfig glibc glibc-devel ksh libaio libXrender libX11 libXau libXi libXtst libgcc libstdc++ libxcb libibverbs libasan liblsan librdmacm make policycoreutils policycoreutils-python-utils smartmontools sysstat net-tools nscd xterm
2.2.检查虚拟机环境下Clock Source是否配置为tsc
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm
有tsc即可,没有的话运行以下命令
echo "tsc">/sys/devices/system/clocksource/clocksource0/current_clocksource
2.3.取消transparent_hugepage(透明大页)
cat /etc/default/grub
查看GRUB_CMDLINE_LINUX中transparent_hugepage=madvise是否为以上值,不是则更改。修改后重启配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重启生效,检查配置
cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
2.4.启用 Name Service Cache Daemon
为了让 Oracle Clusterware 更好地应对 NAS 设备或 NFS 挂载的网络故障,请启用名称服务缓存守护进程(nscd)。
(本次实验没有涉及,故跳过)
2.5.创建用户与用户组
groupadd -g 54421 oinstall
groupadd -g 54422 dba
useradd -u 54321 -g oinstall -G dba oracle
useradd -u 54322 -g oinstall -G dba grid
mkdir -p /u01/app/23.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/23.0.0/dbhome_1
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
并创建密码(略)
2.6.配置共享存储
本次实验,共享存储使用的是多路径+udev的方式。
检查与安装
dnf install "*device*"
加载并启动multipath模块和服务
modprobe dm_multipath
lsmod |grep dm_multipath
dm_multipath 17724 0
dm_mod 84209 3 dm_multipath,dm_mirror,dm_log
配置自动启动
systemctl enable multipathd.service
检查
systemctl list-unit-files | grep multipathd
multipathd.service enabled
multipathd.socket enabled
配置多路径
cp /usr/share/doc/device-mapper-multipath/multipath.conf /etc/
systemctl start multipathd.service
查看wwid
[root@rac1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c297740a8f5d637f9dab3249339a
[root@rac1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c299b4f556d29627470c5bf0d644
[root@rac1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c294ccd104ecb45c343b747a8ade
配置multipath.conf添加以下部分
blacklist_exceptions {
devnode "sda[a-z]"
}
defaults {
queue_without_daemon no
flush_on_last_del no
no_path_retry queue
max_fds max
path_grouping_policy group_by_prio
features "3 queue_if_no_path pg_init_retries 50"
getuid_callout "/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%n"
path_checker tur
path_selector "round-robin 0"
prio "alua"
failback immediate
rr_weight uniform
rr_min_io_rq 128
user_friendly_names no
}
blacklist {
devnode "^(sda|ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^asm/*" # Here
devnode "ofsctl" # Here
}
multipaths {
multipath {
wwid 36000c297740a8f5d637f9dab3249339a
alias ocr1
}
multipath {
wwid 36000c299b4f556d29627470c5bf0d644
alias arch1
}
multipath {
wwid 36000c294ccd104ecb45c343b747a8ade
alias data1
}
}
配置UDEV,使用udev修改multipath下的文件属性
ENV{DM_NAME}=="ocr1", OWNER:="grid", GROUP:="dba", MODE:="0660", SYMLINK+="iscsi/oraasm-$env{DM_NAME}"
ENV{DM_NAME}=="data1", OWNER:="grid", GROUP:="dba", MODE:="0660", SYMLINK+="iscsi/oraasm-$env{DM_NAME}"
ENV{DM_NAME}=="arch1", OWNER:="grid", GROUP:="dba", MODE:="0660", SYMLINK+="iscsi/oraasm-$env{DM_NAME}"
重启multipath与udev
systemctl restart multipathd.service
/sbin/udevadm trigger --type=devices --action=change
检查权限
[root@rac1 etc]# ls -l /dev/dm-*
brw-rw----. 1 grid dba 252, 3 Sep 12 13:15 /dev/dm-3
brw-rw----. 1 grid dba 252, 4 Sep 12 13:15 /dev/dm-4
brw-rw----. 1 grid dba 252, 5 Sep 12 13:15 /dev/dm-5
[root@rac1 etc]# ls -l /dev/mapper/*
lrwxrwxrwx. 1 root root 7 Sep 12 13:15 /dev/mapper/arch1 -> ../dm-4
lrwxrwxrwx. 1 root root 7 Sep 12 13:15 /dev/mapper/data1 -> ../dm-5
lrwxrwxrwx. 1 root root 7 Sep 12 13:15 /dev/mapper/ocr1 -> ../dm-3
2.7.修改Disk I/O Scheduler on Linux 8 and Later Systems
磁盘 I/O 调度器会对磁盘 I/O 请求进行重新排序、延迟或合并,以实现更高的吞吐量和更低的延迟。
Linux 提供多种磁盘 I/O 调度器,在 Oracle Linux 8 及更高版本、RHEL 8 及更高版本以及 SUSE Linux Enterprise Server 15 及更高版本系统中,包括 mq-deadline、none、kyber 和 bfq。对于 Oracle 自动存储管理(Oracle ASM),您应咨询存储供应商,以确定最合适的 I/O 调度器配置,从而获得最佳性能。
总体而言,Oracle 建议在这些系统上:
对于旋转存储设备(HDD),将 I/O 调度器设置为 mq-deadline;
对于非旋转存储设备(如 SSD 和 NVMe),将 I/O 调度器设置为 none。
以上为官方文档内容,本次实验对性能不要求,就不修改了。
2.8.修改/etc/hosts
vi /etc/hosts
192.168.0.127 rac1
192.168.0.128 rac2
192.168.0.129 rac1-vip
192.168.0.130 rac2-vip
192.168.0.131 rac-scan
10.0.0.200 rac1-priv
10.0.0.201 rac2-priv
2.9.系统文件
以下的配置均以官网给出的为准,可根据相关的BUG进行调整。
vi /etc/security/limits.conf
grid soft nproc 2048
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
vi /etc/sysctl.conf
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.shmall = 4194304
kernel.shmmax = 10307921510
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr=3145728
配置生效
sysctl -p
/etc/pam.d/login添加:
vi /etc/pam.d/login
session required pam_limits.so
/etc/profile添加:
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.10.禁用SELinux与防火墙
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=disabled
systemctl stop firewalld
systemctl disable firewalld
2.11.配置NTP(chrony)服务
Linux 8默认使用chrony作为时钟服务。我这边的实验环境的NTP服务器为192.168.35.252
dnf install chrony
vi /etc/chrony.conf
添加以下2个配置
allow 192.168.0.0/16
server 192.168.35.252 iburst
重启
systemctl restart chronyd
systemctl status chronyd
systemctl enable chronyd
2.12.配置oracle、grid用户的ssh互信
ssh生成公钥/私钥 (oracle、grid用户)
ssh-keygen -t rsa -P ''
输入内容直接按回车
cd ~/.ssh
cat id_rsa.pub
将2个节点id_rsa.pub的内容,复制出来写入到2个节点的authorized_keys文件中
cd ~/.ssh
vi authorized_keys
在2个节点分别测试ssh联通性(oracle、grid用户都要)
ssh 10.1.200.120
提示输入yes
exit
ssh 10.1.200.121
提示输入yes
exit
也可使用 sshUserSetup.sh 进行配置,会更加简单,看个人习惯。
2.13.oracle、grid用户环境变量配置
oracle用户,2个节点上配置:
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orcl1 #节点1的配置
#export ORACLE_SID=orcl2 #节点2的配置
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23.0.0/dbhome_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
grid用户,2个节点上配置:
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1 #节点1的配置
#export ORACLE_SID=+ASM2 #节点2的配置
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=//u01/app/23.0.0/grid
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
3.安装部署
3.1.安装grid
3.1.1.解压
cp V1043786-01.zip /u01/app/23.0.0/grid/
cd /u01/app/23.0.0/grid/
unzip V1043786-01.zip
3.1.2.安装cvuqdisk
用root用户安装
cd /u01/app/23.0.0/grid/cv/rpm/
rpm -iv cvuqdisk-1.0.10-1.rpm
把文件cvuqdisk-1.0.10-1.rpm拷贝到其他节点,同样方法安装
3.1.3.可视化安装
















以下几个问题忽略

运行root.sh的时候会报错: ora-27350
是因为目前Oracle 23ai 的集群仅支持exadata一体机,为了实验为目的,需要修改相应的参数跳过检查。该步骤可以安装前修改。
修改参数(root用户),2个节点都改
cat /u01/app/23.0.0/grid/crs/install/crsconfig_params|grep ASMCA_ARGS
ASMCA_ARGS=
修改为
ASMCA_ARGS=-param "_exadata_feature_on=true"
然后就能运行成功
后面的步骤就比较简单,略过。
3.1.4.创建磁盘组


创建 arch 与 data的磁盘组,步骤略过。结果如下:
3.2.安装oracle数据库
3.2.1.解压
cp V1043785-01.zip /u01/app/oracle/product/23.0.0/dbhome_1
cd /u01/app/oracle/product/23.0.0/dbhome_1
unzip V1043785-01.zip
3.2.2.可视化安装







以下报错略过

3.3.DBCA建库
同样因为要检查是否为exadata一体机的原因,所以这边需要跳过检查。要用以下命令
dbca -createDatabase -initParams "_exadata_feature_on=true"

后面就比较简单了,根据自己的需求进行选择,略过。
更多推荐

所有评论(0)