📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,15年DBA工作经验
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝15万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理
文章目录
- 一、安裝前准备
-
- [1.1 软件下载](#1.1 软件下载)
-
- [1.1.1 26ai RAC地址](#1.1.1 26ai RAC地址)
- [1.1.2 OEL9.7地址](#1.1.2 OEL9.7地址)
- [1.2 网络规划](#1.2 网络规划)
- [1.3 ASM磁盘组规划](#1.3 ASM磁盘组规划)
- 二、用户及网络
-
- [2.1 新建用户和组](#2.1 新建用户和组)
- [2.2 创建目录](#2.2 创建目录)
- [2.3 环境变量](#2.3 环境变量)
-
- [2.3.1 Grid用户](#2.3.1 Grid用户)
- [2.3.2 Oracle用户](#2.3.2 Oracle用户)
- [2.3.3 root用户](#2.3.3 root用户)
- [2.4 hosts文件及网卡](#2.4 hosts文件及网卡)
-
- [2.4.1 hosts 配置](#2.4.1 hosts 配置)
- 三、共享存储配置
-
- [3.1 新建存储文件](#3.1 新建存储文件)
- [3.2 配置虚拟机](#3.2 配置虚拟机)
- [3.3 操作系统磁盘规划](#3.3 操作系统磁盘规划)
- 四、多链路配置
-
- [4.1 配置 yum本地源](#4.1 配置 yum本地源)
- [4.2 配置多路径](#4.2 配置多路径)
-
- [4.2.1 安装multipath](#4.2.1 安装multipath)
- [4.2.2 生成配置文件](#4.2.2 生成配置文件)
- [4.2.3 激活multipath多路径](#4.2.3 激活multipath多路径)
- [4.2.4 查看状态](#4.2.4 查看状态)
- [4.2.5 开机自启动服务](#4.2.5 开机自启动服务)
- [4.3 配置 UDEV](#4.3 配置 UDEV)
- 五、操作系统配置
-
- [5.1 操作系统](#5.1 操作系统)
- [5.2 内存](#5.2 内存)
- [5.3 swap](#5.3 swap)
- [5.4 安装依赖包](#5.4 安装依赖包)
- [5.5 关闭防火墙](#5.5 关闭防火墙)
- [5.6 关闭linux安全](#5.6 关闭linux安全)
- [5.7 chrony配置](#5.7 chrony配置)
- [5.8 修改login](#5.8 修改login)
- [5.9 修改limits.conf](#5.9 修改limits.conf)
- [5.10 修改内核参数](#5.10 修改内核参数)
- [5.11 停止avahi-daemon服务](#5.11 停止avahi-daemon服务)
- [5.12 /etc/profile配置](#5.12 /etc/profile配置)
- 六、Grid集群软件安装
-
- [6.1 上传软件包](#6.1 上传软件包)
- [6.2 解压grid安装包](#6.2 解压grid安装包)
- [6.3 安装cvuqdisk](#6.3 安装cvuqdisk)
- [6.4 互信配置](#6.4 互信配置)
- [6.5 GI配置预检查](#6.5 GI配置预检查)
- [6.6 执行安装](#6.6 执行安装)
- [6.7 挂载ASM盘](#6.7 挂载ASM盘)
- [七、Oracle DataBase软件安装](#七、Oracle DataBase软件安装)
-
- [7.1 解压](#7.1 解压)
- [7.2 解压安装](#7.2 解压安装)
- 八、DBCA创建实例
- 九、RAC启停
-
- [9.1 关闭](#9.1 关闭)
- [9.2 启动](#9.2 启动)
一、安裝前准备
OS版本:Oracle Linux Server release 9.7
内存:至少8G
1.1 软件下载
1.1.1 26ai RAC地址
https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html

1.1.2 OEL9.7地址
https://yum.oracle.com/oracle-linux-isos.html

1.2 网络规划

1.3 ASM磁盘组规划

二、用户及网络
2.1 新建用户和组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba
useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -u 10000 oracle
useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba -u 10001 grid
echo "oracle" | passwd --stdin oracle
echo "grid" | passwd --stdin grid
2.2 创建目录
mkdir -p /u01/app/23.26.1/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/23.26.1/dbhome_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
2.3 环境变量
2.3.1 Grid用户
cat >> /home/grid/.bash_profile << "EOF"
umask 022
export LANG=en_US
export ORACLE_SID=+ASM1
export ORACLE_TERM=xterm
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/23.26.1/grid
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
EOF
source /home/grid/.bash_profile
2.3.2 Oracle用户
cat >> /home/oracle/.bash_profile << "EOF"
export LANG=en_US
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23.26.1/dbhome_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=PROD1
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
EOF
source /home/oracle/.bash_profile
2.3.3 root用户
vi .bash_profile
export ORACLE_HOME=/u01/app/23.26.1/grid
export PATH=$PATH:$ORACLE_HOME/bin
2.4 hosts文件及网卡
2.4.1 hosts 配置
--root用户下,2个节点均操作
cp /etc/hosts /etc/hosts_date +"%Y%m%d_%H%M%S"
echo '#public ip
192.168.2.20 srv01
192.168.2.21 srv02
#private ip
10.10.0.1 srv01-priv
10.10.0.2 srv02-priv
#vip
192.168.2.22 srv01-vip
192.168.2.23 srv02-vip
#scanip
192.168.2.24 srv-racscan'>> /etc/hosts
hostnamectl set-hostname srv01
hostnamectl set-hostname srv02
三、共享存储配置
3.1 新建存储文件
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-ocr01.vmdk"
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-ocr02.vmdk"
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-ocr03.vmdk"
vmware-vdiskmanager.exe -c -s 20GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-data01.vmdk"
vmware-vdiskmanager.exe -c -s 20GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-data02.vmdk"
vmware-vdiskmanager.exe -c -s 20GB -a lsilogic -t 2 "E:\VMware_File\Sharedisk26ai\share-arch01.vmdk"
3.2 配置虚拟机
找到虚拟机的配置文件.vmx,加入以下内容
#shared disks configure
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "E:\VMware_File\Sharedisk26ai\share-ocr01.vmdk"
scsi1:0.redo = ""
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "E:\VMware_File\Sharedisk26ai\share-ocr02.vmdk"
scsi1:1.redo = ""
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "E:\VMware_File\Sharedisk26ai\share-ocr03.vmdk"
scsi1:2.redo = ""
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "E:\VMware_File\Sharedisk26ai\share-data01.vmdk"
scsi1:3.redo = ""
scsi1:4.mode = "independent-persistent"
scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "E:\VMware_File\Sharedisk26ai\share-data02.vmdk"
scsi1:4.redo = ""
scsi1:5.mode = "independent-persistent"
scsi1:5.deviceType = "disk"
scsi1:5.present = "TRUE"
scsi1:5.fileName = "E:\VMware_File\Sharedisk26ai\share-arch01.vmdk"
scsi1:5.redo = ""
3.3 操作系统磁盘规划

四、多链路配置
4.1 配置 yum本地源
mount /dev/cdrom /mnt
echo "[localREPO]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/BaseOS" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
echo "[localREPO_APP]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8_app" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/AppStream" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
yum repolist
4.2 配置多路径
4.2.1 安装multipath
systemctl status multipathd.service

若没有则执行以下命令安装:
yum install -y device-mapper*
4.2.2 生成配置文件
mpathconf --enable --with_multipathd y
以上命令,会生成一个配置文件multipath.conf
cat /etc/multipath.conf
查看scsi_id
[root@srv01 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdb
36000c293e882f001bfdfbd0149b8c1d0
/usr/lib/udev/scsi_id -g -u /dev/sdc
36000c29cfd11459849fa8d2c9f4dc1c9
/usr/lib/udev/scsi_id -g -u /dev/sdd
36000c29685dc13f386419a261dad244d
/usr/lib/udev/scsi_id -g -u /dev/sde
36000c297a502e02ef1cce51a2697da72
/usr/lib/udev/scsi_id -g -u /dev/sdf
36000c299a7b8e711113652b69e7cd3cd
/usr/lib/udev/scsi_id -g -u /dev/sdg
36000c29facc541ce942bd6173e3d1365
cp /etc/multipath.conf /etc/multipath.conf.bak
cat <<EOF>> /etc/multipath.conf
multipaths {
multipath {
wwid "36000c293e882f001bfdfbd0149b8c1d0"
alias asm_ocr01
}
multipath {
wwid "36000c29cfd11459849fa8d2c9f4dc1c9"
alias asm_ocr02
}
multipath {
wwid "36000c297a502e02ef1cce51a2697da72"
alias asm_ocr03
}
multipath {
wwid "36000c29685dc13f386419a261dad244d"
alias asm_data01
}
multipath {
wwid "36000c299a7b8e711113652b69e7cd3cd"
alias asm_data02
}
multipath {
wwid "36000c29facc541ce942bd6173e3d1365"
alias asm_arch01
}
}
EOF
4.2.3 激活multipath多路径
systemctl start multipathd.service

重新加载:multipath -r
查看多路径:multipath -ll

4.2.4 查看状态
systemctl status multipathd.service
4.2.5 开机自启动服务
systemctl enable multipathd.service
root@srv01 \~\]# multipath -v3 \| grep 3600
\[root@srv01 \~\]# mpathconf
### 4.3 配置 UDEV
\[root@srv01 \~\]# cd /dev/mapper
\[root@srv01 mapper\]# ll

注意:2个节点均执行,root用户
\[root@srv01 \~\]# cd /dev/mapper
for i in asm_*; do
printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
disk_name=$(echo "$line" | awk '{print $1}')
echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"${disk_name}\",OWNER=\"grid\",GROUP=\"asmdba\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done < /dev/mapper/udev_info
udevadm control --reload-rules
udevadm trigger --type=devices
ll /dev/dm\*

## 五、操作系统配置
### 5.1 操作系统
\[root@srv01 \~\]# cat /etc/oracle-release
Oracle Linux Server release 9.7
### 5.2 内存
\[root@srv01 \~\]# grep MemTotal /proc/meminfo \| awk '{print $2}'
32398736
### 5.3 swap
\[root@srv01 \~\]# free -h
\[root@srv01 \~\]# grep SwapTotal /proc/meminfo \| awk '{print $2}'
### 5.4 安装依赖包
yum install -y bc binutils compat-openssl11 elfutils-libelf fontconfig glibc glibc-devel glibc-headers ksh libaio libasan liblsan libX11 libXau libXi libXrender libXtst libxcrypt-compat libgcc libibverbs librdmacm libstdc++ libxcb libvirt-libs make policycoreutils policycoreutils-python-utils smartmontools sysstat

### 5.5 关闭防火墙
注意:root用户两个节点均操作
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
### 5.6 关闭linux安全
\[root@srv01 \~\]# vi /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
### 5.7 chrony配置
systemctl status chronyd
yum -y install chrony
vi /etc/chrony.conf
sources 命令显示 chronyd 正在访问的当前时间源的信息。
可以使用可选参数 -v 来包括详细信息。在这种情况下,会输出额外的标头行显示字段含义的信息。
$ chronyc sources

### 5.8 修改login
\[root@srv01 \~\]# cp /etc/pam.d/login /etc/pam.d/login_bak
\[root@srv01 \~\]# echo "session required pam_limits.so" \>\> /etc/pam.d/login
### 5.9 修改limits.conf
cat <