前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战篇:SUSE 15 SP3 安装 Oracle 19C RAC 数据库

实战篇:SUSE 15 SP3 安装 Oracle 19C RAC 数据库

作者头像
Lucifer三思而后行
发布2021-11-10 14:41:21
3K0
发布2021-11-10 14:41:21
举报
文章被收录于专栏:公众号:Lucifer三思而后行

前言

这两天看到交流群里有朋友咨询 SUSE 15 SP3 安装 Oracle 19C RAC 遇到点问题,趁着周末有时间,抱着学习的心态,研究了一下如何安装,接下来就分享一下从零开始部署的流程!

总体来说,和 RHEL 部署流程上大同小异,主要是有一些命令不一样,废话不多说直接开始了~

一、安装 SUSE 15 SP3

首先,我们去官网下载 15 SP3 的安装镜像:SUSE Linux Enterprise Server

镜像比较大,大概 12G 左右,开始安装系统!

本次演示的是 Parallel Desktop 虚拟机安装,其他虚拟机一样:

选取下载好的安装介质后,虚拟机名字为 SUSE01

由于是 19C RAC,因此配置物理内存为 8G:

至少需要2张网卡,因此添加一个网卡作为心跳:

挂载官网下载好的镜像源:

继续:

上面的步骤,其他的虚拟机或许不一样,下面的正式开始安装流程都是一致的:

选择语言环境和版本:

跳过注册:

建议安装过程中直接配置网络:

两张网卡,一张 eth0 用于公网,一张 eth1 用于心跳:

eth0:

eth1:

已配置好两张网卡:

配置主机名:

继续安装:

手工配置系统分区:

首先创建一个 /boot 分区:

将剩余磁盘空间创建为 LVM,用于系统安装:

创建 rootvg 分区:

创建 swaplv 分区:

创建根分区 rootlv:

选择时区:

不创建用户:

输入 root 密码:

关闭防火墙和kdump:

开始安装:

安装完成:

以同样的步骤安装第二个节点!

二、安装前配置

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

节点

系统

Oracle版本

主机名

实例名

PublicIP

PirvateIP

VirtualIP

SCANIP

1

SLSE 15 SP3

19C

suse01

orcl1

10.211.55.100

10.10.10.1

10.211.55.102

10.211.55.105

2

SLSE 15 SP3

19C

suse02

orcl2

10.211.55.101

10.10.10.2

10.211.55.103

10.211.55.105

1、系统规划

  • 主机名: 需要英文字母开头,建议小写,suse01/suse02
  • 集群名称: 长度不超过15位,suse-cluster
  • Linux系统版本: SLSE 15 SP3
  • 磁盘: 本地磁盘 64G,用于安装 OS,存放 grid 和 oracle 安装软件,用于 oracle 和 grid 安装目录
  • ASM共享盘: 裁决盘OCR:OCR+VOTING=10G、冗余模式:EXTERNAL 数据盘DATA:DATA=20G、冗余模式:EXTERNAL(数据文件,归档日志文件,spfile 文件等)
  • RU升级路径: 19C 的补丁已经不叫PSU,改为 RU

本次是从 19.3.0 升级到 19.13.0,Oracle 官网下载的基础版是 19.3.0!

⭐️ 如果想要使用脚本安装,可以使用博主编写的 Oracle 一键安装脚本,同时支持单机和 RAC 集群模式!

开源项目:Install Oracle Database By Scripts!

更多更详细的脚本使用方式可以订阅专栏:Oracle一键安装脚本

2、网络规划

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

代码语言:javascript
复制
10.211.55.100   suse01  
10.211.55.101   suse02

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

代码语言:javascript
复制
10.10.10.1   suse01-priv  
10.10.10.2   suse02-priv

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

代码语言:javascript
复制
10.211.55.102 	suse01-vip  
10.211.55.103 	suse02-vip

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

代码语言:javascript
复制
10.211.55.105 	suse-scan

3、存储规划

Oracle RAC 使用 ASM 存储来存放数据,通常使用 OCR 和 DATA 两个磁盘组!

磁盘名称

磁盘用途

磁盘大小

