全自动部署Oracle 19C RAC集群openEuler环境下的DevOps实践在当今企业级数据库部署中Oracle RACReal 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数据库名脚本执行流程主要包含以下阶段系统参数检查与优化用户和组创建内核参数配置存储设备准备软件包安装与解压Grid Infrastructure安装Oracle数据库软件安装数据库创建与配置# 典型执行命令示例 ./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 oracle3. 关键配置与优化项自动化脚本在部署过程中会进行多项关键配置确保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 65536ASM磁盘配置 脚本会自动识别并配置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/oraclelucifer as sysdba SQL SELECT instance_name, status FROM v$instance; INSTANCE_NAME STATUS --------------- -------- lucifer1 OPEN常见问题排查ASM磁盘无法识别检查磁盘权限ls -l /dev/asm*确认multipath配置multipath -ll验证udev规则cat /etc/udev/rules.d/99-oracle-asmdevices.rules节点间通信问题测试私有网络连通性ping 1.1.1.2从节点1到节点2检查SSH互信配置ssh openEuler02 date资源启动失败查看集群日志crsctl lsct -a检查alert日志tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log5. 自动化部署的优势与扩展与传统手动部署相比自动化脚本带来了显著优势效率对比任务手动部署时间自动化部署时间系统配置2-4小时10分钟软件安装3-5小时30分钟数据库创建1-2小时15分钟总耗时6-11小时约1小时扩展应用场景持续集成/交付将脚本集成到CI/CD流水线中实现数据库环境的快速部署和更新多环境部署通过参数调整快速部署开发、测试、生产等不同环境的RAC集群灾备系统搭建结合存储复制技术实现跨数据中心的自动化灾备部署脚本自定义扩展 对于有特殊需求的环境可以修改脚本实现自定义数据库参数模板集成特定补丁包添加后置检查任务实现与配置管理工具如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的结合为企业提供了可靠的技术选择。
告别手动配置!用这个Shell脚本在openEuler 22.03上全自动部署Oracle 19C RAC集群
发布时间:2026/6/3 15:37:33
全自动部署Oracle 19C RAC集群openEuler环境下的DevOps实践在当今企业级数据库部署中Oracle RACReal 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数据库名脚本执行流程主要包含以下阶段系统参数检查与优化用户和组创建内核参数配置存储设备准备软件包安装与解压Grid Infrastructure安装Oracle数据库软件安装数据库创建与配置# 典型执行命令示例 ./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 oracle3. 关键配置与优化项自动化脚本在部署过程中会进行多项关键配置确保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 65536ASM磁盘配置 脚本会自动识别并配置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/oraclelucifer as sysdba SQL SELECT instance_name, status FROM v$instance; INSTANCE_NAME STATUS --------------- -------- lucifer1 OPEN常见问题排查ASM磁盘无法识别检查磁盘权限ls -l /dev/asm*确认multipath配置multipath -ll验证udev规则cat /etc/udev/rules.d/99-oracle-asmdevices.rules节点间通信问题测试私有网络连通性ping 1.1.1.2从节点1到节点2检查SSH互信配置ssh openEuler02 date资源启动失败查看集群日志crsctl lsct -a检查alert日志tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log5. 自动化部署的优势与扩展与传统手动部署相比自动化脚本带来了显著优势效率对比任务手动部署时间自动化部署时间系统配置2-4小时10分钟软件安装3-5小时30分钟数据库创建1-2小时15分钟总耗时6-11小时约1小时扩展应用场景持续集成/交付将脚本集成到CI/CD流水线中实现数据库环境的快速部署和更新多环境部署通过参数调整快速部署开发、测试、生产等不同环境的RAC集群灾备系统搭建结合存储复制技术实现跨数据中心的自动化灾备部署脚本自定义扩展 对于有特殊需求的环境可以修改脚本实现自定义数据库参数模板集成特定补丁包添加后置检查任务实现与配置管理工具如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的结合为企业提供了可靠的技术选择。