两万字实战:手把手教你linux7安装oracle19crac,看完不会我来打你!❤️全网最细⭐️建议收藏❤️(代码片段)

Lucifer三思而后行 Lucifer三思而后行     2022-12-10     801

关键词:

作者简介

  • 作者:LuciferLiu,中国DBA联盟(ACDU)成员。
  • 目前主要从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。
  • 现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。

前言

之前发过一篇Oracle 11G RAC手把手教程,有朋友留言评论:19C都出了,为什么还在教11G? 既然如此,那就趁着周末边做边写,来一篇19C RAC手把手教程。

一步步教你Linux7安装Oracle RAC(11GR2版本):https://luciferliu.blog.csdn.net/article/details/117857145

注意:关于Oracle RAC在上一篇中已经讲的很清楚了,不了解的同学可以点过去看一下再继续读下去。

一、安装前规划

安装RAC前,当然要先做好规划。具体包含以下几方面:

节点主机版本主机名实例名Grid/Oracle版本Public IPPrivate IPVirtual IPScan IP
1rhel7.9p19c01p19c0119.11.0.010.211.55.1001.1.1.110.211.55.10210.211.55.105
2rhel7.9p19c02p19c0219.11.0.010.211.55.1011.1.1.210.211.55.10310.211.55.105

1 系统规划

  • 主机名: 需要英文字母开头,建议小写,p19c01/p19c02
  • 集群名称: 长度不超过15位,p19c-cluster
  • Linux系统版本: RedHat 7.9
  • 磁盘: 本地磁盘100G,用于安装OS,存放grid和oracle安装软件,用于oracle和grid安装目录
  • ASM共享盘:

裁决盘OCR:OCR+VOTING=10G、冗余模式:EXTERNAL
数据盘DATA:DATA=20G、冗余模式:EXTERNAL(数据文件,归档日志文件,spfile文件等)

  • RU升级路径: 19C 的补丁已经不叫PSU,改为RU

满足条件:
1.c>=a
2.c+d>=a+b
例:
19.5.2–>19.8.0(5是a,2是b,8是c,0是d),满足升级需求;
19.6.2–>19.7.0(虽然7>6,但是7+0<6+2,所以不满足,如果是19.7.1,即可满足)

本次是从19.3.0升级到19.11.0,oracle官网下载的基础版是19.3.0。

2 网络规划

  • Public IP(公司内部访问,非外网)

10.211.55.100 p19c01
10.211.55.101 p19c02

  • Private IP(用于节点间心跳网络)

1.1.1.1 p19c01-priv
1.1.1.2 p19c02-priv

  • Virtual IP(提供客户端访问,漂移)

10.211.55.102 p19c01-vip
10.211.55.103 p19c02-vip

  • SCAN IP(提供客户端访问,均衡)

10.211.55.105 p19c-scan

3 存储规划

asm-ocr——OCR/Voting File——10G
asm-data——Data Files ——20G

二、主机配置

废话不多说,直接开干。

注意:以下标题中(rac01&rac02)代表节点一和节点二都需要执行,(rac01)代表只需要节点一执行。

1 操作系统安装(rac01&rac02)

在这里插入图片描述
关于Linux的安装,之前已经讲过很多,碍于篇幅,这里不作演示,可参考:

  • Windows主机如何玩转虚拟机Linux安装,看这一篇就够了:
    https://luciferliu.blog.csdn.net/article/details/118558758
  • 教你三步在MacOS上安装Linux系统,看完就会了:
    https://luciferliu.blog.csdn.net/article/details/118559254
  • 实战篇:一行命令安装Linux系统,超详细的 Vagrant 上手指南:https://luciferliu.blog.csdn.net/article/details/118852229

2 配置yum源并安装依赖包(rac01&rac02)

Linux远程连接工具:

  • 本文将使用XShell和Xftp工具,安装包可以在官网下载,也可私信博主获取。
  • 其他工具也可以,比如:putty,SecureCRT 等等工具。

注意:需要提前挂载系统镜像iso。

Parallels Desktop挂载Linux主机镜像:
Parallels Desktop
VMware Workstation挂载Linux镜像:
VMware Workstation
手动挂载镜像源:

mount /dev/cdrom /mnt
df -Th

在这里插入图片描述
配置yum源:

cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
yum repolist all

