前言
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 目录下执行一键安装即可。
环境信息
# 主机版本
## 节点一
[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
确保安装环境准备完成后,即可执行一键安装。
安装命令
使用标准生产环境安装参数(安装过程若失败,脚本支持重复执行安装):
# 根据脚本 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 `# 是否优化数据库`
安装过程
███████ ██ ████████ ██ ██ ██ ██ ██ ██ ██
██░░░░░██ ░██ ██░░░░░░ ░██ ░██ ░██░██ ░██ ░██ ░██
██ ░░██ ██████ ██████ █████ ░██ █████ ░██ ░██ █████ ░██ ░██░██ ███████ ██████ ██████ ██████ ░██ ░██
░██ ░██░░██░░█ ░░░░░░██ ██░░░██ ░██ ██░░░██░█████████░██████ ██░░░██ ░██ ░██░██░░██░░░██ ██░░░░ ░░░██░ ░░░░░░██ ░██ ░██
░██ ░██ ░██ ░ ███████ ░██ ░░ ░██░███████░░░░░░░░██░██░░░██░███████ ░██ ░██░██ ░██ ░██░░█████ ░██ ███████ ░██ ░██
░░██ ██ ░██ ██░░░░██ ░██ ██ ░██░██░░░░ ░██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██ ░░░░░██ ░██ ██░░░░██ ░██ ░██
░░███████ ░███ ░░████████░░█████ ███░░██████ ████████ ░██ ░██░░██████ ███ ███░██ ███ ░██ ██████ ░░██ ░░████████ ███ ███
░░░░░░░ ░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░░ ░░░░░░░░ ░░ ░░ ░░░░░░ ░░░ ░░░ ░░ ░░░ ░░ ░░░░░░ ░░ ░░░░░░░░ ░░░ ░░░
注意:本脚本仅用于新服务器上实施部署数据库使用,严禁在已运行数据库的主机上执行,以免发生数据丢失或者损坏,造成不可挽回的损失!!!
请选择安装模式 [单机(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 主机......
正在重启当前节点主机......
连接测试
查看系统版本:
[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 版本以及补丁:
[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.
查看集群:
[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 磁盘组:
[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 版本以及补丁:
[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.
连接数据库:
[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
数据库连接正常。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。