前言

Oracle 一键安装脚本,演示 Oracle Linux 8.9 一键安装 Oracle 19C RAC(19.22)过程(全程无需人工干预)。(脚本包括 ORALCE PSU/OJVM 等补丁自动安装)

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

脚本第三代支持 N 节点一键安装,不限制节点数!

Oracle Linux 8.9 一键安装 Oracle 19C RAC(19.22)_oracle

安装准备

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

环境信息

# 主机版本
## 节点一
[root@oel01 soft]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.9

## 节点二
[root@oel02 soft]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.9

# 网络信息
## 节点一
[root@oel01 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:31:1e:07 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.6.180/24 brd 192.168.6.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe31:1e07/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:31:1e:11 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 2.2.2.1/24 brd 2.2.2.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe31:1e11/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

## 节点二
[root@oel02 ~]# ip a
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6f:8e:70 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.6.181/24 brd 192.168.6.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6f:8e70/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:6f:8e:7a brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 2.2.2.2/24 brd 2.2.2.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6f:8e7a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

# 挂载本地 ISO 镜像
## 节点一
[root@oel01 soft]# mount | grep iso9660 | grep -v "/run/media"
/dev/sr0 on /mnt type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8)
[root@oel01 soft]# df -h|grep /mnt
/dev/sr0              12G   12G     0 100% /mnt

## 节点二
[root@oel02 ~]# mount | grep iso9660 | grep -v "/run/media"
/dev/sr0 on /mnt type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8)
[root@oel02 ~]# df -h|grep /mnt
/dev/sr0              12G   12G     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@oel01 soft]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk
├─sda1        8:1    0  600M  0 part /boot/efi
├─sda2        8:2    0    1G  0 part /boot
└─sda3        8:3    0   98G  0 part
  ├─ol-root 252:0    0   90G  0 lvm  /
  └─ol-swap 252:1    0    8G  0 lvm  [SWAP]
sdb           8:16   0   10G  0 disk
sdc           8:32   0   50G  0 disk
sr0          11:0    1 11.6G  0 rom  /mnt

