【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 GB | 8 GB以上 |
| 交换分区 | 1.5 × RAM(<=8G时) | 至少4 GB |
| /tmp空间 | 1 GB | 5 GB |
| Oracle软件 | 6.5 GB | SSD优先 |
| 数据文件 | 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/oracle | ORACLE_BASE:Oracle应用基目录 |
| /u01/app/oracle/product/11.2.0/dbhome_1 | ORACLE_HOME:Oracle软件安装目录 |
| /u01/app/oracle/oradata | 数据文件存储目录 |
| /u01/app/oracle/fast_recovery_area | 快速恢复区(FRA) |
| /u01/app/oraInventory | Oracle 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 ./runInstallerOUI图形安装步骤:
- 安全更新配置:可取消勾选"接收安全更新"
- 安装选项:选择"仅安装数据库软件"(软件和数据库分步安装)
- 或"创建并配置数据库"(一次性完成)
- Grid安装选项:选择"单实例数据库安装"
- 产品语言:添加"Simplified Chinese"(简体中文)
- 数据库版本:选择"企业版"
- 安装位置:
- Oracle Base:
/u01/app/oracle - Software Location:
/u01/app/oracle/product/11.2.0/dbhome_1
- Oracle Base:
- 必要条件检查:修复所有FAILED项,WARNING项可忽略
- 执行Root脚本:安装接近完成时,以root用户执行提示的脚本
5.3 执行Root脚本
# 以root用户执行(OUI提示时)/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh5.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用户执行dbcaDBCA主要配置项:
- 数据库模板:选择"一般用途或事务处理"
- 数据库标识符:
- 全局数据库名(Global DB Name):
orcl.example.com - SID:
orcl
- 全局数据库名(Global DB Name):
- 管理选项:配置Enterprise Manager(可选)
- 数据库身份证明:设置SYS、SYSTEM密码
- 存储选项:选择"文件系统"或"ASM"
- 数据库文件位置:
/u01/app/oracle/oradata/ - 快速恢复选项:启用归档,FRA路径
/u01/app/oracle/fast_recovery_area/,大小20GB - 数据库内容:可选择示例Schema(scott等)
- 初始化参数:
- 内存:选择自动内存管理,分配适当大小
- 字符集:
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 status7.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@orcl7.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-00845 | AMM需要/dev/shm | mount -t tmpfs smpfs /dev/shm -o size=4G |
| 图形界面无法显示 | DISPLAY未设置 | 设置DISPLAY变量或使用VNC |
| root.sh执行失败 | 权限或路径问题 | 以root用户在ORACLE_HOME下执行 |
十、总结
Linux下Oracle 11g安装的核心步骤:
- 系统检查:内存、磁盘、OS版本满足要求
- 内核调参:sysctl.conf和limits.conf是关键,不能跳过
- 用户规划:oracle用户、oinstall/dba组、目录权限要正确
- 环境变量:ORACLE_BASE、ORACLE_HOME、ORACLE_SID必须设置正确
- 软件安装:推荐图形化OUI,静默安装用于自动化部署
- 数据库创建:DBCA最简便,推荐AL32UTF8字符集
- 安装后:配置监听器、测试连接、设置自启动、检查告警日志
上一篇【第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