在这里插入图片描述
安装依赖包:

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

手动上传并安装依赖包:

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"

在这里插入图片描述
注意:依赖一定要安装成功,否则可能导致安装失败。

3 网络配置

rac01:

##配置Public IP
nmcli connection modify eth0 ipv4.addresses 10.211.55.100/24 ipv4.gateway 10.211.55.1 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify eth1 ipv4.addresses 1.1.1.1/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up eth0
nmcli connection up eth1
nmcli connection show

在这里插入图片描述
rac02:

##配置Public IP
nmcli connection modify eth0 ipv4.addresses 10.211.55.101/24 ipv4.gateway 10.211.55.1 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify eth1 ipv4.addresses 1.1.1.2/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up eth0
nmcli connection up eth1
nmcli connection show

在这里插入图片描述
注意:这里我使用的是nmcli命令配置网络,没用过的可以了解下,很方便。

4 存储配置(rac01&rac02)

ISCSI共享存储配置可参考:

一步步教你Windows配置ISCSI共享存储(StarWind)https://luciferliu.blog.csdn.net/article/details/118087577

iscsi连接共享存储并挂载:

##iscsi识别共享存储
yum install -y iscsi-initiator-utils*
##输出targetname,10.211.55.22为iscsi共享存储设备IP地址
iscsiadm -m discovery -t st -p 10.211.55.22
##连接共享存储
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.22-lucifer -p 10.211.55.22 -l
lsblk

在这里插入图片描述
配置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
##配置multipath,wwid的值为上面获取的scsi_id,alias可自定义,这里配置1块OCR盘,1块DATA盘
cat <<EOF>/etc/multipath.conf
defaults 
    user_friendly_names yes

 
blacklist 
  devnode "^sda"


multipaths 
  multipath 
  wwid "27e2b3ddbb7fbeb41"
  alias asm_ocr
  
  multipath 
  wwid "2852b96c12f460ade"
  alias asm_data
  

EOF

在这里插入图片描述
激活multipath多路径:

multipath -F
multipath -v2
multipath -ll

在这里插入图片描述配置UDEV绑盘:

rm -rf /dev/mapper/udev_info
rm -rf /etc/udev/rules.d/99-oracle-asmdevices.rules
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-*\\",ENVDM_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*

在这里插入图片描述
在这里插入图片描述
注意:这里由于没有创建grid用户,因此权限和组是root,等创建grid用户后,再次重载udev即可。

5 hosts文件配置(rac01&rac02)

配置hostname:

hostnamectl set-hostname p19c01
hostnamectl set-hostname p19c02

配置hosts文件:

cat <<EOF>>/etc/hosts
#Public IP
10.211.55.100 	p19c01
10.211.55.101 	p19c02

#Private IP
1.1.1.1 p19c01-priv
1.1.1.2 p19c02-priv

#Vip IP
10.211.55.102 p19c01-vip
10.211.55.103 p19c02-vip

#Scan IP
10.211.55.105 p19c-scan
EOF

在这里插入图片描述

6 防火墙配置(rac01&rac02)

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

在这里插入图片描述

7 SELinux配置(rac01&rac02)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce

在这里插入图片描述
注意:selinux修改完,需重启后生效。

8 时间同步配置(rac01&rac02)

禁用chronyd:

yum install -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service

在这里插入图片描述
配置ntpdate时间同步计划任务:

yum install -y ntpdate
##10.211.55.200为时间服务器IP,每天12点同步系统时间
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
EOF
##查看计划任务
crontab -l
##手动执行
/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w

在这里插入图片描述

9 关闭透明大页和NUMA(rac01&rac02)

关闭透明大页和numa:

sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

重启后检查是否生效:

cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline

在这里插入图片描述
注意:修改完numa和透明大页,需要重启主机才能生效。

10 avahi-daemon配置(rac01&rac02)

关闭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

在这里插入图片描述

11 系统参数配置(rac01&rac02)

配置参数文件:

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 = 250 32000 100 128
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
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 2
EOF

生效系统参数:

sysctl -p

在这里插入图片描述

12 系统资源限制配置(rac01&rac02)

配置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

在这里插入图片描述

13 用户及组、目录创建(rac01&rac02)

用户组创建:

/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*

