1. 环境准备与补丁整合在openEuler 22.03 LTS上部署Oracle 19c最关键的准备工作就是补丁整合。我刚开始尝试时直接使用官方基础安装包LINUX.X64_193000_db_home.zip结果在安装到11%时就遇到了经典的all_no_orcl报错。经过排查发现这是因为openEuler基于RHEL9内核而Oracle 19c官方对RHEL9的支持需要特定补丁。必须准备的补丁包包括p35775632_190000_Linux-x86-64.zip基础兼容性补丁p35943157_190000_Linux-x86-64.zip19.22版本升级包p6880880_190000_Linux-x86-64.zipOPatch工具更新实际操作中我建议创建一个专用目录存放这些文件mkdir -p /home/oracle/database cd /home/oracle/database把所有补丁包和安装文件都上传到这个目录。这样后续操作会更加清晰不会出现文件散落各处的情况。1.1 系统环境配置在开始安装前有两个关键环境变量必须设置export CV_ASSUME_DISTIDRHEL7.6 export LANGen_US第一个变量是告诉Oracle安装程序将系统识别为RHEL7.6这是绕过兼容性检查的关键。第二个变量确保安装过程中的语言环境是英文避免中文环境可能导致的乱码问题。此外还需要检查一些基础依赖包是否安装yum install -y binutils compat-libcap1 compat-libstdc gcc gcc-c glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc-devel libxcb libX11 libXau libXi libXtst make nfs-utils net-tools smartmontools sysstat这些依赖包是Oracle运行的基础环境缺少任何一个都可能导致安装失败或运行异常。2. 安装过程详解2.1 初始安装与补丁应用首先解压基础安装包到ORACLE_HOME目录mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1接下来处理关键补丁p35775632unzip p35775632_190000_Linux-x86-64.zip cp stubs.tar $ORACLE_HOME/lib/stubs/ cd $ORACLE_HOME/lib/stubs/ tar xvf stubs.tar这个补丁包含了RHEL9兼容所需的库文件是解决all_no_orcl错误的核心。2.2 OPatch工具升级Oracle的补丁管理工具OPatch也需要先升级cd /u01/app/oracle/product/19.0.0/dbhome_1 mv OPatch OPatch.bak unzip p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.0.0/dbhome_1升级后的OPatch才能支持后续的补丁应用操作。记得检查OPatch版本$ORACLE_HOME/OPatch/opatch version应该显示版本号不低于12.2.0.1.29。3. 数据库版本升级基础安装完成后我们需要将数据库升级到19.22版本cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller -applyRU /home/oracle/database/35943157 -silent这个升级过程大约需要20-30分钟取决于服务器性能。升级完成后可以通过以下命令验证sqlplus / as sysdba SELECT * FROM v$version;应该显示Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.22.0.0.0。3.1 常见问题排查在升级过程中可能会遇到以下问题空间不足确保/tmp目录至少有5GB可用空间权限问题所有操作都应在oracle用户下执行环境变量未设置确认ORACLE_HOME、PATH等变量正确配置如果升级失败可以查看/tmp目录下的日志文件通常文件名格式为InstallActions[日期时间]的目录中包含详细错误信息。4. 制作定制化安装包完成上述步骤后我们已经拥有了一个打好补丁、升级到最新版本的ORACLE_HOME。为了后续在其他openEuler服务器上快速部署可以将其打包成定制化安装包tar -czvf oracle19c_19.22_openEuler.tar.gz -C /u01/app/oracle/product/19.0.0 dbhome_1这个压缩包包含了所有必要的补丁和配置使用时只需mkdir -p /u01/app/oracle/product/19.0.0 tar -xzvf oracle19c_19.22_openEuler.tar.gz -C /u01/app/oracle/product/19.0.04.1 自动化部署脚本为了进一步简化部署可以创建一个自动化脚本setup_oracle.sh#!/bin/bash export ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH # 解压定制化安装包 tar -xzvf oracle19c_19.22_openEuler.tar.gz -C /u01/app/oracle/product/19.0.0 # 执行后续配置 $ORACLE_HOME/root.sh这个脚本可以处理环境变量设置、安装包解压和基础配置等重复性工作真正实现一键部署。5. 性能优化建议部署完成后针对openEuler环境可以进行一些特定优化内核参数调整echo kernel.sem 250 32000 100 128 /etc/sysctl.conf echo fs.file-max 6815744 /etc/sysctl.conf sysctl -pOracle内存参数配置ALTER SYSTEM SET sga_target4G SCOPEspfile; ALTER SYSTEM SET pga_aggregate_target2G SCOPEspfile;存储I/O优化ALTER SYSTEM SET disk_asynch_ioTRUE SCOPEspfile; ALTER SYSTEM SET filesystemio_optionsSETALL SCOPEspfile;这些优化可以根据实际服务器配置进行调整特别是内存参数需要根据可用物理内存大小进行合理设置。