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

【Oracle数据库指南】第47篇:Oracle 11g在Linux下的安装详解

上一篇【第46篇】Oracle内存与参数调优
下一篇【第48篇】Oracle 11g在Windows下的安装与配置


摘要

Linux是Oracle数据库最主要的生产部署平台,稳定性和性能均优于Windows。本文详细讲解Oracle 11g Release 2在Red Hat Enterprise Linux(RHEL)/CentOS 6/7系统上的完整安装过程:从系统需求检查、内核参数配置、用户组创建、环境变量设置,到OUI图形化安装、数据库实例创建,再到安装后的验证与基础配置。每个步骤均提供完整的命令和注意事项,可作为生产环境安装的操作手册。


一、安装前准备

1.1 系统要求

最低硬件要求(生产环境建议翻倍):

资源最低要求生产建议
内存(RAM)1 GB8 GB以上
交换分区1.5 × RAM(<=8G时)至少4 GB
/tmp空间1 GB5 GB
Oracle软件6.5 GBSSD优先
数据文件1.5 GB(初始)按业务规划

支持的Linux发行版(Oracle 11g R2):

  • Red Hat Enterprise Linux 4/5/6
  • Oracle Linux 4/5/6
  • SUSE Linux Enterprise Server 10/11
  • CentOS 5/6(社区支持)

1.2 检查系统信息

# 检查操作系统版本cat/etc/redhat-releaseuname-a# 检查内存和交换分区grepMemTotal /proc/meminfogrepSwapTotal /proc/meminfofree-h# 检查磁盘空间df-h# 检查/tmp空间df-h/tmp# 检查CPU信息grep"model name"/proc/cpuinfo|head-1nproc# CPU核数

1.3 安装依赖包

# 方式一:使用Oracle提供的预配置包(推荐RHEL/OEL)# Oracle Linux使用预配置包(自动处理所有依赖)yuminstalloracle-rdbms-server-11gR2-preinstall# 方式二:手动安装依赖包(CentOS/RHEL手动安装)yuminstall-y\binutils compat-libcap1 compat-libstdc++-33\gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel\libgcc libstdc++ libstdc++-devel libXi libXtst\makesysstat unixODBC unixODBC-devel# 验证安装(以libaio为例)rpm-qlibaio libaio-devel

二、内核参数配置

2.1 修改内核参数

# 编辑/etc/sysctl.conf,追加以下内容cat>>/etc/sysctl.conf<<'EOF' # Oracle 11g Required Settings fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 EOF# 立即生效sysctl-p# 验证参数sysctl-a|grepshmsysctl-a|grepsem

参数说明:

参数说明
kernel.shmmax最大共享内存段大小(字节),设为物理内存的50%
kernel.shmall系统共享内存总页数
kernel.sem信号量参数(semmsl semmns semopm semmni)
fs.file-max系统最大文件描述符数
fs.aio-max-nr最大异步I/O请求数

2.2 设置用户资源限制

# 编辑/etc/security/limits.confcat>>/etc/security/limits.conf<<'EOF' # Oracle User Limits oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 EOF# 验证limits是否生效(切换oracle用户后)ulimit-n# 文件描述符ulimit-u# 进程数

三、创建Oracle用户和目录

3.1 创建用户组和用户

# 创建用户组groupaddoinstall# Oracle主组(软件安装组)groupadddba# DBA组groupaddoper# 操作员组(可选)# 创建oracle用户useradd-goinstall-Gdba,oper-d/home/oracle-s/bin/bash oracle# 设置密码passwdoracle# 验证idoracle# 输出示例:uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)

3.2 创建安装目录

Oracle推荐的OFA(Optimal Flexible Architecture)目录结构:

# 创建Oracle基目录(Optimal Flexible Architecture)mkdir-p/u01/app/oracle/product/11.2.0/dbhome_1mkdir-p/u01/app/oracle/oradatamkdir-p/u01/app/oracle/fast_recovery_areamkdir-p/u01/app/oracle/admin# 设置所有者和权限chown-Roracle:oinstall /u01chmod-R755/u01# 验证ls-la/u01/app/oracle/

目录说明:

目录说明
/u01/app/oracleORACLE_BASE:Oracle应用基目录
/u01/app/oracle/product/11.2.0/dbhome_1ORACLE_HOME:Oracle软件安装目录
/u01/app/oracle/oradata数据文件存储目录
/u01/app/oracle/fast_recovery_area快速恢复区(FRA)
/u01/app/oraInventoryOracle Inventory目录(全局)

四、配置Oracle用户环境变量

# 切换到oracle用户su- oracle# 编辑~/.bash_profile,添加Oracle环境变量cat>>~/.bash_profile<<'EOF' # Oracle Environment Variables export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' export LANG=en_US.UTF-8 EOF# 生效source~/.bash_profile# 验证echo$ORACLE_HOMEecho$ORACLE_SID

