工具亮点

  • 🚀 全自动化部署:一键完成从系统配置到数据库创建的全流程;

  • ⏱️ 极速安装:30分钟内完成双节点RAC部署;

  • 🔧 智能优化:自动完成系统参数调优和数据库最佳实践配置;

  • 📝 实时日志:详细的安装日志,便于问题排查;

  • 🎯 多版本支持:支持Oracle 11g/12c/19c/21c/23ai全系列版本;

环境信息

本次部署采用VMware虚拟化平台,双节点RAC架构,充分验证了脚本在企业级环境下的稳定性和可靠性。

主机版本:

[root@orcl1:/root]# cat /etc/os-release 
NAME="Red Hat Enterprise Linux"
VERSION="8.10 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.10 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.10
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.10"

IP 信息(脚本会自动识别并配置网络):

[root@orcl1:/root]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:31:0c:47 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 10.168.1.160/24 brd 10.168.1.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet 10.168.1.162/24 brd 10.168.1.255 scope global secondary ens192:1
       valid_lft forever preferred_lft forever
    inet6 fd97:cf9e:1fd5:0:20c:29ff:fe31:c47/64 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe31:c47/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:0c:51 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.31.186/24 brd 192.168.31.255 scope global dynamic noprefixroute ens224
       valid_lft 36956sec preferred_lft 36956sec
    inet 169.254.24.108/19 brd 169.254.31.255 scope global ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::b38e:62d8:58f:977a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

磁盘信息(无需手动配置,脚本自动识别并创建ASM磁盘组):

[root@orcl1:/root]# 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 98.4G  0 part  
  ├─rhel-root 253:0    0 60.8G  0 lvm   /
  ├─rhel-swap 253:1    0  7.9G  0 lvm   [SWAP]
  └─rhel-home 253:2    0 29.7G  0 lvm   /home
sdb             8:16   0   10G  0 disk  
sdc             8:32   0   10G  0 disk  
sdd             8:48   0   10G  0 disk   
sde             8:64   0  100G  0 disk  
sr0            11:0    1 13.3G  0 rom 

一键部署演示

准备工作

只需上传三个文件到服务器即可开始安装:

[root@orcl1:/soft]# ls
LINUX.X64_235000_db_home.zip       # Oracle Database 23ai 安装包
LINUX.X64_235000_grid_home.zip     # Grid Infrastructure 23ai 安装包
OracleShellInstall                 # 智能安装脚本

执行安装过程

在主节点执行一键安装,整个过程完全自动化,无需人工干预:

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


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

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

数据库安装模式: rac                                                                              

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

数据库版本:     23                                                                               

OracleShellInstall 开始安装,详细安装过程可查看日志: tail -2000f /soft/print_shell_install_20250825213547.log                                                                                  

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

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

正在配置本地软件源......已完成 (耗时: 1 秒)
配置 root 用户互信......已完成 (耗时: 1 秒)
正在检查并更新 RAC 主机时间......已完成 (耗时: 1 秒)
正在获取操作系统信息......已完成 (耗时: 1 秒)
正在安装依赖包......已完成 (耗时: 62 秒)
正在禁用防火墙......已完成 (耗时: 1 秒)
正在禁用 selinux......已完成 (耗时: 1 秒)
正在配置 nsyctl......已完成 (耗时: 1 秒)
正在配置主机名和 hosts 文件......已完成 (耗时: 1 秒)
正在创建用户和组......已完成 (耗时: 1 秒)
正在创建安装目录......已完成 (耗时: 1 秒)
正在配置 Avahi-daemon 服务......已完成 (耗时: 1 秒)
正在配置透明大页 && NUMA && 磁盘 IO 调度器......已完成 (耗时: 1 秒)
正在配置操作系统参数 sysctl......已完成 (耗时: 1 秒)
正在配置 RemoveIPC......已完成 (耗时: 1 秒)
正在配置用户限制 limit......已完成 (耗时: 1 秒)
正在配置 shm 目录......已完成 (耗时: 1 秒)
正在配置用户环境变量......已完成 (耗时: 1 秒)
正在配置 RAC 其他节点信息......已完成 (耗时: 87 秒)
正在配置 RAC 所有节点互信......已完成 (耗时: 11 秒)
正在解压 Grid 安装包以及补丁......已完成 (耗时: 22 秒)
正在解压 Oracle 软件以及补丁......已完成 (耗时: 43 秒)
正在安装 Grid 软件以及补丁......已完成 (耗时: 477 秒)
正在创建 ASM 磁盘组......已完成 (耗时: 11 秒)
正在安装 Oracle 软件以及补丁......已完成 (耗时: 366 秒)
正在创建数据库......已完成 (耗时: 666 秒)
正在优化数据库......已完成 (耗时: 154 秒)

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

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

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

安装过程解析

从上面的输出可以看到,OracleShellInstall 脚本自动完成了以下关键步骤:

系统层面配置(自动化率100%)

  • ✅ MD5完整性校验,确保安装包安全

  • ✅ 自动配置本地YUM源,解决依赖问题

  • ✅ 智能配置节点间SSH互信

  • ✅ 自动同步集群时间,避免时钟偏差

  • ✅ 一键安装所有必需的系统依赖包

  • ✅ 自动禁用防火墙和SELinux

  • ✅ 优化系统内核参数(sysctl、limit等)

  • ✅ 配置透明大页、NUMA、IO调度器等性能参数

