CentOS7下Oracle19C静默安装全攻略(避坑指南)

张开发
2026/4/12 9:47:57 15 分钟阅读

分享文章

CentOS7下Oracle19C静默安装全攻略(避坑指南)
1. 环境准备与依赖检查在CentOS7上安装Oracle19c前系统环境配置是决定成败的关键。我曾在测试环境中因跳过内核参数调整导致数据库实例无法启动浪费了整整一天时间排查问题。以下是经过实战验证的完整配置流程操作系统要求确认系统版本为CentOS 7.4及以上推荐7.9内核版本需≥3.10.0-862。可通过命令验证cat /etc/redhat-release uname -r依赖包安装Oracle19c需要40个系统包支持建议使用预安装包简化流程# 安装官方预配置包自动处理依赖 wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm # 手动补充常见缺失依赖 yum install -y bc binutils compat-libcap1 compat-libstdc-33 elfutils-libelf-devel ksh libaio libXrender内核参数优化编辑/etc/sysctl.conf添加以下参数这些值来自Oracle官方推荐配置fs.aio-max-nr 1048576 kernel.shmmax 4398046511104 # 物理内存的80% kernel.shmall 1073741824 # 值shmmax/页大小(4096) net.ipv4.ip_local_port_range 9000 65500执行sysctl -p生效后建议重启系统。我曾遇到共享内存不足导致ORA-27102错误就是因shmmax设置过低。用户资源限制在/etc/security/limits.conf中为oracle用户添加oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240这个配置直接影响数据库并发连接能力生产环境需根据实际负载调整。2. 软件安装与目录配置用户与目录创建Oracle要求严格的权限控制按以下步骤操作可避免75%的权限问题# 创建用户组注意gid顺序 groupadd -g 54321 oinstall groupadd -g 54322 dba # 创建oracle用户并设置密码 useradd -u 54321 -g oinstall -G dba oracle passwd oracle # 建议密码包含大小写字母和数字 # 创建ORACLE_BASE目录结构 mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01环境变量配置oracle用户的~/.bash_profile中必须包含以下关键变量export ORACLE_SIDORCLCDB # CDB模式实例名 export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:/usr/lib特别注意如果使用PDB架构ORACLE_SID应设置为CDB名称如ORCLCDB而非PDB名称。软件包解压将Oracle安装包LINUX.X64_193000_db_home.zip上传至$ORACLE_HOME后su - oracle cd $ORACLE_HOME unzip -q LINUX.X64_193000_db_home.zip rm LINUX.X64_193000_db_home.zip # 释放空间3. 静默安装实战响应文件配置静默安装的核心是修改$ORACLE_HOME/install/response/db_install.rsporacle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME$ORACLE_HOME ORACLE_BASE$ORACLE_BASE oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPoper DECLINE_SECURITY_UPDATEStrue执行安装命令以下命令组合了错误重试和日志输出cd $ORACLE_HOME ./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp \ -ignorePrereqFailure -waitforcompletion /tmp/oracle_install.log 21 # 监控安装进度另开终端 tail -f /tmp/oracle_install.log当看到Successfully Setup Software时需要在root下执行两个脚本/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.3.0/dbhome_1/root.sh常见报错处理INS-32035磁盘空间不足需确保/tmp有至少1GB空间INS-30131检查/etc/hosts是否包含正确的主机名映射OUI-25031手动创建/etc/oraInst.loc并设置权限4. 数据库创建与配置静默建库命令通过dbca创建CDBPDB架构dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName ORCLCDB -sid ORCLCDB \ -createAsContainerDatabase true -numberOfPDBs 1 -pdbName ORCLPDB \ -sysPassword Oracle123 -systemPassword Oracle123 \ -emConfiguration NONE \ -storageType FS \ -datafileDestination /u01/app/oracle/oradata \ -characterSet AL32UTF8 \ -totalMemory 2048 \ -databaseType OLTP关键参数说明-totalMemory分配内存(MB)建议不超过物理内存70%-characterSet中文环境必须选AL32UTF8-pdbName可创建多个PDB用逗号分隔监听器配置使用netca静默模式netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp验证监听状态lsnrctl status服务自启动创建systemd服务文件/etc/systemd/system/oracle-19c.service[Unit] DescriptionOracle Database 19c Afternetwork.target [Service] Typeforking Useroracle EnvironmentORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 ExecStart$ORACLE_HOME/bin/dbstart $ORACLE_HOME ExecStop$ORACLE_HOME/bin/dbshut $ORACLE_HOME [Install] WantedBymulti-user.target启用服务systemctl daemon-reload systemctl enable oracle-19c5. 后期优化与问题排查内存管理如果遇到ORA-00845错误说明/dev/shm太小# 临时解决方案 mount -o remount,size8G /dev/shm # 永久生效编辑/etc/fstab tmpfs /dev/shm tmpfs defaults,size8G 0 0日志查看技巧安装日志/tmp/oracle_install.log数据库创建日志$ORACLE_BASE/cfgtoollogs/dbca/ORCLCDB监听日志$ORACLE_HOME/network/log/listener.log性能调优建议修改SGA_TARGET和PGA_AGGREGATE_TARGETALTER SYSTEM SET sga_target4G SCOPESPFILE; ALTER SYSTEM SET pga_aggregate_target2G SCOPESPFILE;开启AWR报告EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval60);备份恢复配置可选-- 开启归档模式 SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; -- 创建快速恢复区 ALTER SYSTEM SET db_recovery_file_dest_size50G; ALTER SYSTEM SET db_recovery_file_dest/u01/app/oracle/fast_recovery_area;6. 安全加固与日常维护密码策略强化-- 修改默认用户密码 ALTER USER sys IDENTIFIED BY N3wS3curePwd#; ALTER USER system IDENTIFIED BY N3wS3curePwd#; -- 启用密码复杂度验证 ?/rdbms/admin/utlpwdmg.sql防火墙规则如果必须开启防火墙只放行必要端口firewall-cmd --permanent --add-port1521/tcp firewall-cmd --reload定期维护任务监控表空间使用SELECT tablespace_name, round(used_space/1024/1024,2) Used MB, round(max_size/1024/1024,2) Max MB FROM dba_tablespace_usage_metrics;自动统计信息收集BEGIN DBMS_AUTO_TASK_ADMIN.ENABLE( client_name auto optimizer stats collection, operation NULL, window_name NULL); END;卸载指南当需要彻底卸载时# 停止所有Oracle服务 $ORACLE_HOME/bin/dbshut # 删除安装目录 rm -rf /u01/app/oracle rm -rf /u01/app/oraInventory # 删除用户和组 userdel -r oracle groupdel oinstall groupdel dba # 清理残留文件 rm -f /etc/oraInst.loc rm -f /etc/oratab

更多文章