五、安装Oracle软件

5.1 解压安装文件

# Oracle 11g R2安装文件(两个zip包)# linux.x64_11gR2_database_1of2.zip# linux.x64_11gR2_database_2of2.zip# 解压(以oracle用户执行)unziplinux.x64_11gR2_database_1of2.zip-d/home/oracle/unziplinux.x64_11gR2_database_2of2.zip-d/home/oracle/# 解压后目录结构ls/home/oracle/database/# install/ response/ rpm/ runInstaller stage/

5.2 图形化安装(OUI)

前提:需要X11图形环境或VNC

# 方式一:本地图形界面安装exportDISPLAY=:0.0 xhost +local:oracle# 方式二:远程X11转发(SSH -X)ssh-Xoracle@server_ip# 启动安装程序cd/home/oracle/database ./runInstaller

OUI图形安装步骤:

  1. 安全更新配置:可取消勾选"接收安全更新"
  2. 安装选项:选择"仅安装数据库软件"(软件和数据库分步安装)
    • 或"创建并配置数据库"(一次性完成)
  3. Grid安装选项:选择"单实例数据库安装"
  4. 产品语言:添加"Simplified Chinese"(简体中文)
  5. 数据库版本:选择"企业版"
  6. 安装位置
    • Oracle Base:/u01/app/oracle
    • Software Location:/u01/app/oracle/product/11.2.0/dbhome_1
  7. 必要条件检查:修复所有FAILED项,WARNING项可忽略
  8. 执行Root脚本:安装接近完成时,以root用户执行提示的脚本

5.3 执行Root脚本

# 以root用户执行(OUI提示时)/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

5.4 静默安装(无图形界面)

# 编辑响应文件cp/home/oracle/database/response/db_install.rsp /home/oracle/db_install.rspvi/home/oracle/db_install.rsp# 关键配置项(修改这些项):# oracle.install.option=INSTALL_DB_SWONLY# ORACLE_HOSTNAME=your_hostname# UNIX_GROUP_NAME=oinstall# INVENTORY_LOCATION=/u01/app/oraInventory# ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1# ORACLE_BASE=/u01/app/oracle# oracle.install.db.InstallEdition=EE# oracle.install.db.DBA_GROUP=dba# oracle.install.db.OPER_GROUP=oper# DECLINE_SECURITY_UPDATES=true# 执行静默安装./runInstaller-silent-responseFile/home/oracle/db_install.rsp# 安装完成后执行root脚本/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

六、创建数据库

6.1 使用DBCA创建数据库

# 以oracle用户执行dbca

DBCA主要配置项:

  1. 数据库模板:选择"一般用途或事务处理"
  2. 数据库标识符
    • 全局数据库名(Global DB Name):orcl.example.com
    • SID:orcl
  3. 管理选项:配置Enterprise Manager(可选)
  4. 数据库身份证明:设置SYS、SYSTEM密码
  5. 存储选项:选择"文件系统"或"ASM"
  6. 数据库文件位置/u01/app/oracle/oradata/
  7. 快速恢复选项:启用归档,FRA路径/u01/app/oracle/fast_recovery_area/,大小20GB
  8. 数据库内容:可选择示例Schema(scott等)
  9. 初始化参数
    • 内存:选择自动内存管理,分配适当大小
    • 字符集:AL32UTF8(推荐,支持全语种)
    • 连接模式:专用服务器

6.2 静默创建数据库

dbca-silent\-createDatabase\-templateNameGeneral_Purpose.dbc\-gdbNameorcl\-sidorcl\-SysPasswordOracle123\-SystemPasswordOracle123\-characterSetAL32UTF8\-nationalCharacterSetAL16UTF16\-memoryPercentage30\-emConfigurationNONE\-datafileDestination/u01/app/oracle/oradata\-recoveryAreaDestination/u01/app/oracle/fast_recovery_area\-recoveryAreaSize20480\-sampleSchematrue

七、安装后配置

7.1 配置监听器(Listener)

# 使用netca创建监听器netca# 或者手动配置listener.oracat>$ORACLE_HOME/network/admin/listener.ora<<'EOF' LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle EOF# 启动监听器lsnrctl start# 查看监听器状态lsnrctl status

7.2 配置tnsnames.ora(客户端连接)

cat>$ORACLE_HOME/network/admin/tnsnames.ora<<'EOF' ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EOF# 测试连接tnsping orcl sqlplus system/Oracle123@orcl

7.3 设置开机自启动

# 编辑/etc/oratab(DBCA通常已自动更新)vi/etc/oratab# 将orcl条目的最后一个字段改为Y:# orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y# 创建dbstart/dbshut脚本的systemd服务(RHEL 7+)cat>/etc/systemd/system/oracle.service<<'EOF' [Unit] Description=Oracle Database Service After=network.target [Service] Type=forking User=oracle Group=oinstall ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart /u01/app/oracle/product/11.2.0/dbhome_1 ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut /u01/app/oracle/product/11.2.0/dbhome_1 RemainAfterExit=yes [Install] WantedBy=multi-user.target EOFsystemctlenableoracle systemctl start oracle