asm-ocr

OCR/Voting File

10G

asm-data

Data Files

20G

三、主机配置

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

1、配置 zypper 源并安装依赖包(rac01&rac02)

Linux远程连接工具:

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

Parallels Desktop挂载Linux主机镜像:

挂载镜像:

代码语言:javascript
复制
mount /dev/cdrom /mnt
df -Th /mnt

配置 zypper 源:

代码语言:javascript
复制
zypper ar -f /mnt/Module-Basesystem sle15
zypper ar -f /mnt/Module-Legacy sle15-Legacy
zypper ar -f /mnt/Module-Development-Tools sle15-Tools

安装依赖包:

代码语言:javascript
复制
zypper in -y gcc bc binutils glibc glibc-devel insserv-compat libaio-devel libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 libjpeg8 libpcap1 libpcre1 libpcre16-0 libpng16-16 libstdc++6 libtiff5 libgfortran4 mksh make pixz rdma-core rdma-core-devel smartmontools sysstat xorg-x11-libs xz compat-libpthread-nonshared readline-devel

检查依赖包安装情况:

代码语言:javascript
复制
rpm -q gcc bc binutils glibc glibc-devel insserv-compat libaio-devel libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 libjpeg8 libpcap1 libpcre1 libpcre16-0 libpng16-16 libstdc++6 libtiff5 libgfortran4 mksh make pixz rdma-core rdma-core-devel smartmontools sysstat xorg-x11-libs xz compat-libpthread-nonshared readline-devel --qf '%{name}.%{arch}\n' | grep "未安装软件包" | wc -l

📢 注意: 依赖一定要安装成功,否则可能导致安装失败!

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

创建安装 Oracle 数据库所需的用户、组以及安装目录:

代码语言:javascript
复制
/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 54330 racdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin

grid/oracle 用户创建并修改密码:

代码语言:javascript
复制
/usr/sbin/useradd -m -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
passwd grid
/usr/sbin/useradd -m -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
passwd oracle

查看用户组

代码语言:javascript
复制
id grid
id oracle

3、创建软件目录:

代码语言:javascript
复制
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

4、存储配置(rac01&rac02)

Windows 下配置 ISCSI 共享存储可参考:

一步步教你Windows配置ISCSI共享存储

配置好共享存储后,在 Linux 主机连接共享存储:

代码语言:javascript
复制
##iscsi识别共享存储
##输出targetname,10.211.55.61 为iscsi共享存储设备 IP地址
iscsiadm -m discovery -t st -p 10.211.55.61
代码语言:javascript
复制
##连接共享存储
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -l
lsblk
## 设置开机自启动
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -o update -n node.startup -v automatic

5、UDEV 配置共享存储:

设置 multipath 开机自启:

代码语言:javascript
复制
systemctl start multipathd
systemctl enable multipathd
systemctl status multipathd

配置 multipath 文件:

代码语言:javascript
复制
cat <<EOF >/etc/multipath.conf
defaults {
    user_friendly_names yes
}
 
blacklist {
  devnode "^sda"
}

multipaths {
  multipath {
  wwid "$(/usr/lib/udev/scsi_id -g -u /dev/sdb)"
  alias ocr_1
  }
  multipath {
  wwid "$(/usr/lib/udev/scsi_id -g -u /dev/sdc)"
  alias data_1
  }
}
EOF

激活 multipath:

代码语言:javascript
复制
multipath -v2
multipath -ll

绑定 UDEV:

代码语言:javascript
复制
cd /dev/mapper
for i in ocr_* data_*; do
    printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>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+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done </dev/mapper/udev_info

cat /etc/udev/rules.d/99-oracle-asmdevices.rules

生效 UDEV:

代码语言:javascript
复制
udevadm control --reload-rules
udevadm trigger --type=devices
ll /dev/asm_*

6、hosts文件配置(rac01&rac02)

配置hostname:

代码语言:javascript
复制
hostnamectl set-hostname suse01
hostnamectl set-hostname suse02

配置hosts文件:

代码语言:javascript
复制
cat <<EOF>>/etc/hosts
#Public IP
10.211.55.100 	suse01
10.211.55.101 	suse02

