前言

Oracle 一键安装脚本,演示 RedHat 7.9 一键安装 Oracle 21C RAC(21.14)过程(全程无需人工干预)。

⭐️ 脚本下载地址:Shell脚本安装Oracle数据库

安装准备

  • 1、安装好操作系统,建议安装图形化
  • 2、配置好网络
  • 3、挂载本地 ISO 镜像源
  • 4、上传软件安装包(安装基础包,补丁包)
  • 5、上传一键安装脚本:OracleShellInstall

环境信息

# 主机版本
## 节点一
[root@rac01 soft]# cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.9 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.9:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.9
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.9"

## 节点二
[root@rac02 ~]# cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.9 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.9:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.9
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.9"

# 网络信息
## 节点一
[root@rac01 soft]# ip a
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:96:ac:51 brd ff:ff:ff:ff:ff:ff
    inet 192.168.6.151/24 brd 192.168.6.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::f5b9:ca65:dba2:bf0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:96:ac:5b brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.1/24 brd 1.1.1.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::a8ce:7574:2cec:a98e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

## 节点二
[root@rac02 ~]# ip a
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f2:87:1f brd ff:ff:ff:ff:ff:ff
    inet 192.168.6.152/24 brd 192.168.6.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::add5:391e:a5cb:6547/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f2:87:29 brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.2/24 brd 1.1.1.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::3044:e992:319f:95a2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

# 挂载本地 ISO 镜像
## 节点一
[root@rac01 soft]# mount | grep iso9660 | grep -v "/run/media"
/dev/sr0 on /mnt type iso9660 (ro,relatime)
[root@rac01 soft]# df -h|grep /mnt
/dev/sr0               4.3G  4.3G     0 100% /mnt

## 节点二
[root@rac02 ~]# mount | grep iso9660 | grep -v "/run/media"
/dev/sr0 on /mnt type iso9660 (ro,relatime)
[root@rac02 ~]# df -h|grep /mnt
/dev/sr0               4.3G  4.3G     0 100% /mnt

# starwind 共享磁盘挂载(有存储就不需要使用 starwind,直接存储上划盘挂载就可)
yum install -y iscsi-initiator-utils*
systemctl start iscsid.service
systemctl enable iscsid.service
iscsiadm -m discovery -t st -p 192.168.6.188
## 挂载 ASM 磁盘
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.6.188-lucifer -p 192.168.6.188 -l
## 配置开机自动挂载
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.6.188-lucifer -p 192.168.6.188 --op update -n node.startup -v automatic

## 节点一
[root@rac01 soft]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  100G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   99G  0 part 
  ├─rhel-root 253:0    0   91G  0 lvm  /
  └─rhel-swap 253:1    0    8G  0 lvm  [SWAP]
sdb             8:16   0   10G  0 disk 
sdc             8:32   0   50G  0 disk 
sr0            11:0    1  4.2G  0 rom  /mnt