## 节点二
[root@oel02 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk
├─sda1        8:1    0  600M  0 part /boot/efi
├─sda2        8:2    0    1G  0 part /boot
└─sda3        8:3    0   98G  0 part
  ├─ol-root 252:0    0   90G  0 lvm  /
  └─ol-swap 252:1    0    8G  0 lvm  [SWAP]
sdb           8:16   0   10G  0 disk
sdc           8:32   0   50G  0 disk
sr0          11:0    1 11.6G  0 rom  /mnt

# 安装包存放在 /soft 目录下
[root@oel01 soft]# ll
-rwx------. 1 root root 3059705302 Apr 16 09:53 LINUX.X64_193000_db_home.zip
-rwx------. 1 root root 2889184573 Apr  3 16:22 LINUX.X64_193000_grid_home.zip
-rwxr-xr-x. 1 root root     195101 Apr 16 09:52 OracleShellInstall
-rwx------. 1 root root  127451050 Apr 16 09:52 p35926646_190000_Linux-x86-64.zip
-rwx------. 1 root root 3153297056 Apr  3 16:22 p35940989_190000_Linux-x86-64.zip
-rwx------. 1 root root  127774864 Apr  3 16:21 p6880880_190000_Linux-x86-64.zip
-rwx------. 1 root root     321590 Apr  3 16:20 rlwrap-0.44.tar.gz

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

安装命令

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

# 根据脚本 README 或者 -h 命令提示,编辑好一键安装命令,进入 /soft 目录执行安装:
./OracleShellInstall -n oel `# hostname prefix`\
-hn oel01,oel02 `# rac node hostname`\
-cn oel-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.180,192.168.6.181 `# rac node public ip`\
-vi 192.168.6.182,192.168.6.183 `# rac virtual ip`\
-si 192.168.6.184 `# rac scan ip`\
-od /dev/sdb `# rac ocr asm disk`\
-dd /dev/sdc `# rac data asm disk`\
-o lucifer `# dbname`\
-ds AL32UTF8 `# database character`\
-ns AL16UTF16 `# national character`\
-redo 100 `# redo size`\
-dp oracle `# sys/system password`\
-gpa 35940989 `# grid PSU/RU`\
-jpa 35926646 `# OJVM PSU/RU`\
-opd Y `# optimize db`

选择需要安装的模式以及版本,即可开始安装:

安装过程

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

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

数据库安装模式: rac                                                                              

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

数据库版本:     19                                                                               

OracleShellInstall 开始安装(安装过程可查看日志:/soft/print_ora_install_20240416101436.log)                                                                                  

正在检查操作系统是否符合安装条件......已完成 (耗时: 0 秒)
正在去除密码复杂度配置......已完成 (耗时: 0 秒)
正在配置 YUM 源......已完成 (耗时: 0 秒)
配置 root 用户互信......已完成 (耗时: 2 秒)
正在获取操作系统信息......已完成 (耗时: 1 秒)
正在配置 Swap......已完成 (耗时: 1 秒)
正在配置防火墙......已完成 (耗时: 1 秒)
正在配置 selinux......已完成 (耗时: 1 秒)
正在配置 nsyctl......已完成 (耗时: 1 秒)
正在安装依赖包......已完成 (耗时: 82 秒)
正在配置主机名和 /etc/hosts......已完成 (耗时: 0 秒)
正在创建用户和组......已完成 (耗时: 2 秒)
正在创建安装目录......已完成 (耗时: 1 秒)
正在配置 Avahi-daemon 服务......已完成 (耗时: 3 秒)
正在配置透明大页 && NUMA && 磁盘 IO 调度器......已完成 (耗时: 3 秒)
正在配置操作系统参数 sysctl......已完成 (耗时: 1 秒)
正在配置 RemoveIPC......已完成 (耗时: 1 秒)
正在配置用户限制 limit......已完成 (耗时: 1 秒)
正在配置 shm 目录......已完成 (耗时: 0 秒)
正在安装 rlwrap 插件......已完成 (耗时: 15 秒)
正在配置用户环境变量......已完成 (耗时: 1 秒)
正在配置 RAC 其他节点信息......已完成 (耗时: 139 秒)
正在配置 RAC 所有节点互信......已完成 (耗时: 10 秒)
正在解压 Grid 安装包以及补丁......已完成 (耗时: 183 秒)
正在解压 Oracle 软件以及补丁......已完成 (耗时: 118 秒)
正在安装 Grid 软件以及补丁......已完成 (耗时: 3229 秒)
正在创建 ASM 磁盘组......已完成 (耗时: 28 秒)
正在安装 Oracle 软件以及补丁......已完成 (耗时: 3025 秒)
正在创建数据库......已完成 (耗时: 2065 秒)
正在优化数据库......已完成 (耗时: 226 秒)

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

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

连接测试

查看系统版本:

[root@oel01 soft]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.9

查看 Grid 版本以及补丁:

[root@oel01:/root]$ so
[oracle@oel01:/home/oracle]$ exit
logout
[root@oel01:/root]$ sg
[grid@oel01:/home/grid]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

[grid@oel01:/home/grid]$ opatch lspatches
36115038;TOMCAT RELEASE UPDATE 19.0.0.0.0 (36115038)
35967489;OCW RELEASE UPDATE 19.22.0.0.0 (35967489)
35956421;ACFS RELEASE UPDATE 19.22.0.0.0 (35956421)
35943157;Database Release Update : 19.22.0.0.240116 (35943157)
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)

OPatch succeeded.

查看集群:

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

查看 Oracle 版本以及补丁:

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

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

[oracle@oel02:/home/oracle]$ opatch lspatches
35926646;OJVM RELEASE UPDATE: 19.22.0.0.240116 (35926646)
35967489;OCW RELEASE UPDATE 19.22.0.0.0 (35967489)
35943157;Database Release Update : 19.22.0.0.240116 (35943157)

OPatch succeeded.

连接数据库:

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

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 16 13:31:50 2024
Version 19.22.0.0.0

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

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

sys@LUCIFER 2024-04-16 13:31:53> 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-16 13:31:58> select instance_name,status from gv$instance;

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

数据库连接正常。