#Private IP
10.10.10.1 suse01-priv
10.10.10.2 suse02-priv

#Vip IP
10.211.55.102 suse01-vip
10.211.55.103 suse02-vip

#Scan IP
10.211.55.105 suse-scan
EOF

7、防火墙配置(rac01&rac02)

代码语言:javascript
复制
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

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

禁用 chronyd:

代码语言:javascript
复制
zypper in -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service
systemctl status chronyd.service

配置ntpdate时间同步计划任务:

代码语言:javascript
复制
zypper in -y ntp
##10.211.55.61 为时间服务器IP,每天12点同步系统时间
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u 10.211.55.61 && /usr/sbin/hwclock -w
EOF
##查看计划任务
crontab -l
##手动执行
/usr/sbin/ntpdate -u 10.211.55.61 && /usr/sbin/hwclock -w

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

SUSE 15 SP3 配置内核文件,关闭透明大页和numa:

代码语言:javascript
复制
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

重启后检查是否生效:

代码语言:javascript
复制
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline

📢 注意: 关闭 透明大页numa 的配置,需要重启主机生效!

10、avahi-daemon 配置(rac01&rac02)

有些主机安装选择最小化安装,没有安装 avahi-daemon 功能,建议安装之后禁用,防止以后误操作导致出问题:

代码语言:javascript
复制
zypper in -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.service
systemctl disable avahi-daemon.socket
systemctl status avahi-daemon.service
systemctl status avahi-daemon.socket

11、removeIPC

代码语言:javascript
复制
sed -i 's/#RemoveIPC=no/RemoveIPC=no/g' /etc/systemd/logind.conf
systemctl daemon-reload
systemctl restart systemd-logind

12、系统参数配置(rac01&rac02)

安装 Oracle 数据库需要配置系统参数,以下使用脚本命令一键式配置:

代码语言:javascript
复制
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
#OracleBegin
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
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
#OracleEnd
EOF

生效系统参数:

代码语言:javascript
复制
sysctl -p

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

配置limits.conf:

代码语言:javascript
复制
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:

代码语言:javascript
复制
cat <<EOF>>/etc/pam.d/login
session required pam_limits.so 
session required /lib64/security/pam_limits.so
EOF

配置 shm:

代码语言:javascript
复制
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF

mount -o remount /dev/shm
df -Th /dev/shm

14、安装 rlwrap

代码语言:javascript
复制
cd /soft
tar -xf rlwrap-0.42.tar.gz
cd rlwrap-0.42
./configure && make && make install
cd /soft
rm -rf rlwrap-0.42*

15、环境变量配置(rac01&rac02)

root 用户环境变量:

代码语言:javascript
复制
cat <<EOF >>/root/.profile
################OracleBegin#########################
alias so='su - oracle'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
alias crsctl='/u01/app/19.3.0/grid/bin/crsctl'
alias sg='su - grid'
################OracleEnd###########################
EOF

grid 用户环境变量:

代码语言:javascript
复制
cat <<EOF >>/home/grid/.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]\$ '
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
################OracleEnd###########################
EOF

📢 注意: 每个节点的 ORACLE_SID 不一样(+ASM1/+ASM2),需要自行修改!

oracle用户环境变量:

代码语言:javascript
复制
cat <<EOF >>/home/oracle/.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=/u01/app/oracle/product/19.3.0/db
export ORACLE_HOSTNAME=suse01
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'
alias alert='tail -500f \$ORACLE_BASE/diag/rdbms/\$ORACLE_SID/\$ORACLE_SID/trace/alert_\$ORACLE_SID.log|more'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias ggsci='rlwrap ggsci'
alias dgmgrl='rlwrap dgmgrl'
################OracleEnd###########################
EOF

📢 注意: 每个节点的 ORACLE_HOSTNAME(suse01/suse02)和 ORACLE_SID(orcl1/orcl2)不一样,需要自行修改!

16、安装介质上传解压(rac01)

安装包使用 XFTP 工具进行上传,只需要上传至一节点 /soft 目录下:

