告别手动配置!用这个Shell脚本在openEuler 22.03上全自动部署Oracle 19C RAC集群
2026/6/3 15:37:26 网站建设 项目流程

全自动部署Oracle 19C RAC集群:openEuler环境下的DevOps实践

在当今企业级数据库部署中,Oracle RAC(Real Application Clusters)因其高可用性和可扩展性而广受欢迎。然而,传统的手动部署过程复杂且容易出错,特别是在国产操作系统openEuler上部署时,技术人员往往需要面对各种兼容性问题和配置挑战。本文将介绍如何通过自动化脚本在openEuler 22.03上实现Oracle 19C RAC集群的一键部署,大幅提升部署效率和可靠性。

1. 环境准备与前置条件

在开始自动化部署前,我们需要确保基础环境满足Oracle RAC的要求。openEuler 22.03作为华为推出的企业级Linux发行版,其稳定性和性能已得到广泛验证,是部署Oracle数据库的理想选择。

硬件要求

  • 至少两台物理服务器或虚拟机(节点)
  • 每节点建议配置:
    • 4核CPU或以上
    • 16GB内存或以上
    • 100GB系统磁盘空间
    • 共享存储(ASM磁盘组所需)

软件要求

  • openEuler 22.03 LTS-SP3操作系统
  • Oracle 19C RAC软件包(grid和database)
  • 自动化部署脚本(如OracleShellInstall)

网络配置

  • 每节点需要配置三个网络接口:
    • 公共网络(ens33):用于客户端访问
    • 私有网络(ens37):用于节点间通信
    • 存储网络(可选):用于共享存储访问
# 示例网络接口配置(节点1) ip a show ens33 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:51:f8:ca brd ff:ff:ff:ff:ff:ff inet 192.168.6.130/24 brd 192.168.6.255 scope global noprefixroute ens33 ip a show ens37 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:51:f8:de brd ff:ff:ff:ff:ff:ff inet 1.1.1.1/24 brd 1.1.1.255 scope global noprefixroute ens37

提示:确保所有节点的网络配置正确,特别是私有网络需要低延迟和高带宽,这对RAC性能至关重要。

2. 自动化脚本核心功能解析

OracleShellInstall脚本通过参数化设计实现了RAC部署的全自动化,大幅减少了人工干预。以下是脚本的核心参数及其作用:

参数示例值说明
-nopenEuler主机名前缀
-hnopenEuler01,openEuler02RAC节点主机名
-cnopenEuler-cls集群名称
-rp/-gp/-opwelcome1root/grid/oracle用户密码
-lfens33公共网络接口名
-pfens37私有网络接口名
-ri192.168.6.130,192.168.6.131节点公共IP
-vi192.168.6.132,192.168.6.133虚拟IP
-si192.168.6.134SCAN IP
-od/dev/sdbOCR ASM磁盘
-dd/dev/sdcDATA ASM磁盘
-olucifer数据库名

脚本执行流程主要包含以下阶段:

  1. 系统参数检查与优化
  2. 用户和组创建
  3. 内核参数配置
  4. 存储设备准备
  5. 软件包安装与解压
  6. Grid Infrastructure安装
  7. Oracle数据库软件安装
  8. 数据库创建与配置
# 典型执行命令示例 ./OracleShellInstall -n openEuler \ -hn openEuler01,openEuler02 \ -cn openEuler-cls \ -rp welcome1 -gp welcome1 -op welcome1 \ -lf ens33 -pf ens37 \ -ri 192.168.6.130,192.168.6.131 \ -vi 192.168.6.132,192.168.6.133 \ -si 192.168.6.134 \ -od /dev/sdb -dd /dev/sdc \ -o lucifer \ -ds AL32UTF8 -ns AL16UTF16 \ -redo 100 -dp oracle

3. 关键配置与优化项

自动化脚本在部署过程中会进行多项关键配置,确保Oracle RAC在openEuler上的最佳性能表现。

内核参数优化

# /etc/sysctl.conf 关键配置 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 7795077119 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 vm.swappiness = 10

用户资源限制

# /etc/security/limits.conf 配置 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 grid soft nofile 1024 grid hard nofile 65536

ASM磁盘配置: 脚本会自动识别并配置ASM磁盘,这是RAC共享存储的核心。典型的ASM磁盘组配置如下:

# ASM磁盘组信息查询 asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Name MOUNTED EXTERN N 512 4096 1048576 51200 51092 DATA/ MOUNTED EXTERN N 512 4096 4194304 10240 9900 OCR/

注意:ASM磁盘的权限和所有权必须正确配置,通常grid用户需要拥有asmadmin和asmdba组权限。

4. 部署验证与故障排查

部署完成后,需要进行全面验证以确保RAC集群正常运行。以下是关键检查点:

集群状态检查

# 检查集群资源状态 crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.DATA.dg 1 ONLINE ONLINE openEuler01 STABLE 2 ONLINE ONLINE openEuler02 STABLE ora.LISTENER.lsnr 1 ONLINE ONLINE openEuler01 STABLE 2 ONLINE ONLINE openEuler02 STABLE ora.OCR.dg 1 ONLINE ONLINE openEuler01 STABLE 2 ONLINE ONLINE openEuler02 STABLE ora.asm 1 ONLINE ONLINE openEuler01 Started,STABLE 2 ONLINE ONLINE openEuler02 Started,STABLE

数据库连接测试

-- 使用SQL*Plus连接测试 sqlplus sys/oracle@lucifer as sysdba SQL> SELECT instance_name, status FROM v$instance; INSTANCE_NAME STATUS --------------- -------- lucifer1 OPEN

常见问题排查

  1. ASM磁盘无法识别

    • 检查磁盘权限:ls -l /dev/asm*
    • 确认multipath配置:multipath -ll
    • 验证udev规则:cat /etc/udev/rules.d/99-oracle-asmdevices.rules
  2. 节点间通信问题

    • 测试私有网络连通性:ping 1.1.1.2(从节点1到节点2)
    • 检查SSH互信配置:ssh openEuler02 date
  3. 资源启动失败

    • 查看集群日志:crsctl lsct -a
    • 检查alert日志:tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log

5. 自动化部署的优势与扩展

与传统手动部署相比,自动化脚本带来了显著优势:

效率对比

任务手动部署时间自动化部署时间
系统配置2-4小时10分钟
软件安装3-5小时30分钟
数据库创建1-2小时15分钟
总耗时6-11小时约1小时

扩展应用场景

  1. 持续集成/交付:将脚本集成到CI/CD流水线中,实现数据库环境的快速部署和更新
  2. 多环境部署:通过参数调整,快速部署开发、测试、生产等不同环境的RAC集群
  3. 灾备系统搭建:结合存储复制技术,实现跨数据中心的自动化灾备部署

脚本自定义扩展: 对于有特殊需求的环境,可以修改脚本实现:

  • 自定义数据库参数模板
  • 集成特定补丁包
  • 添加后置检查任务
  • 实现与配置管理工具(如Ansible)的集成
# 示例:添加自定义检查任务 post_install_check() { echo "执行后置检查..." # 检查监听状态 lsnrctl status LISTENER # 检查数据库组件状态 sqlplus -s / as sysdba <<EOF SET PAGESIZE 1000 SELECT comp_name, version, status FROM dba_registry; EXIT; EOF }

通过自动化部署Oracle RAC集群,企业可以大幅降低部署成本,提高环境一致性,并为后续的运维自动化奠定基础。特别是在国产化替代背景下,openEuler与Oracle的结合为企业提供了可靠的技术选择。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询