在这里插入图片描述
在这里插入图片描述
注意:这里udev重载之后,绑盘权限已经变成grid了。

创建软件目录:

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

在这里插入图片描述

14 环境变量配置(rac01&rac02)

grid用户环境变量:

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),自行修改。

oracle用户环境变量:

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=p19c01
export ORACLE_TERM=xterm
export TNS_ADMIN=\\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=p19c01
export PATH=/usr/sbin:\\$PATH
export PATH=\\$ORACLE_HOME/bin:\\$ORACLE_HOME/OPatch:\\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\\`whoami\\`@\\`hostname\\`:"'\\$PWD]\\$ '
################OracleEnd#########################
EOF

在这里插入图片描述
注意:每个节点的ORACLE_HOSTNAME(p19c01/p19c02)和ORACLE_SID(p19c01/p19c02)不一样,自行修改。

15 安装介质上传解压(rac01)

安装介质下载可参考:

  • 精心整理Linux各版本安装包(包括Centos、Redhat、Oracle Linux):https://luciferliu.blog.csdn.net/article/details/118729274
  • 花钱都买不到的绝版Oracle数据库最全版本安装包(精心整理):https://luciferliu.blog.csdn.net/article/details/118652724
##创建安装介质存放目录
mkdir /soft
##上传安装介质到/soft目录
LINUX.X64_193000_db_home.zip
LINUX.X64_193000_grid_home.zip
p32545008_190000_Linux-x86-64.zip
p6880880_190000_Linux-x86-64.zip

注意:19C的安装包需要解压到对应的ORACLE_HOME目录下。

静默解压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/"

静默解压补丁安装包:

cd /soft
##解压RU补丁包
chown -R grid:oinstall /soft
su - grid -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid"
##解压OPatch补丁包
su - grid -c "unzip -q /soft/p32545008_190000_Linux-x86-64.zip -d /soft"
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"

在这里插入图片描述
在这里插入图片描述
注意:由于19C支持安装grid软件前打RU补丁,因此提前解压OPatch和RU补丁,为安装做准备。

root用户下,cvuqdisk安装(rac01&rac02):
在这里插入图片描述

rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm 
##传输到节点二安装
scp cvuqdisk-1.0.10-1.rpm p19c02:/soft
rpm -ivh /soft/cvuqdisk-1.0.10-1.rpm 

在这里插入图片描述
注意:19C版本的cvu包换位置了,目录为:$ORACLE_HOME/cv/rpm/,以上所有软件只需要在节点一上传解压即可。

至此,准备工作已经完成,安装前重启主机。

重启后,检查selinux、numa和透明大页:
在这里插入图片描述

三、安装Grid软件(rac01)

配置grid用户vnc图形界面:

##root用户下切换到grid用户
chown -R grid:oinstall /soft
su - grid
##执行vncserver,按提示输入密码即可
vncserver

在这里插入图片描述
在vnc客户端界面输入10.211.55.100:1,输入刚才输入的密码即可连接:
在这里插入图片描述
输入密码
打开终端命令行:
在这里插入图片描述
开始安装:

##应用环境变量
source ~/.bash_profile
##进入安装目录
cd $ORACLE_HOME
##执行安装程序开始安装,通过-applyRU参数指向补丁解压位置,提前安装grid补丁
./gridSetup.sh -applyRU /soft/32545008

在这里插入图片描述
注意:可以看到,已经开始对ORACLE_HOME进行补丁安装。

  • 补丁打完,进入安装界面,选择集群安装
    在这里插入图片描述
  • 选择standlone模式
    在这里插入图片描述
  • 修改scan名称,与hosts文件配置scan名称保持一致
    在这里插入图片描述
    在这里插入图片描述
  • 添加节点二信息,进行互信
    在这里插入图片描述
  • 输入grid用户密码,创建用户时两节点必须保持一致。先执行setup,再执行test,开始互信。
    在这里插入图片描述
    在这里插入图片描述
  • 确保对应网卡和IP网段对应即可,19C心跳网段需要选ASM & Private,用于ASM实例的托管。
    在这里插入图片描述
  • 选择存储类型,19C只有两个选项,ASM只能选Flex
    在这里插入图片描述
  • GIMR,不装这玩意儿,占空间,用处有点鸡肋
    在这里插入图片描述
  • 安装时填创建OCR盘,一块盘冗余External,目录选择udev绑的路径
    在这里插入图片描述
    在这里插入图片描述
  • 填写sys/system密码,这玩意儿得记住,吃饭家伙事儿,不过忘记问题也不大
    在这里插入图片描述
  • 默认即可
    在这里插入图片描述
  • EM不开,吃资源
    在这里插入图片描述
  • 默认即可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装预检查,由于我们只配了一个SCAN,所以关于DNS相关的都无视,继续
    在这里插入图片描述
  • 开始安装grid
    在这里插入图片描述
  • 两节点顺序执行root.sh,先节点一执行完,再节点二执行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 两个节点的root.sh都执行完之后,继续安装
    在这里插入图片描述
  • 这个错误查过MOS可以忽略
    在这里插入图片描述
  • 安装完成
    在这里插入图片描述
  • 检查集群状态