代码语言:javascript
复制
##上传安装介质到/soft目录
LINUX.X64_193000_db_home.zip
LINUX.X64_193000_grid_home.zip
p33182768_190000_Linux-x86-64.zip
p6880880_190000_Linux-x86-64.zip

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

静默解压grid安装包:

代码语言:javascript
复制
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安装包:

代码语言:javascript
复制
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/"

静默解压 RU 补丁安装包:

代码语言:javascript
复制
cd /soft
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"
su - grid -c "unzip -q /soft/p33182768_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"
chown -R grid:oinstall /soft/33182768

📢 注意: 由于19C支持安装grid软件前打RU补丁,因此提前解压OPatch和RU补丁,为安装做准备!

root用户下,cvuqdisk安装(rac01&rac02):

代码语言:javascript
复制
rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm 
##传输到节点二安装
scp /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm suse02:/soft
rpm -ivh /soft/cvuqdisk-1.0.10-1.rpm 

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

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

重启后,检查 numa 和透明大页:

📢 注意: 重启后别忘记两个节点 ISCSI 连接共享存储:

代码语言:javascript
复制
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -l

四、安装Grid软件(rac01)

关于 VNC 配置具体可参考文章:

Linux 配置 VNC 远程桌面

配置 grid 用户 vnc 图形界面:

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

在 vnc 客户端界面输入 10.211.55.100:2,输入刚才输入的密码即可连接:

打开终端命令行:

开始安装:

代码语言:javascript
复制
source ~/.profile
cd $ORACLE_HOME
##执行安装程序开始安装,通过-applyRU参数指向补丁解压位置,提前安装grid补丁
./gridSetup.sh -applyRU /soft/33182768

📢 注意: 可以看到,已经开始对 ORACLE_HOME 进行补丁安装。

补丁打完,进入安装界面,选择集群安装:

选择 standlone 模式:

修改 scan 名称,与 hosts 文件配置 scan 名称保持一致:

添加节点二信息,进行互信:

输入 grid 用户密码,创建用户时两节点必须保持一致。先执行 setup,再执行 test,开始互信:

确保对应网卡和IP网段对应即可,19C 心跳网段需要选 ASM & Private,用于 ASM 实例的托管:

选择存储类型,19C 只有两个选项,ASM 只能选 Flex:

GIMR,这里不选择安装:

安装时填创建 OCR 盘,一块盘冗余 External,目录选择 udev 绑的路径:

填写 sys/system 密码,需要记住自己设置的密码:

默认即可:

EM 选择不开,比较占资源,后面安装好后可以配置:

默认即可:

安装预检查:

两个节点执行依赖安装:

代码语言:javascript
复制
zypper in -y libcap-ng0-32bit libcap1-32bit libcap2-32bit libgcc_s1-32bit libXtst6-32bit nfs-kernel-server libXi6-32bit libXrender1-32bit libpcre1-32bit libpng16-16-32bit libstdc++6-32bit libaio1-32bit

重新检查后,剩下的报错都是 DNS 相关的,可直接忽略:

开始安装 grid:

两节点顺序执行 root.sh,先节点一执行完,再节点二执行:

两个节点的 root.sh 都执行完之后,继续安装:

这个错误查过 MOS 可以忽略:

安装完成:

检查集群状态:

代码语言:javascript
复制
crsctl stat res -t

检查 grid 补丁:

代码语言:javascript
复制
su - grid
opatch lspatches
sqlplus -version

五、创建 ASM 数据盘 DATA

这里创建的 DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件!

使用图形化方式添加 ASM DATA 数据盘:

代码语言:javascript
复制
asmca

检查 asm 磁盘:

代码语言:javascript
复制
asmcmd lsdg

建议重启两台主机,检查重启后 Grid 集群是否正常运行!

六、安装Oracle软件

配置 oracle 用户 vnc 图形界面:

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

在 vnc 客户端界面输入 10.211.55.100:1,输入刚才输入的密码即可连接:

右键打开终端:

开始安装:

