VMware虚拟机上Oracle 19C RAC超详细静默安装部署流程(新手必看)
文章目录
准备规划 1.系统规划 2.存储规划 3.网络规划 一、创建虚拟机 二、安装操作系统 三、安装前配置 1.网络配置 2.上传安装介质 3.配置yum源 4.安装依赖包 5.配置 ISCSI 共享存储 5.1 下载安装StarWind 5.2 配置服务端StarWind ISCSI 5.3 配置客户端ISCSI 6.配置多路径 6.1 安装 multipath 绑定多路径 6.2 配置 multipath 文件 6.3 配置UDEV绑盘 7.hosts文件配置 8.防火墙配置 9.selinux 配置 10.配置chrony时间同步 11.关闭透明大页和NUMA 12.avahi-daemon 配置 13.系统参数配置 13.系统资源限制配置 14.用户及组、目录创建 15.配置环境变量 16.安装介质与补丁 四、安装Grid软件 1.用户互信 2.安装前校验 3.编辑相应文件 4.开始安装 5.磁盘组创建 五、DB软件安装 1.校验 2.编辑响应文件 3.安装软件 六、数据库建库 1.配置响应文件 2.建库 3.检查 总结
准备规划
1.系统规划
2.存储规划
3.网络规划
Public IP
192.168.10.101 node1
192.168.10.102 node2
Private IP
1.1.1.10 node1-priv
1.1.1.20 node2-priv
Virtual IP
192.168.10.103 node1-vip
192.168.10.104 node2-vip
SCAN IP
192.168.10.105 node-scan
本篇文章所用到的介质
链接: https://pan.baidu.com/s/1yp70WQDCmiL63VVs8V2lKQ?pwd=msra 提取码: msra
一、创建虚拟机
我这里用的是OracleLinux7.9
这里要给到至少200G,100G不够
添加网卡
内存给32G
处理器2核4G
创建两台虚拟机
二、安装操作系统
三、安装前配置
以下操作节点一和节点二都要执行
1.网络配置
先开个网卡,把远程连上进行操作
连上了
分别配置node1和node2的网络
先看一下我虚拟机中设的网关是多少
node1:
##配置Public IP
nmcli connection modify ens33 ipv4.addresses 192.168.10.101/24 ipv4.gateway 192.168.10.2 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify ens34 ipv4.addresses 1.1.1.10/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up ens34
nmcli connection up ens33
nmcli connection show
node2:
##配置Public IP
nmcli connection modify ens33 ipv4.addresses 192.168.10.102/24 ipv4.gateway 192.168.10.2 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify ens34 ipv4.addresses 1.1.1.20/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up ens34
nmcli connection up ens33
nmcli connection show
up后连接会断开,新ip重新连接后show一下看看
2.上传安装介质
##创建安装介质存放目录
mkdir /soft
##上传安装介质到/soft目录
LINUX.X64_193000_db_home.zip
LINUX.X64_193000_grid_home.zip
p6880880_190000_Linux-x86-64.zip
p38291812_190000_Linux-x86-64.zip
p38298204_190000_Linux-x86-64.zip
OracleLinux-R7-U9-Server-x86_64-dvd.iso
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
3.配置yum源
手动挂载本地镜像
##创建挂载目录
mkdir -p /mnt/iso
##挂载文件(镜像,只读)
mount -o loop,ro /soft/OracleLinux-R7-U9-Server-x86_64-dvd.iso /mnt/iso/
ll /mnt/iso/
手动配置yum源
##禁用自带repo,写入新repo
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/
vi local.repo
##创建repo文件并写入以下内容
[local]
name=Local
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
##刷新缓存并验证
yum clean all
yum repolist
4.安装依赖包
yum groupinstall -y "Server with GUI"
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
tigervnc* \
psmisc --skip-broken
手动安装该 RPM 包
cd /soft
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
##查询关键依赖包状态
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline | grep "not installed"
5.配置 ISCSI 共享存储
这里参考的是三哥的文章:
一步步教你Windows配置ISCSI共享存储:https://luciferliu.blog.csdn.net/article/details/118087577
5.1 下载安装StarWind
选择安装
5.2 配置服务端StarWind ISCSI
先通过 cmd 命令行通过ipconfig查看一下本机ip地址
相互ping检查一下网络
新建StarWind Server
双击或者点击connect
Alias别名随便填
选择添加虚拟硬盘
选择镜像文件设备
创建新虚拟磁盘
这里分20G
数据写入同时同步到内存和磁盘
同样的方法创建DATA
这里分40G
同样的方法创建ARCH
这里分20G
5.3 配置客户端ISCSI
安装ISCSI
yum install -y iscsi-initiator-utils*
搜索服务端 ISCSI Target
iscsiadm -m discovery -t st -p 192.168.1.10
连接服务端 ISCSI 共享存储
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.1.10-hx -p 192.168.1.10-l
sdd是我后面补的,所以前面没有写,但是要加上
6.配置多路径
6.1 安装 multipath 绑定多路径
##安装multipath
yum install -y device-mapper*
mpathconf --enable --with_multipathd y
##查看共享盘的scsi_id
/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd
6.2 配置 multipath 文件
cat <<EOF>/etc/multipath.conf
defaults {
user_friendly_names yes
}
blacklist {
devnode "^sda"
}
multipaths {
multipath {
wwid "28c1031a4a85fbf7e"
alias asm_ocr
}
multipath {
wwid "2c9479c245a0427b9"
alias asm_data
}
multipath {
wwid "2c3e4942003596caa"
alias asm_arch
}
}
EOF
激活multipath多路径
multipath -F
multipath -v2
multipath -ll
6.3 配置UDEV绑盘
rm -rf /dev/mapper/udev_info
rm -rf /etc/udev/rules.d/99-oracle-asmdevices.rules
cd /dev/mapper
##UDEV绑盘
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
whileread-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=\"asmadmin\",MODE=\"0660\"">>/etc/udev/rules.d/99-oracle-asmdevices.rules
done </dev/mapper/udev_info
##重载udev
udevadm control --reload-rules
udevadm trigger--type=devices
ll /dev/asm*
7.hosts文件配置
配置hostname
##node1节点
hostnamectl set-hostname node1
##node2节点
hostnamectl set-hostname node2
配置hosts文件
cat <<EOF>>/etc/hosts
#Public IP
192.168.10.101 node1
192.168.10.102 node2
#Private IP
1.1.1.10 node1-priv
1.1.1.20 node2-priv
#Vip IP
192.168.10.103 node1-vip
192.168.10.104 node2-vip
#Scan IP
192.168.10.105 node-scan
EOF
8.防火墙配置
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
9.selinux 配置
配置selinux临时生效,临时Permissive宽松模式
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config
setenforce 0
getenforce
10.配置chrony时间同步
node1
vi /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
server ntp.ntsc.ac.cn iburst
driftfile /var/lib/chrony/drift
makestep 1.03
rtcsync
allow 192.168.10.0/24
allow 1.1.1.0/24
logdir /var/log/chrony
node2
vi /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 192.168.10.101 iburst
driftfile /var/lib/chrony/drift
makestep 1.03
rtcsync
logdir /var/log/chrony
重启chrony并验证同步情况
systemctl restart chronyd
chronyc sources -v
chronyc tracking
node1(做为时间服务器):
210 Number of sources = 0
node2(做为客户端):
210 Number of sources = 1
偏移值在毫秒级以内同步就是正常。
配置定时任务
每天中午 12:00 同步
crontab -e
012***/usr/bin/chronyc -a makestep >/dev/null2>&1
crontab -l
11.关闭透明大页和NUMA
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/'/etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
12.avahi-daemon 配置
yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
配置 NOZEROCONF:
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
13.系统参数配置
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal /2048))
shmall=$((memTotal /4))
if[ $shmall -lt 2097152];then
shmall=2097152
fi
shmmax=$((memTotal *1024-1))
if["$shmmax"-lt 4294967295];then
shmmax=4294967295
fi
cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr =1048576
fs.file-max =6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
kernel.shmmni =4096
kernel.sem =25032000100128
net.ipv4.ip_local_port_range =900065500
net.core.rmem_default =262144
net.core.rmem_max =4194304
net.core.wmem_default =262144
net.core.wmem_max =1048576
net.ipv4.conf.ens33.rp_filter =1
net.ipv4.conf.ens34.rp_filter =2
EOF
生效系统参数:
sysctl -p
13.系统资源限制配置
配置limits.conf:
cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF
配置pam.d/login:
cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
14.用户及组、目录创建
创建安装 Oracle 数据库所需的用户、组以及安装目录
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba
创建 grid/oracle 用户
/usr/sbin/useradd -u 11012-g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
/usr/sbin/useradd -u 54321-g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
##修改用户密码为oracle
echo "oracle"|passwd oracle --stdin
echo "oracle"|passwd grid --stdin
##查看用户组
id grid
id oracle
##重载udev
udevadm control --reload-rules
udevadm trigger--type=devices
ll /dev/asm*
创建软件目录并赋权
mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.3.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /backup
mkdir -p /home/oracle/scripts
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /home/oracle/scripts
chown -R grid:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.3.0/grid
chown -R grid:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775/u01
15.配置环境变量
配置grid用户环境变量
node1:
cat <<EOF>>/home/grid/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
每个节点的 ORACLE_SID 不一样(+ASM1/+ASM2)
node2:
cat <<EOF>>/home/grid/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM2
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
配置oracle用户环境变量
node1:
cat <<EOF>>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=node1
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\u@\h:\w]\\$ "
################OracleEnd#########################
EOF
每个节点的 ORACLE_HOSTNAME和 ORACLE_SID不一样
node2:
cat <<EOF>>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=node2
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl2
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\u@\h:\w]\\$ "
################OracleEnd#########################
EOF
16.安装介质与补丁
赋权并解压集群、数据库安装包
(后续安装只需要在node1执行)
##静默解压grid安装包
chown -R grid:oinstall /soft
su - grid -c "unzip -q /soft/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid/"
##静默解压oracle安装包
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/db/"
赋权并解压OPatch工具和补丁
cd /soft
##解压OPatch工具
su - grid -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid"
su - oracle -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"
##解压Grid RU与DB RU
chown -R grid:oinstall /soft
su - grid -c "unzip -q /soft/p38291812_190000_Linux-x86-64.zip -d /soft"
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q /soft/p38298204_190000_Linux-x86-64.zip -d /soft"
检查OPatch版本状态
su - grid
opatch version
cvuqdisk安装
cd /u01/app/19.3.0/grid/cv/rpm/
rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
将cvuqdisk从node1传输到node2
scp cvuqdisk-1.0.10-1.rpm 192.168.10.102:/soft/
##到node2中
rpm -ivh /soft/cvuqdisk-1.0.10-1.rpm
一切准备就绪后将node1和node2量节点reboot一下
四、安装Grid软件
1.用户互信
chown -R grid:oinstall /soft
su - grid
$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts "node1 node2"-advanced -noPromptPassphrase
su - oracle
$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "node1 node2"-advanced -noPromptPassphrase
##输入yes,输入4次密码即可。
2.安装前校验
su - grid
cd $ORACLE_HOME
./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose -fixup
##在节点 "node1" 上完成 "/tmp/CVU_19.0.0.0.0_grid/runfixup.sh" 的执行后
/tmp/CVU_19.0.0.0.0_grid/runfixup.sh
##修复完再次检查
根据提示进行修复
## 节点连接性失败:PRVG-1172 / 11067 / 11095修复
[root@node1~]# systemctl status virtqemud 2>/dev/null | head
[root@node1~]# systemctl disable --now libvirtd 2>/dev/null || true
[root@node1~]# systemctl disable --now virtqemud 2>/dev/null || true
[root@node1~]# ip addr del 192.168.122.1/24 dev virbr0
[root@node1~]# nmcli con show | egrep -i 'virbr|libvirt' || true
[root@node1~]# nmcli con delete virbr0 2>/dev/null || true
[root@node1~]# nmcli con delete "libvirt" 2>/dev/null || true
[root@node1~]# ip a | grep -E "virbr0|192\.168\.122\.1" -n
21:5: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN groupdefault qlen 1000
23:6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN groupdefault qlen 1000
##这里不管他也行
cat >/etc/resolv.conf <<'EOF'
nameserver 8.8.8.8
EOF
3.编辑相应文件
cp /u01/app/19.3.0/grid/install/response/gridsetup.rsp /home/grid/
vi gridsetup.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
# SCAN:LOCAL_SCAN + hosts 里固定一个IP
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.gpnp.scanName=node-scan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.SCANClientDataFile=
# 两节点独立集群
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.clusterName=rac-cluster
# public主机名:vip主机名:HUB
oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:HUB
# 网卡角色:1=public,5=private(interconnect)
oracle.install.crs.config.networkInterfaceList=ens33:192.168.10.0:1,ens34:1.1.1.0:5
# 存储选 ASM
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
# GIMR
oracle.install.crs.configureGIMR=true
oracle.install.asm.configureGIMRDataDG=true
oracle.install.asm.gimrDG.name=DATA
oracle.install.asm.gimrDG.redundancy=EXTERNAL
oracle.install.asm.gimrDG.AUSize=4
oracle.install.asm.gimrDG.disks=/dev/asm_data
# ASM 密码
oracle.install.asm.SYSASMPassword=oracle
oracle.install.asm.monitorPassword=oracle
# 关键:OCR/VOTE 磁盘组
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/asm_ocr
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm*
oracle.install.asm.configureAFD=false
oracle.install.config.managementOption=NONE
# 建议先不让安装器自动跑 root.sh,后续按提示手工执行
oracle.install.crs.rootconfig.executeRootScript=false
oracle.install.crs.config.ignoreDownNodes=false
4.开始安装
cd /u01/app/19.3.0/grid
./gridSetup.sh -silent -ignorePrereqFailure -waitForCompletion -responseFile /home/grid/gridsetup.rsp
##以root用户在node1,node2执行脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.3.0/grid/root.sh
##在node1的grid用户执行
/u01/app/19.3.0/grid/gridSetup.sh -executeConfigTools -silent -waitForCompletion -responseFile /home/grid/gridsetup.rsp
警告可以忽略
查看集群状态
crsctl stat res -t
5.磁盘组创建
asmca -silent -createDiskGroup -diskGroupName ARCH -diskList '/dev/asm_arch'-redundancy EXTERNAL
五、DB软件安装
1.校验
/u01/app/19.3.0/grid/runcluvfy.sh stage -pre dbinst -n node1,node2 -verbose
可忽略
2.编辑响应文件
cp $ORACLE_HOME/install/response/db_install.rsp /home/oracle
vi db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.CLUSTER_NODES=node1,node2
# 只装软件,不建库:starterdb 全部留空
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
# root 脚本你手工执行
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.rootconfig.configMethod=
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
3.安装软件
执行安装脚本
cd $ORACLE_HOME
./runInstaller -silent -ignorePrereqFailure -waitForCompletion -responseFile /home/oracle/db_install.rsp
分别在node1,node2执行root.sh脚本
/u01/app/oracle/product/19.3.0/db/root.sh
六、数据库建库
1.配置响应文件
cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/RACDB.rsp
cd /home/oralce
vi RACDB.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcl
sid=orcl
databaseConfigType=RAC
RACOneNodeServiceName=
policyManaged=
createServerPool=
serverPoolName=
cardinality=
force=
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orcpdb
useLocalUndoForPDBs=
pdbAdminPassword=Oracle123.
nodelist=node1,node2
templateName=/u01/app/oracle/product/19/db_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Oracle123.
systemPassword=Oracle123.
oracleHomeUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=
dbsnmpPassword=
omsHost=
omsPort=
emUser=
emPassword=
dvConfiguration=
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=
datafileJarLocation=
datafileDestination=+DATA/{DB_UNIQUE_NAME}/
recoveryAreaDestination=
storageType=
diskGroupName=+DATA/{DB_UNIQUE_NAME}/
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=
registerWithDirService=
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=
initParams=
sampleSchema=
memoryPercentage=
databaseType=MULTIPURPOSE
automaticMemoryManagement=
totalMemory=
2.建库
dbca -silent -createDatabase -responseFile /home/oracle/RACDB.rsp -ignorePreReqs
3.检查
srvctl config database-d orcl
srvctl statusdatabase-d orcl
ps -ef | grep smon
sqlplus /as sysdba
show pdbs
setlines200
col name for a60
select name from v$datafile;
select name from v$tempfile;
show parameter db_recovery_file_dest;
总结
这次我详细的把 19c RAC 从环境准备 → GI 安装 → ASM 磁盘组 → DB 软件 → DBCA 静默建库 整个流程非常详细的记录了下来。RAC 的难点往往不在安装命令本身,而在前置依赖和细节一致性。