数据库管理 2023-05-16
- 第七十五期 手把手教你搭19c RAC
- 1 基础环境
- 2 操作系统配置
- 2.1 /etc/hosts
- 2.2 配置系统挂载
- 2.3 配置本地yum源
- 2.4 操作系统配置
- 2.5 安装预安装RPM包并配置:
- 2.6 创建对应目录
- 2.7 配置时间同步
- 3 存储挂载
- 3.1 存储环境
- 3.2 存储识别
- 3.3 多路径聚合
- 3.3 存储权限配置
- 4 GI安装
- 4.1 配置环境变量
- 4.2 开始安装
- 4.3 添加ASM磁盘组
- 5 DB安装
- 5.1 配置环境变量
- 5.2 开始安装
- 6 创建数据库
- 总结
第七十五期 手把手教你搭19c RAC
在这篇文章里面,我将奉上保姆级Oracle 19c RAC搭建攻略,包括操作系统基础配置、存储多路径配置、GI与DB安装、版本升级等。
1 基础环境
这是一套用于我这X9M灾备环境的数据库,包含4台服务器(80C768G),使用OracleLinux 7.9操作系统,(本文的部分内容比如IP是经过脱敏的),具体环境如下:
| 主机名 | HOSTIP | VIP | PRIV1 | PRIV2 |
|---|---|---|---|---|
| sv419 | 10.10.10.16 | 10.10.10.20 | 192.168.1.8 | 192.168.1.9 |
| sv420 | 10.10.10.17 | 10.10.10.21 | 192.168.1.10 | 192.168.1.11 |
| sv421 | 10.10.10.18 | 10.10.10.22 | 192.168.1.12 | 192.168.1.13 |
| sv422 | 10.10.10.19 | 10.10.10.23 | 192.168.1.14 | 192.168.1.14 |
SCANIP为10.10.10.24
这里省去操作系统安装过程及主机名、网卡配置过程,服务器系统盘为两块480G的SSD组件的RAID1,基本分区如下:
| 挂载点 | 大小 |
|---|---|
| /boot | 500M |
| /boot/efi | 500M |
| swap | 16G |
| / | 100G |
| /u01 | 剩余所有空间 |
网卡对应关系如下:
| 用途 | 网卡 | 模式 |
|---|---|---|
| 生产 | eno1, eno2 | bond mode1(bondeth0) |
| 私网 | ens5f0, ens5f1 | 独立运行 |
2 操作系统配置
2.1 /etc/hosts
在/etc/hosts添加以下内容:
### HOSTIP ###
10.10.10.16 sv419
10.10.10.17 sv420
10.10.10.18 sv421
10.10.10.19 sv422
### VIP ###
10.10.10.20 sv419-vip
10.10.10.21 sv420-vip
10.10.10.22 sv421-vip
10.10.10.23 sv422-vip
### SCANIP ###
10.10.10.24 dbdg-scan
### PRIVATEIP ###
192.168.1.8 sv419-priv1
192.168.1.9 sv419-priv2
192.168.1.10 sv420-priv1
192.168.1.11 sv420-priv2
192.168.1.12 sv421-priv1
192.168.1.13 sv421-priv2
192.168.1.14 sv422-priv1
192.168.1.15 sv422-priv2
2.2 配置系统挂载
检查内存大小:

在/etc/fstab添加以下内容:
tmpfs /dev/shm tmpfs defaults,size=791219280k 0 0
/root/OracleLinux-R7-U9-Server-x86_64-dvd.iso /iso iso9660 defaults,ro,loop 0 0 ##用于本地yum源
完成以下操作:
mkdir /iso
mount -a
mount -o remount /dev/shm/
检查:

