在这篇文章里面,我将奉上保姆级Oracle 19c RAC搭建攻略,包括操作系统基础配置、存储多路径配置、GI与DB安装、版本升级等。
这是一套用于我这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 | 独立运行 |
在/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
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/
rm -rf /etc/yum.repo.d/*
创建/etc/yum.repo.d/iso.repo并添加以下内容:
[iso]
name=iso
baseurl=file:///iso
enabled=1
gpgcheck=0
需要关闭防火墙、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
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用户密码。
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
修改/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
本次存储挂载总计约70TB,具体大小与数量如下:
大小(GB) | 数量 | 冗余模式 |
---|---|---|
10 | 5 | High |
50 | 2 | External |
500 | 140 | External |
磁盘组配置如下:
磁盘组名称 | 磁盘组可用空间(GB) |
---|---|
OCR | 10 |
MGMT | 100 |
DATAC1 | 50000 |
RECOC1 | 20000 |
echo '---' > /sys/class/fc_host/hostN/issue_lip
本次存储使用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
创建/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
在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
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安装:
asmca
在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
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安装:
dbca
选择创建数据库:
高级模式:
选择模式:
选择所有节点:
输入数据库名称:
配置数据文件路径:
配置FRA及归档:
按需配置DBV和安全相关:
按需配置内存、processes、字符集:
取消自带EM配置:
配置数据库用户密码:
按需调整参数及文件相关配置:
跳过DNS和多SCAN告警:
开始安装:
完成安装:
验证:
RAC的补丁更新将放到下一期来讲。
老规矩,知道写了些啥。