su - grid
crsctl stat res -t

在这里插入图片描述
在这里插入图片描述

  • 检查grid补丁
su - grid
opatch lspatches
sqlplus -version

在这里插入图片描述

  • 添加ASM DATA数据盘
asmca

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 检查asm磁盘
asmcmd lsdg

在这里插入图片描述
至此,grid软件已经安装成功,建议重启主机。

四、安装Oracle软件

配置oracle用户vnc图形界面:

chown -R oracle:oinstall /soft
##root用户下切换到grid用户
su - oracle
##执行vncserver,按提示输入密码即可
vncserver
##在vnc客户端界面输入10.211.55.100:1,输入刚才输入的密码即可连接。

在这里插入图片描述
在vnc客户端界面输入10.211.55.100:1,输入刚才输入的密码即可连接:
在这里插入图片描述
输入密码
右键打开终端:
在这里插入图片描述
开始安装:

##应用环境变量
source ~/.bash_profile
##进入ORACLE_HOME目录
cd $ORACLE_HOME
##执行安装程序开始安装,加上jar包防止弹窗不显示问题
./runInstaller -applyRU /soft/32545008/

在这里插入图片描述
注意:可以看到,已经开始对ORACLE_HOME进行补丁安装。

  • 补丁打完,进入安装界面,选择仅安装Oracle软件
    在这里插入图片描述
  • 选择集群模式
    在这里插入图片描述
  • 输入oracle用户密码,先执行setup,再执行test,开始互信
    在这里插入图片描述
    在这里插入图片描述
  • 选择企业版
    在这里插入图片描述
  • 默认即可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装预检查,由于我们只配了一个SCAN,所以关于DNS相关的都无视,继续
    在这里插入图片描述
  • 开始安装
    在这里插入图片描述
  • root用户下,两个节点顺序执行root.sh
    在这里插入图片描述
    在这里插入图片描述
  • 安装完成
    在这里插入图片描述
  • 检查补丁版本
su - oracle
opatch lspatches
sqlplus -version

在这里插入图片描述
至此,Oracle软件已经安装成功。

五、创建数据库实例

还是在第四步安装Oracle软件的vnc界面中继续:

dbca

在这里插入图片描述

  • 选择创建数据库实例
    在这里插入图片描述
  • 选择自定义模式
    在这里插入图片描述
  • 选择基础安装即可
    在这里插入图片描述
  • 选择节点
    在这里插入图片描述
  • 填写实例名p19c0,由于默认添加为1,2,实例名规划为p19c01/02,所以需要加个0;选择安装CDB模式,不创建PDB。
    在这里插入图片描述
  • 默认即可,使用OMF模式
    在这里插入图片描述
  • 不开闪回,不开归档,可以建完实例后再配置
    在这里插入图片描述
  • 配置内存,使用ASMM模式,数据库总内存占用物理内存70%-90%之间。
    在这里插入图片描述
  • 使用基础模式安装,block_size是无法修改的,process进程数修改为1500,根据实际情况修改
    在这里插入图片描述
  • 配置数据库字符集,默认AL32UTF8,国家字符集,默认AL16UTF16;根据实际情况修改
    在这里插入图片描述
  • 全关掉,有可能导致bug
    在这里插入图片描述
  • 填写sys/system密码
    在这里插入图片描述
  • 默认即可
    在这里插入图片描述
  • 安装预检查,DNS相关忽略
    在这里插入图片描述
  • 开始安装

    在这里插入图片描述