八、安装验证

# 验证数据库实例sqlplus / as sysdba SQL>SELECT status FROMv$instance;SQL>SELECT name, open_mode FROMv$database;SQL>SELECT tablespace_name, status FROM dba_tablespaces;# 验证监听器lsnrctl status# 检查数据库告警日志(最后50行)tail-50/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

九、常见安装问题

问题原因解决方案
依赖包缺失未安装prerequisite使用preinstall包或手动安装
/tmp空间不足OUI需要临时空间增大/tmp或设置TEMP变量
shmmax过小SGA无法分配计算正确值:kernel.shmmax>=SGA大小
ORA-00845AMM需要/dev/shmmount -t tmpfs smpfs /dev/shm -o size=4G
图形界面无法显示DISPLAY未设置设置DISPLAY变量或使用VNC
root.sh执行失败权限或路径问题以root用户在ORACLE_HOME下执行

十、总结

Linux下Oracle 11g安装的核心步骤:

  1. 系统检查:内存、磁盘、OS版本满足要求
  2. 内核调参:sysctl.conf和limits.conf是关键,不能跳过
  3. 用户规划:oracle用户、oinstall/dba组、目录权限要正确
  4. 环境变量:ORACLE_BASE、ORACLE_HOME、ORACLE_SID必须设置正确
  5. 软件安装:推荐图形化OUI,静默安装用于自动化部署
  6. 数据库创建:DBCA最简便,推荐AL32UTF8字符集
  7. 安装后:配置监听器、测试连接、设置自启动、检查告警日志

上一篇【第46篇】Oracle内存与参数调优
下一篇【第48篇】Oracle 11g在Windows下的安装与配置


参考资料

  • Oracle Database Installation Guide 11g Release 2 for Linux
  • Oracle Database Quick Installation Guide 11g Release 2 for Linux x86-64
  • Oracle MOS Note: Requirements for Installing Oracle 11gR2 on RHEL/CentOS
http://www.jsqmd.com/news/825062/

相关文章:

  • 2×2mm LGA封装+14位分辨率:SMA131在紧凑汽车钥匙中的集成方案
  • 手把手复现IDEA加密:用Python从零理解128位密钥的轮运算
  • 成员函数与 this 指针:函数属于数据
  • 2026年竹盐厂商综合实力深度解析与选择指南 - 2026年企业推荐榜
  • 基于Rust与Hyper构建高性能MCP协议服务器框架
  • 【仅限前500名设计师获取】Midjourney未来主义风格私藏资源包:含87组版权可商用材质贴图+动态光效LORA模型+失效预警提示库
  • 构建智能监控防护系统:从Prometheus到自动化运维闭环
  • 【Oracle数据库指南】第48篇:Oracle 11g在Windows下的安装与配置
  • Python 数据库优化:查询与索引优化
  • 从 ConcurrentLinkedDeque 与 LinkedBlockingDeque 透视 Synchronized 与 CAS 的底层原理
  • 嵌入式Python高效数据处理:迭代器与生成器实战指南
  • 深度探索网易游戏NPK解包:从入门到精通的完整指南
  • SpringBoot集成BouncyCastle实现AES/CBC/PKCS7Padding加解密实战
  • HTML怎么创建话题标签自动联想_HTML输入#触发建议列表【技巧】
  • Chrome for Testing 终极指南:5个实战技巧让自动化测试更稳定高效
  • 智能负载共享电源模块设计:从DC-DC升压到不间断供电的工程实践
  • 终极免费文档下载工具指南:一键下载30+平台文档资源
  • Taotoken用量看板与账单功能如何帮助清晰掌握项目AI支出
  • Java开发者如何高效集成Dify AI能力:dify-java-client实战指南
  • 智能代码助手SmarterCL/copaw:基于Agent架构的开发者效率革命
  • GitHub PR全流程实战:从自动化检查到代码审查的协作艺术
  • 从碎片化到生态化:Zotero插件市场的技术演进之路
  • 从AD9288到STM32H750:手把手拆解开源示波器osc_fun的硬件设计(附原理图分析)
  • 保姆级教程:用Docker部署Jenkins时,如何搞定Agent节点的50000端口映射(附避坑点)
  • 品牌联盟营销:如何创建一个可追踪的Affiliate联盟链接?
  • zcuda项目解析:用纯Rust实现CUDA Runtime API兼容层
  • 基于MCP协议构建AI应用上下文管理服务的实践指南
  • 学妹问降完AI重复率反涨10个点怎么办?这款降AI工具同时降AI率重复率
  • 服务注册与发现机制:构建动态微服务网络
  • Earthly:超越Dockerfile的下一代容器镜像构建工具实战指南