代码语言:javascript
复制
##应用环境变量
source ~/.profile
##进入ORACLE_HOME目录
cd $ORACLE_HOME
##执行安装程序开始安装,加上jar包防止弹窗不显示问题
./runInstaller -applyRU /soft/33182768

📢 注意: 可以看到,已经开始对 ORACLE_HOME 进行补丁安装!

补丁打完,进入安装界面,选择仅安装 Oracle 软件:

选择集群模式:

输入 oracle 用户密码,先执行 setup,再执行 test,开始互信:

选择企业版:

默认即可:

安装预检查,由于我们只配了一个 SCAN,所以关于 DNS 相关的都无视,继续:

开始安装:

root 用户下,两个节点顺序执行 root.sh:

安装完成:

检查补丁版本:

代码语言:javascript
复制
su - oracle
opatch lspatches
sqlplus -version

七、创建数据库实例

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

代码语言:javascript
复制
dbca

选择创建数据库实例:

选择自定义模式:

选择基础安装即可:

选择节点:

填写实例名orcl,由于默认添加为1,2,实例名规划为orcl1/2;选择安装 CDB 模式,不创建PDB:

默认即可,使用 OMF 模式:

不开闪回,不开归档,可以建完实例后再配置:

配置内存,使用 ASMM 模式,数据库总内存占用物理内存 70%-90% 之间:

使用基础模式安装,block_size 是无法修改的,process 进程数修改为1500,根据实际情况修改:

配置数据库字符集,默认 AL32UTF8,国家字符集,默认 AL16UTF16;根据实际情况修改:

建议全关掉,有可能导致 bug:

填写sys/system密码:

默认即可:

安装预检查,DNS 相关忽略:

开始安装:

经过漫长的等待,数据库建完了:

至此,数据库实例创建完成!

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

1、开启数据库归档模式

关于开启归档模式,具体可参考文章:

Oracle 开启归档模式

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

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

关于归档日志删除,具体可参考文章:

Oracle RMAN删除归档日志脚本

代码语言:javascript
复制
##进入oracle用户
su - oracle
mkdir -p /home/oracle/scripts/
##写入脚本
{
	echo '#!/bin/bash'
    echo 'source ~/.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

切换到 oracle 用户写入计划任务:

代码语言:javascript
复制
cat <<EOF>>/var/spool/cron/oracle
12 00 * * * /home/oracle/scripts/del_arch.sh
EOF
##手动执行测试
su - oracle
/home/oracle/scripts/del_arch.sh

3、配置数据库开机自启

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

代码语言:javascript
复制
##root用户下执行
/u01/app/19.3.0/grid/bin/crsctl modify resource "ora.orcl.db" -attr "AUTO_START=always" -unsupported

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 一、安装 SUSE 15 SP3
    • 二、安装前配置
      • 1、系统规划
        • 2、网络规划
          • 3、存储规划
          • 三、主机配置
            • 1、配置 zypper 源并安装依赖包(rac01&rac02)
              • 2、用户及组、目录创建(rac01&rac02)
                • 3、创建软件目录:
                  • 4、存储配置(rac01&rac02)
                    • 5、UDEV 配置共享存储:
                      • 6、hosts文件配置(rac01&rac02)
                        • 7、防火墙配置(rac01&rac02)
                          • 8、时间同步配置(rac01&rac02)
                            • 9、关闭透明大页和NUMA(rac01&rac02)
                              • 10、avahi-daemon 配置(rac01&rac02)
                                • 11、removeIPC
                                  • 12、系统参数配置(rac01&rac02)
                                    • 13、系统资源限制配置(rac01&rac02)
                                      • 14、安装 rlwrap
                                        • 15、环境变量配置(rac01&rac02)
                                          • 16、安装介质上传解压(rac01)
                                          • 四、安装Grid软件(rac01)
                                          • 五、创建 ASM 数据盘 DATA
                                          • 六、安装Oracle软件
                                          • 七、创建数据库实例
                                          • 八、数据库优化配置(rac01)
                                            • 1、开启数据库归档模式
                                              • 2、配置定期删除归档计划任务
                                                • 3、配置数据库开机自启
                                                相关产品与服务
                                                数据库
                                                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                                                领券
                                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档