2.3 配置本地yum源
rm -rf /etc/yum.repo.d/*
创建/etc/yum.repo.d/iso.repo并添加以下内容:
[iso]
name=iso
baseurl=file:///iso
enabled=1
gpgcheck=0
检查:

2.4 操作系统配置
需要关闭防火墙、selinux以及avahi相关服务:
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon
2.5 安装预安装RPM包并配置:
yum -y install oracle-database-preinstall-19c.x86_64
注:Oracle Linux7.5开始预安装包包含全部oracle相关用户组,如不需要可以删除
groupdel backupdba
groupdel dgdba
groupdel kmdba
groupdel racdba
groupadd -g 54324 asmadmin
groupadd -g 54325 asmdba
groupadd -g 54326 asmoper
useradd -u 54322 -g oinstall -G oinstall,dba,asmadmin,asmdba,asmoper grid
usermod -G dba,oper,asmdba oracle
cp /etc/security/limits.d/oracle-database-preinstall-19c.conf /etc/security/limits.d/grid.conf
sed -i "s/oracle/grid/g" /etc/security/limits.d/grid.conf
修改grid与oracle用户密码。
2.6 创建对应目录
mkdir /u01/app/19.0.0/grid -p
mkdir /u01/app/grid -p
mkdir /u01/app/oracle/product/19.0.0/dbhome_1 -p
chown grid:oinstall /u01 -R
chown oracle:oinstall /u01/app/oracle -R
2.7 配置时间同步
修改/etc/chrony.conf以下内容:
#server 0.pool.ntp.org iburst
#server 1.pool.ntp.org iburst
#server 2.pool.ntp.org iburst
#server 3.pool.ntp.org iburst
server ntpserver iburst
启动chrony服务:
systemctl start chronyd
systemctl enable chronyd
检查:

3 存储挂载
3.1 存储环境
本次存储挂载总计约70TB,具体大小与数量如下:
| 大小(GB) | 数量 | 冗余模式 |
|---|---|---|
| 10 | 5 | High |
| 50 | 2 | External |
| 500 | 140 | External |
磁盘组配置如下:
| 磁盘组名称 | 磁盘组可用空间(GB) |
|---|---|
| OCR | 10 |
| MGMT | 100 |
| DATAC1 | 50000 |
| RECOC1 | 20000 |
3.2 存储识别
echo '---' > /sys/class/fc_host/hostN/issue_lip
检查:

3.3 多路径聚合
本次存储使用EMC unity存储,通过两个16Gbps HBA卡进行挂载,每个存储LUN有四条链路,需要使用multipath进行聚合,其中wwid由存储侧直接导出,在/etc/multipath.conf添加以下内容:
defaults {
find_multipaths no
user_friendly_names no
polling_interval 2
no_path_retry 0
failback manual
path_selector "round-robin 0"
path_grouping_policy multibus
}
multipaths {
multipath {
wwid ocr-wwid1
alias ASMDISKC01
}
multipath {
wwid ocr-wwid2
alias ASMDISKC02
}
multipath {
wwid ocr-wwid3
alias ASMDISKC03
}
multipath {
wwid ocr-wwid4
alias ASMDISKC04
}
multipath {
wwid ocr-wwid5
alias ASMDISKC05
}
multipath {
wwid mgmt-wwid1
alias ASMDISKM01
}
multipath {
wwid mgmt-wwid2
alias ASMDISKM02
}
multipath {
wwid 500G-wwid1
alias ASMDISKD01
}
multipath {
wwid 500G-wwid2
alias ASMDISKD02
}
multipath {
wwid 500G-wwid3
alias ASMDISKD03
}
multipath {
wwid 500G-wwid4
alias ASMDISKD04
}
...
}
启动multipathd服务:
systemctl start multipathd
systemctl enable multipathd
检查:

3.3 存储权限配置
创建/etc/udev/rules.d/99-oracle-asmdevices.rules配置文件并添加以下内容:
ENV{DM_NAME}=="ASMDISKC01",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKC02",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKC03",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKC04",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKC05",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKM01",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKM02",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKD01",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKD02",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKD03",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="ASMDISKD04",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
......
udevadm trigger
检查:

4 GI安装
4.1 配置环境变量
在grid用户家目录.bash_profile中添加以下内容:
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0/grid
export ORACLE_SID=+ASM1 ##其余实例以此类推
export PATH=$ORACLE_HOME/bin:$PATH
4.2 开始安装
mv LINUX.X64_193000_grid_home.zip /u01/app/19.0.0/grid
su - grid
cd /u01/app/19.0.0/grid
unzip LINUX.X64_193000_grid_home.zip
rm -rf LINUX.X64_193000_grid_home.zip
./gridSetup.sh
选择安装新的独立集群:

选择创建一个独立集群:

配置SCAN信息:

添加节点并配置SSH互信:



配置网卡用途:

选择使用Flex ASM:

选择配置GIMR:

选择使用独立磁盘组存放GIMR信息:

配置OCR磁盘组创建:

配置MGMT磁盘组创建:

配置GI相关密码:

选择不适用IPMI:

不注册到EMCC:

配置相关用户组(自动获取):

配置Oracle base目录(自动从环境变量获取):

配置Inventory目录(自动从环境变量获取):

配置root密码用于root脚本自动执行:

使用root自动修复:

跳过DNS和多SCAN告警:

开始安装:

开始自动使用root执行脚本:

忽略报错:


完成GI安装:

4.3 添加ASM磁盘组
asmca
创建磁盘组:

以DATAC1磁盘组为例:

磁盘组创建完成:

5 DB安装
5.1 配置环境变量
在oracle用户家目录.bash_profile中添加以下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=dbdg1 ##其余实例以此类推
export PATH=$ORACLE_HOME/bin:$PATH
5.2 开始安装
mv LINUX.X64_193000_db_home.zip /u01/app/oracle/product/19.0.0/dbhome_1
su - oracle
cd /u01/app/oracle/product/19.0.0/dbhome_1
unzip LINUX.X64_193000_db_home.zip
rm -rf LINUX.X64_193000_db_home.zip
./runInstaller
选择仅安装软件:

选择RAC安装:

配置SSH互信:


选择企业版:

配置Oracle base目录(自动从环境变量获取):

配置相关用户组(自动获取):

配置root密码用于root脚本自动执行:

跳过DNS和多SCAN告警:

开始DB安装:

开始自动使用root执行脚本:

完成DB安装:

6 创建数据库
dbca
选择创建数据库:

高级模式:

选择模式:

选择所有节点:

输入数据库名称:

配置数据文件路径:

配置FRA及归档:

按需配置DBV和安全相关:

按需配置内存、processes、字符集:

取消自带EM配置:

配置数据库用户密码:

按需调整参数及文件相关配置:

跳过DNS和多SCAN告警:

开始安装:


完成安装:

验证:

总结
RAC的补丁更新将放到下一期来讲。
老规矩,知道写了些啥。


![NSSCTF-[深育杯 2021]Press](https://img-blog.csdnimg.cn/ffcac2e9d6e242abbd0e972387bbe105.png)
