经过漫长的等待,终于建完了。顺便吐槽一下我这破电脑,卡死了0。0。
在这里插入图片描述
在这里插入图片描述
至此,数据库实例创建完成。

六、数据库优化配置(rac01)

1 开启数据库归档模式

在节点一配置:

##关闭数据库实例
srvctl stop database -d p19c0
##开启单个节点到mount模式
srvctl start instance -d p19c0 -i p19c01 -o mount
##开启归档
sqlplus / as sysdba
alter database archivelog;
##设置归档路径
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';
exit;
##重启数据库实例
srvctl stop instance -d p19c0 -i p19c01
srvctl start database -d p19c0
##检查归档
sqlplus / as sysdba
archive log list

在这里插入图片描述

2 配置定期删除归档计划任务

只需要在一个节点配置即可:

##进入oracle用户
su - oracle
mkdir -p /home/oracle/scripts/
##写入脚本

	echo '#!/bin/bash'
    echo 'source ~/.bash_profile'
    echo 'deltime=`date +"20%y%m%d%H%M%S"`'
    echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\\$deltime.log<<EOF"
    echo 'crosscheck archivelog all;'
    echo "delete noprompt archivelog until time 'sysdate-7';"
    echo "delete noprompt force archivelog until time 'SYSDATE-10';"
    echo 'EOF'
 >>/home/oracle/scripts/del_arch.sh
chmod +x /home/oracle/scripts/del_arch.sh

在这里插入图片描述
切换到root用户写入计划任务:

cat <<EOF>>/var/spool/cron/oracle
12 00 * * * /home/oracle/scripts/del_arch.sh
EOF
##手动执行测试
su - oracle
/home/oracle/scripts/del_arch.sh

在这里插入图片描述

3 配置数据库开机自启

配置数据库实例随集群服务自启动:

##root用户下执行
/u01/app/19.3.0/grid/bin/crsctl modify resource "ora.p19c0.db" -attr "AUTO_START=always" -unsupported

注意:ora.p19c0.db中的p19c0是指db名称;需要在root用户下执行。

所有都配置完成之后,关闭数据库,重启主机。

写在最后

通过上面👆🏻的演示,相信大家都会安装Oracle 19C RAC了吧👏🏻。
在这里插入图片描述
在了解了如何一步步安装Oracle RAC之后,是否有想过通过脚本实现自动化安装呢?

如果有,请关注专栏: Oracle脚本一键安装


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

两万字零基础爬虫requests初阶教程,手把手教你爬数据(建议收藏)(代码片段)

文章目录一、环境与工具二、学爬虫必备知识三、requests体验四、get请求3.1基础讲解一3.3基础讲解二3.2基础讲解三3.4获取cookie3.5获取请求头3.6添加请求头3.5知乎爬取+反扒技术3.6抓取二进制数据3.6.1示例一3.6.2示例二3.7美女私房... 查看详情

