1. Oracle 11g R2 安装前的系统准备
作为一名长期从事数据库运维的老兵,我深知Oracle安装前的准备工作往往比安装过程本身更重要。很多新手在安装Oracle 11.2.0.4时遇到的90%问题,其实都源于前期准备不足。下面这些要点都是我用真金白银的教训换来的经验。
1.1 硬件与操作系统要求
Oracle 11.2.0.4虽然是十多年前发布的版本,但对现代硬件仍有特定要求:
-
内存:官方最低要求2GB,但实际使用中:
- 开发环境建议4GB以上
- 生产环境至少8GB(特别是要运行多个实例时)
- 我的实测数据:4GB内存下运行单个实例时,AWR报告显示内存压力已达警戒线
-
磁盘空间:
- 基础安装需要5-6GB
- 创建标准数据库实例额外需要4-5GB
- 建议预留至少20GB空间(特别是要安装示例数据库时)
-
操作系统兼容性:
- Windows Server 2008 R2是最稳定的选择
- Windows 10/11也能运行,但需要特别注意:
- 以管理员身份运行安装程序
- 关闭UAC(用户账户控制)
- 禁用Windows Defender实时保护
重要提示:Oracle 11.2.0.4不支持Windows Server 2016及以上版本。我曾在一个客户现场花了6小时排查安装失败原因,最后发现是OS版本不兼容。
1.2 环境预配置要点
在双击安装程序前,这些配置能避免80%的安装问题:
-
关闭杀毒软件:
- 不只是暂停防护,要完全退出
- 特别是360、腾讯电脑管家等国产软件,极易拦截Oracle关键进程
-
配置系统环境变量:
bash复制# 新建系统变量 ORACLE_UNQNAME=orcl ORACLE_BASE=C:\app ORACLE_HOME=%ORACLE_BASE%\product\11.2.0\dbhome_1 # 添加到PATH PATH=%ORACLE_HOME%\bin;%PATH% -
修改系统临时目录权限:
- 右键
C:\Windows\Temp→ 属性 → 安全 - 添加当前用户完全控制权限
- 这是OUI(Oracle Universal Installer)写日志的默认位置
- 右键
-
创建必要的用户组(仅服务器类安装需要):
- 计算机管理 → 本地用户和组
- 新建组:ORA_DBA
- 将安装用户加入该组
2. Oracle 11.2.0.4 详细安装解析
2.1 安装程序启动与初始配置
双击oracle11.2.0.4.exe后,会遇到几个关键选择点:
-
安全更新配置:
- 生产环境建议配置MOS(My Oracle Support)账号接收关键补丁通知
- 开发环境可取消勾选,否则安装过程会卡在更新检查
-
安装类型选择:
- 创建和配置数据库(推荐):
- 自动完成软件安装+数据库实例创建
- 适合首次安装和开发环境
- 仅安装数据库软件:
- 后期需手动运行DBCA创建数据库
- 适合批量部署标准化环境
- 创建和配置数据库(推荐):
-
系统类选择:
- 桌面类 vs 服务器类的核心区别:
| 特性 | 桌面类 | 服务器类 |
|-----------|---------------|--------------|
| 存储类型 | 基本文件系统 | ASM/裸设备 |
| 内存管理 | 自动 | 手动可调 |
| 字符集 | 按系统区域设置自动选择 | 自定义 |
| 安装后配置复杂度 | 简单 | 需要DBA知识 |
- 桌面类 vs 服务器类的核心区别:
2.2 典型安装参数详解
在"典型安装"界面,这些参数影响深远:
-
Oracle基目录:
- 默认路径中的
用户名指Windows登录用户 - 路径不要包含中文或空格(如
C:\Oracle比C:\Program Files\Oracle更安全)
- 默认路径中的
-
全局数据库名:
- 格式应为
<db_name>.<db_domain> - 单机环境可直接用
orcl - 企业环境建议规范命名(如
erp.prod.example.com)
- 格式应为
-
管理口令:
- 必须包含大写字母、小写字母和数字
- 记不住可用
Oracle123这类简单密码(仅限测试环境) - 生产环境必须使用复杂密码并妥善保管
2.3 安装过程中的常见问题处理
安装进度条走到75%左右时,最可能遇到这些问题:
-
INS-20802 Oracle Net Configuration Assistant失败:
- 原因:端口1521被占用
- 解决方案:
bash复制
netstat -ano | findstr 1521 taskkill /pid <占用进程PID> /f
-
INS-32025 所选安装与现有Oracle主目录冲突:
- 原因:之前安装残留
- 彻底清理步骤:
- 运行
regedit删除HKEY_LOCAL_MACHINE\SOFTWARE\Oracle - 删除所有Oracle环境变量
- 删除
C:\Program Files\Oracle和C:\app目录 - 重启后再安装
- 运行
-
OUI-25031 磁盘空间不足:
- 实际空间足够但仍报错
- 解决方法:临时清空回收站或扩展虚拟内存
3. 数据库连接与初始配置
3.1 多种连接方式对比
Oracle 11g提供多种连接途径,各有适用场景:
| 工具 | 启动路径 | 适用场景 | 优缺点 |
|---|---|---|---|
| SQL*Plus | 开始菜单 → Oracle程序组 | 快速测试/紧急维护 | 轻量但功能简单 |
| SQL Developer | 需单独下载安装 | 日常开发维护 | 功能全面但占用资源多 |
| OEM | https://localhost:1158/em |
图形化监控管理 | 功能最全但配置复杂 |
| Toad | 第三方工具需购买 | 专业DBA使用 | 功能强大但商业许可 |
3.2 SQL*Plus 连接深度解析
通过SQL*Plus连接时,这些细节值得注意:
sql复制-- 标准连接命令
sqlplus sys/Oracle123@orcl as sysdba
-- 如果报错ORA-12560,可能是服务未启动
-- 按Win+R运行:
services.msc
-- 手动启动以下服务:
- OracleServiceORCL
- OracleOraDb11g_home1TNSListener
首次登录后建议立即执行的配置:
sql复制-- 修改默认密码策略(仅测试环境)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- 创建普通用户
CREATE USER demo IDENTIFIED BY demo DEFAULT TABLESPACE users;
-- 授予基本权限
GRANT CONNECT, RESOURCE TO demo;
-- 解锁示例用户(学习用)
ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
3.3 监听器配置要点
如果遇到连接问题,90%与监听器有关:
-
检查监听状态:
bash复制
lsnrctl status -
常见错误处理:
-
TNS-12541 监听程序无法识别连接描述符:
bash复制# 编辑监听配置文件 notepad %ORACLE_HOME%\network\admin\listener.ora # 确保包含: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = C:\app\product\11.2.0\dbhome_1) ) ) -
ORA-12514 TNS 监听程序当前无法识别连接描述符中的服务:
sql复制-- 在SQL*Plus中执行: ALTER SYSTEM REGISTER;
-
4. 安装后优化与问题排查
4.1 必须进行的安装后检查
-
验证数据库组件:
sql复制SELECT comp_name, status, version FROM dba_registry; -
检查无效对象:
sql复制SELECT owner, object_name, object_type FROM dba_objects WHERE status = 'INVALID'; -
表空间使用监控:
sql复制SELECT tablespace_name, round(SUM(bytes)/1024/1024) "Size(MB)" FROM dba_data_files GROUP BY tablespace_name;
4.2 性能调优初始参数
在init.ora或通过命令调整这些关键参数:
sql复制-- 内存分配(根据实际内存调整)
ALTER SYSTEM SET sga_target=2G SCOPE=spfile;
ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=spfile;
-- 连接数设置
ALTER SYSTEM SET processes=300 SCOPE=spfile;
-- 诊断参数
ALTER SYSTEM SET diagnostic_dest='C:\app\diag' SCOPE=spfile;
4.3 常见问题速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| ORA-01034: ORACLE不可用 | 实例未启动 | 启动OracleServiceORCL服务 |
| ORA-27101: 共享内存域不存在 | ORACLE_SID设置错误 | 设置set ORACLE_SID=ORCL |
| ORA-12560: TNS协议适配器错误 | 监听器问题 | 检查lsnrctl status并重启监听服务 |
| 安装程序卡在44% | 杀毒软件拦截 | 完全退出安全软件 |
| DBCA创建数据库失败 | 临时空间不足 | 清理C:\Windows\Temp目录 |
5. 生产环境特别注意事项
在企业环境中部署Oracle 11.2.0.4时,这些经验可能挽救你的职业生涯:
-
备份策略:
- 安装完成后立即执行全库备份
bash复制
rman target / BACKUP DATABASE PLUS ARCHIVELOG; -
补丁管理:
- 必须安装PSU(Patch Set Update)
- 最新PSU可从Oracle Support下载
- 关键补丁:Patch 28729262 - Database PSU 11.2.0.4.210420
-
安全加固:
sql复制-- 禁用危险功能 REVOKE EXECUTE ON UTL_FILE FROM PUBLIC; REVOKE EXECUTE ON UTL_HTTP FROM PUBLIC; -- 启用审计 AUDIT CREATE SESSION BY ACCESS; -
监控配置:
- 设置alert.log监控
- 配置OEM的基础告警
- 建议添加自定义脚本监控表空间使用率
这套安装流程我已经在超过50台服务器上验证过,包括金融行业的严苛环境。记住,Oracle安装不是终点而是起点,后续的维护和优化才是DBA真正的战场。