前言

Oracle 一键安装脚本,演示 Oracle Linux 8.10 ARM 一键安装 Oracle 19C RAC 过程(全程无需人工干预)。

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

安装准备

  • 1、系统组所有节点均安装好操作系统(支持最小化安装)
  • 2、网络组所有节点均配置好主机网络,至少需要一组公网 IP 地址和一组心跳 IP 地址
  • 3、存储组所有节点均配置并在主机层挂载好 ASM 磁盘,至少需要一组 OCR 和 DATA 磁盘组,虚拟化环境需要确保已开启磁盘的 UUID
  • 4、DBA 只需要在主节点创建软件目录:mkdir /soft
  • 5、DBA 只需要在主节点上传 Oracle 安装介质(基础包,补丁包)到 /soft 目录下,其他节点无需任何操作
  • 6、DBA 只需要在主节点上传 Oracle 一键安装脚本到 /soft 目录下,授予脚本执行权限:chmod +x OracleshellInstall
  • 7、DBA 所有节点均挂载主机 ISO 镜像,这里只需要 mount 上即可(这个很简单,不了解的可以百度下)
  • 8、根据脚本安装脚本以及实际情况,配置好脚本的安装参数,在主节点的 /soft 目录下执行一键安装即可。

环境信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# 主机版本
## 节点一
[root@oel810-arm64-01 ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.10
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.10
## 节点二
[root@oel810-arm64-02 ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

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

# 网络信息
## 节点一
[root@oel810-arm64-01 ~]# ip a
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1c:42:88:c4:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.160/24 brd 192.168.6.255 scope global noprefixroute enp0s5
valid_lft forever preferred_lft forever
inet6 fe80::21c:42ff:fe88:c4f2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1c:42:ea:76:65 brd ff:ff:ff:ff:ff:ff
inet 1.1.1.1/24 brd 1.1.1.255 scope global noprefixroute enp0s6
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:1:bf3e:8f8b:bd00:dfaa/64 scope global dynamic noprefixroute
valid_lft 2591892sec preferred_lft 604692sec
inet6 fe80::e35a:f835:fb73:437c/64 scope link noprefixroute
valid_lft forever preferred_lft forever

## 节点二
[root@oel810-arm64-02 ~]# ip a
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1c:42:54:36:8f brd ff:ff:ff:ff:ff:ff
inet 192.168.6.161/24 brd 192.168.6.255 scope global noprefixroute enp0s5
valid_lft forever preferred_lft forever
inet6 fe80::21c:42ff:fe54:368f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1c:42:a0:15:1c brd ff:ff:ff:ff:ff:ff
inet 1.1.1.2/24 brd 1.1.1.255 scope global noprefixroute enp0s6
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:1:21c:42ff:fea0:151c/64 scope global dynamic noprefixroute
valid_lft 2591879sec preferred_lft 604679sec
inet6 fe80::21c:42ff:fea0:151c/64 scope link noprefixroute
valid_lft forever preferred_lft forever

# 挂载本地 ISO 镜像
## 节点一
[root@oel810-arm64-01 ~]# mount /dev/sr0 /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@oel810-arm64-01 ~]# 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@oel810-arm64-01 ~]# df -h|grep /mnt
/dev/sr0 11G 11G 0 100% /mnt

## 节点二
[root@oel810-arm64-02 ~]# mount /dev/sr0 /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@oel810-arm64-02 ~]# 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@oel810-arm64-02 ~]# df -h|grep /mnt
/dev/sr0 11G 11G 0 100% /mnt

# 两节点均需执行,配置本地软件源(为了安装 iscsi,不需要使用 starwind 挂载共享存储可以不配置)
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
cat <<-EOF > /etc/yum.repos.d/local.repo
[server]
name=server
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

# 两节点均需执行,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@oel810-arm64-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 62.4G 0 part
├─ol-root 252:0 0 54.4G 0 lvm /
└─ol-swap 252:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 10.7G 0 rom /mnt
## 节点二
[root@oel810-arm64-02 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 62.4G 0 part
├─ol-root 252:0 0 54.4G 0 lvm /
└─ol-swap 252:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 10.7G 0 rom /mnt

# 安装包存放在 /soft 目录下
[root@oel810-arm64-01 soft]# ll
-rwx------. 1 root root 2415583176 Jun 27 12:58 LINUX.ARM64_1919000_db_home.zip
-rwx------. 1 root root 1777256239 Jun 27 13:33 LINUX.ARM64_1919000_grid_home.zip
-rwxr-xr-x. 1 root root 228591 Jun 27 12:57 OracleShellInstall
-rwx------. 1 root root 127544274 Jun 27 13:51 p36199232_190000_Linux-ARM-64.zip
-rwx------. 1 root root 1666821916 Jun 27 13:51 p36233126_190000_Linux-ARM-64.zip
-rwx------. 1 root root 71580594 Jun 27 13:51 p6880880_190000_Linux-ARM-64.zip

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

安装命令

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 根据脚本 README 或者 -h 命令提示,编辑好一键安装命令,进入 /soft 目录执行安装:
[root@oel810-arm64 ~]# cd /soft/
[root@oel810-arm64 soft]# chmod +x OracleShellInstall

./OracleShellInstall -n oel810-arm64 `# RAC 主机名前缀`\
-hn oel810-arm64-01,oel810-arm64-02 `# RAC 主机名`\
-cn oel810-cls `# RAC 集群名称`\
-sn oel810-scan `# RAC SCAN 名称`\
-rp oracle `# 主机 root 用户密码`\
-lf enp0s5 `# 主机网卡名称`\
-pf enp0s6 `# 主机心跳网卡名称`\
-ri 192.168.6.160,192.168.6.161 `# RAC 公网 IP`\
-vi 192.168.6.172,192.168.6.173 `# RAC 虚拟 IP`\
-si 192.168.6.175 `# RAC SCAN IP`\
-od /dev/sdb `# OCR 磁盘盘符名称`\
-dd /dev/sdc `# DATA 磁盘盘符名称`\
-o lucifer `# 数据库名称`\
-dp 'Passw0rd#PST' `# sys/system 用户密码`\
-ds AL32UTF8 `# 数据库字符集`\
-ns AL16UTF16 `# 国家字符集`\
-redo 10 `# 在线重做日志大小(M)`\
-gpa 36233126 `# grid PSU/RU 补丁编号`\
-jpa 36199232 `# OJVM PSU/RU 补丁编号`\
-opd Y `# 是否优化数据库`

安装过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
   ███████                             ██          ████████ ██               ██  ██ ██                    ██              ██  ██
██░░░░░██ ░██ ██░░░░░░ ░██ ░██ ░██░██ ░██ ░██ ░██
██ ░░██ ██████ ██████ █████ ░██ █████ ░██ ░██ █████ ░██ ░██░██ ███████ ██████ ██████ ██████ ░██ ░██
░██ ░██░░██░░█ ░░░░░░██ ██░░░██ ░██ ██░░░██░█████████░██████ ██░░░██ ░██ ░██░██░░██░░░██ ██░░░░ ░░░██░ ░░░░░░██ ░██ ░██
░██ ░██ ░██ ░ ███████ ░██ ░░ ░██░███████░░░░░░░░██░██░░░██░███████ ░██ ░██░██ ░██ ░██░░█████ ░██ ███████ ░██ ░██
░░██ ██ ░██ ██░░░░██ ░██ ██ ░██░██░░░░ ░██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██ ░░░░░██ ░██ ██░░░░██ ░██ ░██
░░███████ ░███ ░░████████░░█████ ███░░██████ ████████ ░██ ░██░░██████ ███ ███░██ ███ ░██ ██████ ░░██ ░░████████ ███ ███
░░░░░░░ ░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░░ ░░░░░░░░ ░░ ░░ ░░░░░░ ░░░ ░░░ ░░ ░░░ ░░ ░░░░░░ ░░ ░░░░░░░░ ░░░ ░░░


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

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

数据库安装模式: rac

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

数据库版本: 19

正在进行安装前检查,请稍等......

正在检测安装包 /soft/LINUX.ARM64_1919000_grid_home.zip 的 MD5 值是否正确,请稍等......
正在检测安装包 /soft/LINUX.ARM64_1919000_db_home.zip 的 MD5 值是否正确,请稍等......

OracleShellInstall 开始安装,详细安装过程可查看日志: tail -2000f /soft/print_shell_install_20240627160521.log
正在获取操作系统信息......已完成 (耗时: 1 秒)
正在配置本地软件源......已完成 (耗时: 1 秒)
正在安装依赖包......已完成 (耗时: 22 秒)
配置 root 用户互信......已完成 (耗时: 1 秒)
正在检查并更新 RAC 主机时间......已完成 (耗时: 1 秒)
正在清理 Oracle 旧环境......已完成 (耗时: 1 秒)
正在禁用防火墙......已完成 (耗时: 1 秒)
正在禁用 selinux......已完成 (耗时: 1 秒)
正在配置 nsyctl......已完成 (耗时: 0 秒)
正在配置主机名和 /etc/hosts......已完成 (耗时: 0 秒)
正在创建用户和组......已完成 (耗时: 1 秒)
正在创建安装目录......已完成 (耗时: 1 秒)
正在配置透明大页 && NUMA && 磁盘 IO 调度器......已完成 (耗时: 1 秒)
正在配置操作系统参数 sysctl......已完成 (耗时: 1 秒)
正在配置 RemoveIPC......已完成 (耗时: 0 秒)
正在配置用户限制 limit......已完成 (耗时: 1 秒)
正在配置 shm 目录......已完成 (耗时: 2 秒)
正在配置用户环境变量......已完成 (耗时: 1 秒)
正在配置 RAC 其他节点信息......已完成 (耗时: 41 秒)
正在配置 RAC 所有节点互信......已完成 (耗时: 7 秒)
正在解压 Grid 安装包以及补丁......已完成 (耗时: 57 秒)
正在解压 Oracle 软件以及补丁......已完成 (耗时: 51 秒)
正在安装 Grid 软件以及补丁......已完成 (耗时: 817 秒)
正在创建 ASM 磁盘组......已完成 (耗时: 25 秒)
正在安装 Oracle 软件以及补丁......已完成 (耗时: 1168 秒)
正在创建数据库......已完成 (耗时: 913 秒)
正在优化数据库......已完成 (耗时: 15 秒)

恭喜!Oracle 一键安装执行完成 (耗时: 3137 秒),现在是否重启主机:[Y/N] Y

正在重启节点 192.168.6.161 主机......

正在重启当前节点主机......

连接测试

查看系统版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@oel810-arm64-01:/root]# cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

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

查看 Grid 版本以及补丁:

1
2
3
4
5
6
7
8
9
10
11
12
13
[grid@oel810-arm64-01:/home/grid]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

[grid@oel810-arm64-01:/home/grid]$ opatch lspatches
36460248;TOMCAT RELEASE UPDATE 19.0.0.0.0 (36460248)
36383196;DBWLM RELEASE UPDATE 19.0.0.0.0 (36383196)
36240578;OCW RELEASE UPDATE 19.23.0.0.0 (36240578)
36233343;ACFS RELEASE UPDATE 19.23.0.0.0 (36233343)
36233263;Database Release Update : 19.23.0.0.240416 (36233263)

OPatch succeeded.

查看集群:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[grid@oel810-arm64-01:/home/grid]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE oel810-arm64-01 STABLE
ONLINE ONLINE oel810-arm64-02 STABLE
ora.chad
ONLINE ONLINE oel810-arm64-01 STABLE
ONLINE ONLINE oel810-arm64-02 STABLE
ora.net1.network
ONLINE ONLINE oel810-arm64-01 STABLE
ONLINE ONLINE oel810-arm64-02 STABLE
ora.ons
ONLINE ONLINE oel810-arm64-01 STABLE
ONLINE ONLINE oel810-arm64-02 STABLE
ora.proxy_advm
OFFLINE OFFLINE oel810-arm64-01 STABLE
OFFLINE OFFLINE oel810-arm64-02 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE oel810-arm64-01 STABLE
2 ONLINE ONLINE oel810-arm64-02 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE oel810-arm64-01 STABLE
2 ONLINE ONLINE oel810-arm64-02 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE oel810-arm64-02 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE oel810-arm64-01 STABLE
2 ONLINE ONLINE oel810-arm64-02 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE oel810-arm64-01 Started,STABLE
2 ONLINE ONLINE oel810-arm64-02 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE oel810-arm64-01 STABLE
2 ONLINE ONLINE oel810-arm64-02 STABLE
ora.cvu
1 ONLINE ONLINE oel810-arm64-02 STABLE
ora.lucifer.db
1 ONLINE ONLINE oel810-arm64-01 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
2 ONLINE ONLINE oel810-arm64-02 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
ora.oel810-arm64-01.vip
1 ONLINE ONLINE oel810-arm64-01 STABLE
ora.oel810-arm64-02.vip
1 ONLINE ONLINE oel810-arm64-02 STABLE
ora.qosmserver
1 ONLINE ONLINE oel810-arm64-02 STABLE
ora.scan1.vip
1 ONLINE ONLINE oel810-arm64-02 STABLE
--------------------------------------------------------------------------------

查看 ASM 磁盘组:

1
2
3
4
[grid@oel810-arm64-01:/home/grid]$ asmcmd lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 20480 17836 0 17836 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 51200 50860 0 50860 0 Y OCR/

查看 Oracle 版本以及补丁:

1
2
3
4
5
6
7
8
9
10
11
[oracle@oel810-arm64-01:/home/oracle]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

[oracle@oel810-arm64-01:/home/oracle]$ opatch lspatches
36199232;OJVM RELEASE UPDATE: 19.23.0.0.240416 (36199232)
36240578;OCW RELEASE UPDATE 19.23.0.0.0 (36240578)
36233263;Database Release Update : 19.23.0.0.240416 (36233263)

OPatch succeeded.

连接数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[oracle@oel810-arm64-01:/home/oracle]$ sas

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 27 17:09:37 2024
Version 19.23.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.23.0.0.0

sys@LUCIFER 2024-06-27 17:09:37> 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-06-27 17:09:40> select instance_name,status from gv$instance;

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

数据库连接正常。