实战篇:一步步教你linux7安装oraclerac(11gr2版本)(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维开发&#... 查看详情

实战篇:手把手教你linux安装mysql(细致入微)(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维开发&#... 查看详情

实战篇:oracle配置透明网关访问mysql详细教程(代码片段)

...eByScripts!⭐️MySQL安装教程可参考:实战篇:手把手教你Linux安装Mysql(细致入微)❤️Oracle安装包合集和补丁下载地址:2021年Oracle第 查看详情

实战篇:oracle配置透明网关访问mysql详细教程(代码片段)

...eByScripts!⭐️MySQL安装教程可参考:实战篇:手把手教你Linux安装Mysql(细致入微)❤️Oracle安装包合集和补丁下载地址:2021年Oracle第 查看详情

实战篇:手把手教你如何快速安全的升级oracle数据库,包学包会!❤️2021最新升级秘籍⭐️建议收藏❤️(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维开发&#... 查看详情

[swift实战入门]手把手教你编写2048

苹果设备越来越普及,拿着个手机就想捣鼓点啥,于是乎就有了这个系列,会一步一步教大家学习swift编程,学会自己做一个自己的app,github地址:https://github.com/scarlettbai/2048.git。这篇文章须要大家了解一些swift基本的语法。这... 查看详情

bot-sort实战:手把手教你实现bot-sort训练和测试(代码片段)

文章目录摘要数据准备配置BoT-SORT环境获取代码创建虚拟环境安装必要的包1、安装pytorch2、安装cython3、安装Cython-bbox3、安装faiss4、安装其他的包训练生成REID数据集预训练模型ByteTrack预训练模型REID预训练模型开始训练测试测试视... 查看详情

游戏开发实战手把手教你从零跑一个skynet,详细教程,含案例讲解(服务端|skynet|ubuntu)(代码片段)

文章目录一、前言二、关于Skynet三、Ubuntu虚拟机1、Ubuntu系统镜像下载2、VirtualBox虚拟机软件2.1、VirtualBox下载2.2、VirtualBox安装2.3、创建虚拟机3、载入Ubuntuiso镜像4、Ubuntu系统安装过程四、安装必要的工具1、安装git2、安装autoconf3、... 查看详情

游戏开发实战手把手教你从零跑一个skynet,详细教程,含案例讲解(服务端|skynet|ubuntu)(代码片段)

文章目录一、前言二、关于Skynet三、Ubuntu虚拟机1、Ubuntu系统镜像下载2、VirtualBox虚拟机软件2.1、VirtualBox下载2.2、VirtualBox安装2.3、创建虚拟机3、载入Ubuntuiso镜像4、Ubuntu系统安装过程四、安装必要的工具1、安装git2、安装autoconf3、... 查看详情

手把手教你跑larave框架实战笔记系列之一

[宗旨]严格遵循现代编程组件化Web开发原理,通过phpRE+Composer+PhpStorm+Laravel快捷安装配置集成强大现代优雅开发平台,实现一站式Web开发。[前言]据调查显示,目前45-54岁之间的开发者,超过一半在16岁之前就开始编程,18-24... 查看详情

100天精通oracle-实战系列(第3天)超详细linux7安装单机oracle11gr2数据库

...inux7安装单机Oracle11GR2数据库(第3天)->返回总目录<-实战第2天我们讲了Linux6是Oracle11GR2最适配的操作系统,那为什么还要选择Linux7的系统来安装Oracle11GR2数据库呢?随着硬件版本的升级,Linux6版本将不再被支持安装,所以必... 查看详情

手把手教你编译安装mariadb

MariaDB是什么?MariaDB是MySQL的一个分支,由于Oracle有可能对MySQL闭源,所以分离了出来(MySQL先后被Sun、Oracle收购)。但是除了作为一个Mysql的“向下替代品”,MariaDB包括的一些新特性使它优于MySQL。官网说明Theinstructionsonthis... 查看详情

1024实战一下手把手教你打造自己的个人网站,并支持自动发布,添加评论(代码片段)

...的静态网站🎆上手难度低、扩展性强、0成本😊手把手教你托管自己的个人网站,包含评论+自动化构建推送+GithubPages在线地址预览📚收藏不走丢啊~实战源代码仓库-来个star鼓励一下吧一、VuePress本小节... 查看详情

1024实战一下手把手教你打造自己的个人网站,并支持自动发布,添加评论(代码片段)

...的静态网站🎆上手难度低、扩展性强、0成本😊手把手教你托管自己的个人网站,包含评论+自动化构建推送+GithubPages在线地址预览📚收藏不走丢啊~实战源代码仓库-来个star鼓励一下吧一、VuePress本小节... 查看详情

1024实战一下手把手教你打造自己的个人网站,并支持自动发布,添加评论(代码片段)

...的静态网站🎆上手难度低、扩展性强、0成本😊手把手教你托管自己的个人网站,包含评论+自动化构建推送+GithubPages在线地址预览📚收藏不走丢啊~实战源代码仓库-来个star鼓励一下吧一、VuePress本小节... 查看详情

小白都能看懂的实战教程手把手教你pythonweb全栈开发(day4)(代码片段)

...劼(qíguānjié),这个《小白都能看懂的实战教程手把手教你PythonWeb全栈开发》是一个零基础的实战教程,手把手带你开发一套系统,带你了解Pythonweb全栈开发,目前正在连续更新中,如果喜欢的话可以点... 查看详情

redis技术探索「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移redis数据实战指南(数据检查对比)

...s的数据将会不一致。【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)【Redis技术探索】「数据迁移实战」手把手教你如何实现在线 查看详情