## 节点二
[root@rac02 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  100G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   99G  0 part 
  ├─rhel-root 253:0    0   91G  0 lvm  /
  └─rhel-swap 253:1    0    8G  0 lvm  [SWAP]
sdb             8:16   0   10G  0 disk 
sdc             8:32   0   50G  0 disk 
sr0            11:0    1  4.2G  0 rom  /mnt

# 安装包存放在 /soft 目录下
[root@rac01 soft]# ll
-rwx------. 1 root root 3109225519 Apr 25 13:47 LINUX.X64_213000_db_home.zip
-rwx------. 1 root root 2422217613 Apr 25 13:46 LINUX.X64_213000_grid_home.zip
-rwxr-xr-x. 1 root root     197418 Apr 26 10:40 OracleShellInstall
-rwx------. 1 root root 2044000163 Apr 25 13:46 p36352207_210000_Linux-x86-64.zip
-rwx------. 1 root root  127629034 Apr 25 13:46 p6880880_210000_Linux-x86-64.zip
-rwx------. 1 root root     321590 Mar 11 14:12 rlwrap-0.44.tar.gz

确保安装环境准备完成后,即可执行一键安装。

安装命令

使用标准生产环境安装参数(安装过程若失败,脚本支持重复执行安装):

# 根据脚本 README 或者 -h 命令提示,编辑好一键安装命令,进入 /soft 目录执行安装:
./OracleShellInstall -n rac `# hostname prefix`\
-hn rac01,rac02 `# rac node hostname`\
-cn rac-cls `# cluster_name`\
-rp oracle `# root password`\
-gp oracle `# grid password`\
-op oracle `# oracle password`\
-lf ens192 `# local ip ifname`\
-pf ens224 `# rac private ip ifname`\
-ri 192.168.6.151,192.168.6.152 `# rac node public ip`\
-vi 192.168.6.153,192.168.6.154 `# rac virtual ip`\
-si 192.168.6.155 `# rac scan ip`\
-od /dev/sdb `# rac ocr asm disk`\
-dd /dev/sdc `# rac data asm disk`\
-o lucifer `# dbname`\
-pdb oliver `# pdbname`\
-ds AL32UTF8 `# database character`\
-ns AL16UTF16 `# national character`\
-redo 100 `# redo size`\
-dp oracle `# sys/system password`\
-gpa 36352207 `# grid PSU/RU`\
-opd Y `# optimize db`

安装过程

███████                             ██          ████████ ██               ██  ██ ██                    ██              ██  ██
  ██░░░░░██                           ░██         ██░░░░░░ ░██              ░██ ░██░██                   ░██             ░██ ░██
 ██     ░░██ ██████  ██████    █████  ░██  █████ ░██       ░██       █████  ░██ ░██░██ ███████   ██████ ██████  ██████   ░██ ░██
░██      ░██░░██░░█ ░░░░░░██  ██░░░██ ░██ ██░░░██░█████████░██████  ██░░░██ ░██ ░██░██░░██░░░██ ██░░░░ ░░░██░  ░░░░░░██  ░██ ░██
░██      ░██ ░██ ░   ███████ ░██  ░░  ░██░███████░░░░░░░░██░██░░░██░███████ ░██ ░██░██ ░██  ░██░░█████   ░██    ███████  ░██ ░██
░░██     ██  ░██    ██░░░░██ ░██   ██ ░██░██░░░░        ░██░██  ░██░██░░░░  ░██ ░██░██ ░██  ░██ ░░░░░██  ░██   ██░░░░██  ░██ ░██
 ░░███████  ░███   ░░████████░░█████  ███░░██████ ████████ ░██  ░██░░██████ ███ ███░██ ███  ░██ ██████   ░░██ ░░████████ ███ ███
  ░░░░░░░   ░░░     ░░░░░░░░  ░░░░░  ░░░  ░░░░░░ ░░░░░░░░  ░░   ░░  ░░░░░░ ░░░ ░░░ ░░ ░░░   ░░ ░░░░░░     ░░   ░░░░░░░░ ░░░ ░░░ 

注意:本脚本仅用于新服务器上实施部署数据使用,严禁在已运行数据库的主机上执行,以免发生数据丢失或者损坏,造成不可挽回的损失!!!                                                                                  

请选择安装模式 [单机(si)/单机ASM(sa)/集群(rac)] : rac

数据库安装模式: rac                                                                              

请选择数据库版本 [11/12/19/21] : 21

数据库版本:     21                                                                               

OracleShellInstall 开始安装,安装过程可查看日志: /soft/print_ora_install_20240426130641.log                                                                                  
正在检查操作系统是否符合安装条件......已完成 (耗时: 0 秒)
正在去除密码复杂度配置......已完成 (耗时: 0 秒)
正在配置 YUM 源......已完成 (耗时: 1 秒)
配置 root 用户互信......已完成 (耗时: 2 秒)
正在获取操作系统信息......已完成 (耗时: 0 秒)
正在配置 Swap......已完成 (耗时: 30 秒)
正在配置防火墙......已完成 (耗时: 2 秒)
正在配置 selinux......已完成 (耗时: 1 秒)
正在配置 nsyctl......已完成 (耗时: 1 秒)
正在安装依赖包......已完成 (耗时: 42 秒)
正在配置主机名和 /etc/hosts......已完成 (耗时: 0 秒)
正在创建用户和组......已完成 (耗时: 1 秒)
正在创建安装目录......已完成 (耗时: 1 秒)
正在配置 Avahi-daemon 服务......已完成 (耗时: 1 秒)
正在配置透明大页 && NUMA && 磁盘 IO 调度器......已完成 (耗时: 1 秒)
正在配置操作系统参数 sysctl......已完成 (耗时: 1 秒)
正在配置 RemoveIPC......已完成 (耗时: 1 秒)
正在配置用户限制 limit......已完成 (耗时: 1 秒)
正在配置 shm 目录......已完成 (耗时: 1 秒)
正在安装 rlwrap 插件......已完成 (耗时: 11 秒)
正在配置用户环境变量......已完成 (耗时: 1 秒)
正在配置 RAC 其他节点信息......已完成 (耗时: 117 秒)
正在配置 RAC 所有节点互信......已完成 (耗时: 12 秒)
正在解压 Grid 安装包以及补丁......已完成 (耗时: 165 秒)
正在解压 Oracle 软件以及补丁......已完成 (耗时: 130 秒)
正在安装 Grid 软件以及补丁......已完成 (耗时: 2015 秒)
正在创建 ASM 磁盘组......已完成 (耗时: 26 秒)
正在安装 Oracle 软件以及补丁......已完成 (耗时: 1840 秒)
正在创建数据库......已完成 (耗时: 1762 秒)
正在优化数据库......已完成 (耗时: 127 秒)

恭喜!Oracle RAC 安装成功 (耗时: 6318 秒),现在是否重启主机:[Y/N] Y

正在重启主机......

连接测试

查看系统版本:

[root@rac01 soft]# cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.9 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.9:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.9
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.9"

查看 Grid 版本以及补丁:

[grid@rac01:/home/grid]$ sqlplus -v

SQL*Plus: Release 21.0.0.0.0 - Production
Version 21.14.0.0.0

[grid@rac01:/home/grid]$ opatch lspatches
36460255;TOMCAT RELEASE UPDATE 21.0.0.0.0 (36460255)
36360767;RHP RELEASE UPDATE 21.14.0.0.0 (36360767)
36360764;ACFS RELEASE UPDATE 21.14.0.0.0 (36360764)
36360754;OCW RELEASE UPDATE 21.14.0.0.0 (36360754)
36352352;Database Release Update : 21.14.0.0.240416 (36352352)
36115667;DBWLM RELEASE UPDATE 21.0.0.0.0 (36115667)

OPatch succeeded.

查看集群:

[grid@rac01:/home/grid]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac01                    STABLE
               ONLINE  ONLINE       rac02                    STABLE
ora.chad
               ONLINE  ONLINE       rac01                    STABLE
               ONLINE  ONLINE       rac02                    STABLE
ora.net1.network
               ONLINE  ONLINE       rac01                    STABLE
               ONLINE  ONLINE       rac02                    STABLE
ora.ons
               ONLINE  ONLINE       rac01                    STABLE
               ONLINE  ONLINE       rac02                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac01                    STABLE
      2        ONLINE  ONLINE       rac02                    STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac01                    STABLE
      2        ONLINE  ONLINE       rac02                    STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac02                    STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac01                    STABLE
      2        ONLINE  ONLINE       rac02                    STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac01                    Started,STABLE
      2        ONLINE  ONLINE       rac02                    Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac01                    STABLE
      2        ONLINE  ONLINE       rac02                    STABLE
ora.cdp1.cdp
      1        ONLINE  ONLINE       rac02                    STABLE
ora.cvu
      1        ONLINE  ONLINE       rac02                    STABLE
ora.lucifer.db
      1        ONLINE  ONLINE       rac01                    Open,HOME=/u01/app/o
                                                             racle/product/21.3.0
                                                             /db,STABLE
      2        ONLINE  ONLINE       rac02                    Open,HOME=/u01/app/o
                                                             racle/product/21.3.0
                                                             /db,STABLE
ora.lucifer.oliver.pdb
      1        ONLINE  ONLINE       rac01                    STABLE
      2        OFFLINE OFFLINE                               STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac02                    STABLE
ora.rac01.vip
      1        ONLINE  ONLINE       rac01                    STABLE
ora.rac02.vip
      1        ONLINE  ONLINE       rac02                    STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac02                    STABLE
--------------------------------------------------------------------------------

查看 Oracle 版本以及补丁:

[oracle@rac01:/home/oracle]$ sqlplus -v

SQL*Plus: Release 21.0.0.0.0 - Production
Version 21.14.0.0.0

[oracle@rac01:/home/oracle]$ opatch lspatches
36360767;RHP RELEASE UPDATE 21.14.0.0.0 (36360767)
36360754;OCW RELEASE UPDATE 21.14.0.0.0 (36360754)
36352352;Database Release Update : 21.14.0.0.240416 (36352352)

OPatch succeeded.

连接数据库:

[oracle@rac01:/home/oracle]$ sas

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Apr 26 15:05:26 2024
Version 21.14.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.14.0.0.0

sys@LUCIFER 2024-04-26 15:05:26> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      lucifer
db_unique_name                       string      lucifer
global_names                         boolean     FALSE
instance_name                        string      lucifer1
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string
service_names                        string      lucifer
sys@LUCIFER 2024-04-26 15:05:32> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 OLIVER                         READ WRITE NO
sys@LUCIFER 2024-04-26 15:05:34> select instance_name,status from gv$instance;

INSTANCE_NAME    STATUS
---------------- ------------
lucifer1         OPEN
lucifer2         OPEN

数据库连接正常。