Oracle组件安装(智能化部署)

  • ✅ 自动创建oracle/grid用户和组

  • ✅ 智能规划并创建目录结构

  • ✅ 自动解压并安装Grid Infrastructure

  • ✅ 智能创建ASM磁盘组(OCR/DATA)

  • ✅ 自动安装Oracle Database软件

  • ✅ 一键创建RAC数据库实例

  • ✅ 应用Oracle最佳实践优化参数

部署验证

集群健康检查

重启后查看集群状态,所有组件运行正常:

[root@orcl1:/soft]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       orcl1                    STABLE
               ONLINE  ONLINE       orcl2                    STABLE
ora.chad
               ONLINE  ONLINE       orcl1                    STABLE
               ONLINE  ONLINE       orcl2                    STABLE
ora.helper
               OFFLINE OFFLINE      orcl1                    IDLE,STABLE
               OFFLINE OFFLINE      orcl2                    IDLE,STABLE
ora.net1.network
               ONLINE  ONLINE       orcl1                    STABLE
               ONLINE  ONLINE       orcl2                    STABLE
ora.ons
               ONLINE  ONLINE       orcl1                    STABLE
               ONLINE  ONLINE       orcl2                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       orcl1                    STABLE
      2        ONLINE  ONLINE       orcl2                    STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       orcl1                    STABLE
      2        ONLINE  ONLINE       orcl2                    STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       orcl2                    STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       orcl1                    STABLE
      2        ONLINE  ONLINE       orcl2                    STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       orcl1                    Started,STABLE
      2        ONLINE  ONLINE       orcl2                    Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       orcl1                    STABLE
      2        ONLINE  ONLINE       orcl2                    STABLE
ora.cdp1.cdp
      1        ONLINE  ONLINE       orcl2                    STABLE
ora.cvu
      1        ONLINE  ONLINE       orcl2                    STABLE
ora.orcl.db
      1        ONLINE  ONLINE       orcl1                    Open,HOME=/u01/app/o
                                                             racle/product/23.5.0
                                                             /db,STABLE
      2        ONLINE  ONLINE       orcl2                    Open,HOME=/u01/app/o
                                                             racle/product/23.5.0
                                                             /db,STABLE
ora.orcl.pdb01.pdb
      1        ONLINE  ONLINE       orcl1                    READ WRITE,STABLE
      2        OFFLINE OFFLINE                               STABLE
ora.orcl1.vip
      1        ONLINE  ONLINE       orcl1                    STABLE
ora.orcl2.vip
      1        ONLINE  ONLINE       orcl2                    STABLE
ora.rhpserver
      1        OFFLINE OFFLINE                               STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       orcl2                    STABLE
--------------------------------------------------------------------------------

数据库实例状态

双节点实例运行状态良好:

[grid@orcl1:/home/grid]$ srvctl status database -d orcl
实例 orcl1 正在节点 orcl1 上运行
实例 orcl2 正在节点 orcl2 上运行

ASM存储状态

ASM磁盘组自动创建并优化配置:

[grid@orcl1:/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    102400    68952                0           68952              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304     30720    29684            10240            9722              0             Y  OCR/

核心优势总结

🎯 为什么选择 OracleShellInstall?

1. 极致的效率提升

  • 传统手工部署:4-8小时(经验丰富的DBA);

  • 使用本脚本:30分钟(零基础也能操作);

  • 效率提升:800%以上

2. 降低技术门槛

  • 无需深入了解Oracle RAC架构;

  • 无需记忆复杂的配置参数;

  • 无需手动处理各种依赖关系;

  • 让初级DBA也能完成高级部署任务

3. 规范化部署

  • 遵循Oracle官方最佳实践;

  • 统一的部署标准,避免配置差异;

  • 内置性能优化参数;

  • 确保每次部署的一致性和稳定性

4. 智能容错机制

  • 自动检测环境兼容性;

  • MD5校验确保安装包完整性;

  • 实时日志记录,便于问题追踪;

  • 大幅降低部署失败风险

5. 全版本支持

  • Oracle 11gR2;

  • Oracle 12cR2;

  • Oracle 19c;

  • Oracle 21c;

  • Oracle 23ai;

  • 一个脚本搞定所有版本

📊 适用场景

  • ✅ 开发测试环境快速搭建

  • ✅ POC项目验证

  • ✅ 培训环境批量部署

  • ✅ 生产环境标准化部署

  • ✅ 灾备环境快速重建

⚠️ 使用建议

  1. 环境要求:建议在全新的操作系统上执行,避免与现有配置冲突;

  2. 资源配置:确保系统资源满足Oracle官方最低要求;

  3. 网络规划:提前规划好Public/Private/VIP等网络配置;

  4. 存储准备:确保ASM磁盘已经准备就绪;

写在最后

OracleShellInstall 不仅仅是一个安装脚本,更是Oracle DBA的得力助手。它将复杂的RAC部署过程标准化、自动化,让DBA能够将更多精力投入到数据库优化、架构设计等更有价值的工作中。

随着Oracle 23ai正式版的即将发布,这个工具将帮助更多企业快速拥抱新版本带来的创新特性。无论您是经验丰富的资深DBA,还是刚入门的初学者,OracleShellInstall 都能成为您的最佳部署伙伴。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