03-Linux环境准备依赖包内核参数与用户组
文章目录一、场景切入二、用户与用户组2.1 创建组与用户2.2 验证三、目录规划四、内核参数4.1 /etc/sysctl.conf4.2 RHEL 系参数验证五、资源限制:/etc/security/limits.conf六、依赖包6.1 yum 安装6.2 验证七、SELinux 与防火墙八、主机名与 /etc/hosts九、oracle 用户环境变量十、解压安装介质十一、装前自检清单十二、要点总结一、场景切入在 Linux 上装 Oracle,报错最多的环节往往不是安装本身,而是安装前的环境准备:依赖包缺一个、内核参数不够、用户组没建对,都会在 OUI 先决检查或安装中后期爆出来。把环境准备做扎实,安装基本就是下一步的事。这篇以 RHEL/CentOS 7 Oracle 19c 为例,把准备工作完整过一遍。二、用户与用户组Oracle 不允许用 root 安装和运行,需要专用的操作系统用户与组。2.1 创建组与用户# 以 root 执行groupadd-g1000oinstallgroupadd-g1200dbagroupadd-g1201operuseradd-u1100-goinstall-Gdba,oper oraclepasswdoracleoinstall:inventory 组,管理 Central Inventory(/etc/oraInst.loc 里的 inst_group)dba:SYSDBA 系统权限对应的 OS 组,oracle 用户靠它实现sqlplus / as sysdba免密登录oper:可选,对应 SYSOPER 权限2.2 验证idoracleuid1100(oracle) gid1000(oinstall) groups1000(oinstall),1200(dba),1201(oper)三、目录规划约定俗成的 OFA(Optimal Flexible Architecture)布局,根目录放在 /u01:mkdir-p/u01/app/oracle/product/19.3.0/dbhome_1mkdir-p/u01/app/oraInventorychown-Roracle:oinstall /u01chmod-R775/u01目录含义:/u01/app/oracle:ORACLE_BASE,日志、诊断数据、数据文件默认都在它的子目录下/u01/app/oracle/product/19.3.0/dbhome_1:ORACLE_HOME,软件本体,升级时新建 dbhome_2 并存,回退方便/u01/app/oraInventory:Central Inventory,记录本机所有 Oracle 产品的安装信息单独一块盘挂 /u01 是常见做法,便于空间管理与备份隔离。四、内核参数4.1 /etc/sysctl.conf以 8GB 物理内存、4096 字节页大小为例:cat/etc/sysctl.confEOF fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmmni 4096 kernel.shmall 4294967296 kernel.shmmax 1073741824 kernel.sem 250 32000 100 128 net.ipv4.ip_local_port_range 9000 65535 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 4194304 vm.swappiness 1 EOFsysctl-p参数说明:kernel.shmmax:单个共享内存段最大字节数。8G 内存的机器,SGA 计划 2G 时,给 2147483648(2G)即可;常见做法是给到物理内存的一半,这里给 1G 是保守示例,按实际调整kernel.shmall:共享内存总页数。总量(字节)除以页大小,1073741824/4096 262144;上面示例按 4G 共享内存总量折算为 4294967296/4096?注意 shmall 单位是页,直接写 4294967296 表示页,远大于需要,一般写 2097152(8G 字节/4096)也够,保守可按物理内存字节/2/4096计算kernel.sem:四个值依次是 SEMMSL(每集合信号量数)、SEMMNS(系统总量)、SEMOPM(每次操作数)、SEMMNI(集合数)fs.aio-max-nr:异步 IO 请求数上限net.core.*:网络缓冲,影响大数据量传输如果不确定页大小,先查:getconf PAGE_SIZE4.2 RHEL 系参数验证sysctlkernel.shmmax kernel.shmall kernel.sem输出与配置一致即可。五、资源限制:/etc/security/limits.confcat/etc/security/limits.confEOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 EOFnproc:进程数上限,数据库进程多,必须放宽nofile:文件句柄上限,数据文件、连接都吃句柄stack:栈大小,过小会导致安装或运行异常oracle 用户重新登录后验证:su- oracleulimit-uulimit-n六、依赖包6.1 yum 安装yuminstall-ybcbinutils compat-libcap1 elfutils-libelf\elfutils-libelf-devel fontconfig-devel glibc glibc-devel\ksh libaio libaio-devel libX11 libXau libXi libXtst\libgcc libstdc libstdc-devel libxcbmake\net-tools smartmontools sysstat nfs-utils\unixODBC unixODBC-develRHEL 7 上compat-libstdc-33在常规源里没有,需要从安装镜像的 rpm 目录补:rpm-ivhcompat-libstdc-33-3.2.3-72.el7.x86_64.rpmOracle Linux 用户更省事,官方提供了预配置包,一步完成用户、内核参数、依赖:yuminstall-yoracle-database-preinstall-19c6.2 验证rpm-qbcbinutils compat-libcap1 ksh libaio libaio-devel\libstdc libstdc-devel sysstat unixODBC unixODBC-devel全部显示版本号、无 “is not installed” 即通过。七、SELinux 与防火墙安装和日常使用阶段先关闭,减少干扰;生产环境再按安全要求收紧端口策略。# 关闭 SELinuxsed-is/^SELINUXenforcing/SELINUXdisabled//etc/selinux/config setenforce0getenforceDisabled# 关闭防火墙systemctl stop firewalld systemctl disable firewalld八、主机名与 /etc/hostsOUI 会做主机名解析检查,解析失败直接卡在先决条件。hostname假设输出 oradb、IP 是 192.168.56.50,写入 hosts:echo192.168.56.50 oradb/etc/hosts验证,返回真实 IP 而不是 127 开头:ping-c2oradbhostname-i九、oracle 用户环境变量切到 oracle 用户,编辑 ~/.bash_profile:su- oraclevi~/.bash_profile追加以下内容:exportORACLE_BASE/u01/app/oracleexportORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1exportORACLE_SIDorclexportPATH$ORACLE_HOME/bin:$PATHexportLD_LIBRARY_PATH$ORACLE_HOME/libexportNLS_LANGAMERICAN_AMERICA.AL32UTF8umask022生效并验证:source~/.bash_profileecho$ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1十、解压安装介质19c 的介质是单个 zip,直接解压到 ORACLE_HOME(19c 要求家目录提前建好、介质解压进去):cd$ORACLE_HOMEunzip-q/tmp/LINUX.X64_193000_db_home.ziplsrunInstaller确保解压用的是 oracle 用户,否则要用 chown 改回属主。十一、装前自检清单idoracle# 用户与组正确df-h/u01 /tmp# 空间充足(/tmp 至少 1G 可用)sysctlkernel.shmmax kernel.sem# 内核参数已生效su- oracle-culimit -n# 句柄限制已放宽getenforce# Disabledcat/etc/hosts|greporadb# 主机名可解析全部通过后,就可以进入安装环节(图形或静默),后面的文章分别展开。十二、要点总结专用用户与组:oinstall 管 inventory,dba 决定as sysdba免密目录按 OFA 规划到 /u01/app,ORACLE_HOME 带版本号,升级可并存内核参数重点:shmmax/shmall 管共享内存,sem 管信号量,aio-max-nr 管异步 IO,改完sysctl -p生效limits.conf 放宽 nproc/nofile/stack,重登录后用 ulimit 验证依赖包用 yum 一次装齐,Oracle Linux 有 preinstall 一键包SELinux、防火墙装前先关;hosts 里必须有真实 IP 主机名的映射环境变量五件套:ORACLE_BASE、ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH

