当前位置: 首页 > news >正文

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_SID=ORCLCDB # 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.rsp

oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=$ORACLE_HOME ORACLE_BASE=$ORACLE_BASE oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper DECLINE_SECURITY_UPDATES=true

执行安装命令:以下命令组合了错误重试和日志输出:

cd $ORACLE_HOME ./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp \ -ignorePrereqFailure -waitforcompletion > /tmp/oracle_install.log 2>&1 # 监控安装进度(另开终端) 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

常见报错处理

  1. INS-32035:磁盘空间不足,需确保/tmp有至少1GB空间
  2. INS-30131:检查/etc/hosts是否包含正确的主机名映射
  3. OUI-25031:手动创建/etc/oraInst.loc并设置权限

4. 数据库创建与配置

静默建库命令:通过dbca创建CDB+PDB架构:

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] Description=Oracle Database 19c After=network.target [Service] Type=forking User=oracle Environment="ORACLE_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] WantedBy=multi-user.target

启用服务:

systemctl daemon-reload systemctl enable oracle-19c

5. 后期优化与问题排查

内存管理:如果遇到ORA-00845错误,说明/dev/shm太小:

# 临时解决方案 mount -o remount,size=8G /dev/shm # 永久生效(编辑/etc/fstab) tmpfs /dev/shm tmpfs defaults,size=8G 0 0

日志查看技巧

  • 安装日志:/tmp/oracle_install.log
  • 数据库创建日志:$ORACLE_BASE/cfgtoollogs/dbca/ORCLCDB
  • 监听日志:$ORACLE_HOME/network/log/listener.log

性能调优建议

  1. 修改SGA_TARGET和PGA_AGGREGATE_TARGET:
ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE; ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
  1. 开启AWR报告:
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval=>60);

备份恢复配置(可选):

-- 开启归档模式 SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; -- 创建快速恢复区 ALTER SYSTEM SET db_recovery_file_dest_size=50G; 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-port=1521/tcp firewall-cmd --reload

定期维护任务

  1. 监控表空间使用:
SELECT tablespace_name, round(used_space/1024/1024,2) "Used MB", round(max_size/1024/1024,2) "Max MB" FROM dba_tablespace_usage_metrics;
  1. 自动统计信息收集:
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
http://www.jsqmd.com/news/580267/

相关文章:

  • RexUniNLU新手必看:从模型下载到API服务部署完整流程
  • 跨平台部署指南:OpenClaw+Phi-3-vision在Mac/Win/Linux的配置差异
  • Timeline vs Lerp:UE中实现平滑移动的两种方式对比与选择指南
  • 从IDEA到K8s:飞算JavaAI如何打通微服务开发的“最后一公里”
  • seo推广有什么作用_seo推广需要注意哪些搜索引擎算法
  • 6个技巧让PlayStation手柄完美适配PC:游戏玩家的跨平台手柄解决方案
  • Qwen3.5-9B镜像安全加固:非root用户运行+端口绑定限制+HTTPS代理配置
  • Python 3.14 JIT接入失效全排查(JIT未触发?字节码跳过?GIL干扰?)——CPython 3.14.0rc2深度逆向报告
  • (157页PPT)德勤华夏幸福沈阳铁西园区规划项目园区产业规划报告(附下载方式)
  • 为什么高端芯片都爱用Flip Chip?对比Wire Bonding的5大优势详解
  • 如何利用 SEO 标题和关键词提高网站可发现性_如何利用 SEO 标题和关键词进行分析和优化
  • StarRocks 实战指南:从零构建高性能分析数据仓库
  • 告别Hyper-V冲突:Win11 24H2安装TwinCAT 3.1后的BIOS与安全功能配置全指南
  • 数字IC前端学习笔记:仲裁轮询(五)
  • 闲鱼数据采集完整指南:三步实现自动化商品信息抓取与Excel报表生成
  • 深入解析PCS1800分布式控制系统:架构设计与工业应用实践
  • LingBot-Depth案例分享:修复SLAM生成的稀疏深度,效果实测
  • 节能灯管最省电的厂家2026年技术发展趋势 - 品牌排行榜
  • Z-Image-Turbo_UI界面实战:手把手教你用LoRA切换动漫/赛博/水墨风格
  • 原神帧率解锁完整指南:三步释放你的硬件潜力
  • 开源工具DS4Windows:跨平台手柄适配的一站式解决方案
  • VTK实战-相机vtkCamera的交互控制与动态视角调整
  • Phi-4-mini-reasoning低成本部署:8GB显存即可运行的高性能推理模型
  • 2026物联网照明定制厂家:智慧照明技术创新与应用实践 - 品牌排行榜
  • 图图的嗨丝造相-Z-Image-Turbo一文详解:Z-Image-Turbo基座+LoRA微调技术解析
  • 3个核心技巧:快速掌握Blender 3MF插件的完整工作流
  • OpenClaw技能扩展实战:Qwen3-32B驱动Markdown转公众号草稿
  • gemma-3-12b-it实战教程:利用Ollama模型库管理多版本Gemma模型切换
  • 生客SEO和网站转化率优化怎么结合_生客SEO和传统广告营销该如何平衡
  • 搞过植物种植的朋友都知道,环境参数监测这事儿有多磨人。今天咱们来拆解一个基于51单片机的监测报警系统,直接上干货