相关新闻

04-Oracle 19c静默安装全流程

04-Oracle 19c静默安装全流程

Oracle 19c 静默安装全流程——从零到可连接 服务器连不上显示器、没有X11、没有VNC——这是社保局机房的常态。这篇文章记录一套完整的Oracle 19c静默安装流程,从yum依赖到建库到监听配置,全命令行操作。 文章目录Oracle 19c 静默安装全流程——从零到可…

2026/10/7 8:32:17 阅读更多 →
ChatGPT、Codex排查实录:没有死锁,为什么MySQL还是报“Lock wait timeout exceeded”?

ChatGPT、Codex排查实录:没有死锁,为什么MySQL还是报“Lock wait timeout exceeded”?

线上订单接口突然开始报错:Lock wait timeout exceeded; try restarting transaction第一反应通常是:MySQL是不是死锁了?于是去找Deadlock日志。结果没有。数据库CPU不高,连接数也没打满,慢SQL里甚至看不到特别夸张的查…

2026/10/7 8:32:17 阅读更多 →
HTTP/2帧格式实战:用hyperframe解析与构造帧

HTTP/2帧格式实战:用hyperframe解析与构造帧

去年排查一个诡异的线上问题:服务端日志显示响应早就写完了,客户端却一直卡在等待,直到超时才报错。抓包一看,TCP 层数据确实已经到达对端,问题不在传输层,而在更上层——那串字节流里,HTTP/2 的…

2026/10/7 8:31:17 阅读更多 →

最新新闻

OpenHarmony HDF驱动实战:MLX90614红外测温传感器I2C接入与调试

OpenHarmony HDF驱动实战:MLX90614红外测温传感器I2C接入与调试

1. 从一颗红外测温芯片说起:为什么选MLX90614做OpenHarmony驱动实战做嵌入式开发这些年,温度传感器我经手过不少,从最基础的NTC热敏电阻到DS18B20,再到热电偶方案,各有各的适用场景。但第一次接触MLX90614的时候&#…

2026/10/7 8:58:43 阅读更多 →
零极点推导波特图:手绘渐近线的工程思维

零极点推导波特图:手绘渐近线的工程思维

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 8:58:43 阅读更多 →
数字后端DRC修不完?Innovus并行修复与切块策略实战

数字后端DRC修不完?Innovus并行修复与切块策略实战

1. 当DRC修不完成为常态,我们该怎么破局做数字后端这行的,估计没人没被DRC折磨过。尤其是到了项目后期,timing已经收敛得七七八八,功耗也压得差不多了,结果打开Calibre或者PVS一跑,满屏的DRC violation像蚂…

2026/10/7 8:58:43 阅读更多 →
FPGA、树莓派与STM32:边缘AI推理的真实分工与选型思考

FPGA、树莓派与STM32:边缘AI推理的真实分工与选型思考

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 8:58:43 阅读更多 →
SAP字段查表技巧:从F1到ST05,快速定位ALV增强字段的完整链路

SAP字段查表技巧:从F1到ST05,快速定位ALV增强字段的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 8:58:43 阅读更多 →
Java+Spring Boot+Vue+微信小程序WMS仓库管理系统实战:扫码入库与库存事务设计

Java+Spring Boot+Vue+微信小程序WMS仓库管理系统实战:扫码入库与库存事务设计

简介:这份资源是一套基于Java、Spring Boot与Vue.js构建的WMS仓库管理系统,并集成微信小程序端,面向计算机相关专业的毕业设计学生及需要仓库管理实战项目的开发者。系统覆盖入库、出库、库存管理、订单处理等核心业务,Web端与小程…

2026/10/7 8:57:42 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →