【Oracle数据库指南】第48篇:Oracle 11g在Windows下的安装与配置
上一篇【第47篇】Oracle 11g在Linux下的安装详解
下一篇【第49篇】Oracle数据库安全加固与最佳实践
摘要
虽然linux是oracle数据库生产环境的首选平台,但windows依然是大量中小企业、测试环境和特定行业场景的重要部署平台。本文详细介绍oracle 11g release 2在windows server环境下的安装流程:从系统准备、安装步骤、服务管理到网络配置,并重点讲解windows平台特有的服务管理、注册表配置、环境变量设置及内存配置技巧,帮助dba在windows平台上顺利部署和运维oracle数据库。
一、windows安装前准备
1.1 系统要求
支持的windows平台(oracle 11g r2):
- windows server 2003 r2(x64)
- windows server 2008 / 2008 r2(推荐)
- windows server 2012 / 2012 r2
- windows 7 / 8(仅用于开发测试)
最低硬件要求:
| 资源 | 最低 | 生产建议 |
|---|---|---|
| ram | 1 gb | 8 gb以上 |
| 虚拟内存 | 1.5×ram | >= 4 gb |
| 磁盘(软件) | 7.5 gb | ssd分区 |
| 临时目录 | 1 gb | 5 gb |
1.2 安装前检查清单
✓ 关闭uac(用户账户控制)或以管理员身份运行安装程序 ✓ 关闭windows防火墙或开放1521端口 ✓ 关闭杀毒软件(安装过程中可能误报) ✓ 确认.net framework版本(oracle 11g不需要额外.net版本) ✓ 确认磁盘空间充足 ✓ 使用英文路径(避免中文目录导致问题)二、oracle软件安装
2.1 解压安装文件
oracle 11g r2 windows版本有两个安装包:
win64_11gr2_database_1of2.zipwin64_11gr2_database_2of2.zip
将两个zip包解压到同一目录(两个包解压后会合并到database文件夹)。
2.2 启动oui安装向导
以管理员身份运行database\setup.exe:
安装步骤详解:
step 1 - 配置安全更新
- 取消勾选"我希望通过my oracle support接收安全更新"
- 点击下一步(忽略邮件地址为空的提示)
step 2 - 安装选项
建议选择**“创建并配置数据库”**(同时完成软件安装和数据库创建)
step 3 - 系统类
- 开发/测试环境:选"桌面类"(配置简单,自动完成大部分设置)
- 生产环境:选"服务器类"(可进行详细配置)
step 4 - 服务器类详细配置(选服务器类时)
- 安装类型:单实例数据库
- 安装方式:典型安装(或高级安装以进行详细配置)
step 5 - 典型安装配置
| 选项 | 建议值 |
|---|---|
| oracle基目录 | c:\oracle\app\oracle |
| 软件位置 | c:\oracle\app\oracle\product\11.2.0\dbhome_1 |
| 数据库文件位置 | c:\oracle\app\oracle\oradata |
| 数据库版本 | 企业版 |
| 字符集 | zhs16gbk(中文环境)或al32utf8 |
| 全局数据库名 | orcl.example.com |
| 管理口令 | 强密码(sys/system使用同一密码或分别设置) |
⚠️字符集选择说明:
zhs16gbk:支持简体中文,历史应用兼容性好al32utf8:通用unicode字符集,支持所有语言,新项目推荐
step 6 - 先决条件检查
- 修复所有failed状态的检查项
- warning项可忽略(如swap空间)
- 可勾选"忽略全部"跳过warning
step 7 - 概要
确认配置无误后点击"完成"开始安装
step 8 - 安装进度
安装过程约20-40分钟,最后自动启动dbca创建数据库。
三、windows服务管理
3.1 oracle在windows上创建的服务
安装完成后,oracle会在windows服务管理器中创建以下服务:
| 服务名称 | 说明 | 启动类型 |
|---|---|---|
| oracleserviceorcl | oracle实例服务(核心) | 自动 |
| oracleoradb11g_home1tnslistener | 监听器服务 | 自动 |
| oracledbconsoleorcl | enterprise manager控制台 | 自动(可禁用以节省资源) |
| oracleoradb11g_home1clragent | .net clr agent | 手动 |
| oraclemtsrecoveryservice | mts恢复服务 | 自动(可禁用) |
3.2 使用命令行管理服务
# 以管理员身份打开命令提示符 # 启动oracle数据库服务 net start oracleserviceorcl # 停止oracle数据库服务 net stop oracleserviceorcl # 启动监听器 net start oracleoradb11g_home1tnslistener # 停止监听器 net stop oracleoradb11g_home1tnslistener # 查看服务状态 sc query oracleserviceorcl sc query oracleoradb11g_home1tnslistener # 修改服务启动类型 sc config oracledbconsoleorcl start= disabled # 禁用em节省资源3.3 使用powershell管理oracle服务
# 查看所有oracle相关服务get-service-name"oracle*"|format-tablename,status,starttype# 启动所有oracle服务get-service-name"oracleservice*"|start-service# 停止所有oracle服务get-service-name"oracle*"|stop-service四、环境变量配置
4.1 系统环境变量
oracle安装程序会自动配置大部分环境变量,可通过以下方式验证:
控制面板 → 系统 → 高级系统设置 → 环境变量检查以下变量是否正确:
| 变量名 | 应有值 |
|---|---|
| oracle_home | c:\oracle\app\oracle\product\11.2.0\dbhome_1 |
| oracle_sid | orcl |
| path | 应包含%oracle_home%\bin |
手动设置oracle_sid(当机器上有多个数据库时):
# 在命令提示符中临时设置 set oracle_sid=orcl # 永久设置(系统级) setx oracle_sid "orcl" /m # 验证 echo %oracle_sid%4.2 nls环境变量
# 设置日期格式(避免日期显示问题) setx nls_date_format "yyyy-mm-dd hh24:mi:ss" /m # 设置语言(影响oracle客户端语言) setx nls_lang "simplified chinese_china.zhs16gbk" /m # 或者utf-8环境 setx nls_lang "simplified chinese_china.al32utf8" /m五、注册表参数说明
oracle在windows注册表中存储大量配置信息,路径为:
hkey_local_machine\software\oracle\5.1 关键注册表项
hkey_local_machine\software\oracle\key_oradb11g_home1\ oracle_home = c:\oracle\app\oracle\product\11.2.0\dbhome_1 oracle_home_name = oradb11g_home1 oracle_sid = orcl nls_lang = simplified chinese_china.zhs16gbk hkey_local_machine\system\currentcontrolset\services\oracleserviceorcl\ imagepath = 服务可执行文件路径 objectname = localsystem5.2 修改windows内存参数
windows下oracle默认使用windows虚拟内存(awe)管理sga。
-- 连接数据库查看当前sga大小showparameter sga_target;showparameter memory_target;-- 修改sga大小(不超过物理内存的60%)altersystemsetmemory_target=2g scope=spfile;shutdownimmediate;startup;windows sga超过1.7gb的配置(32位系统):
32位windows下单进程默认最大使用2gb内存,通过以下设置允许oracle使用更多:
# windows 2003(以管理员运行) boot.ini中添加 /3gb 开关 # windows 2008+ bcdedit /set increaseuserva 3072 # 同时在oracle中启用awe alter system set use_indirect_data_buffers = true scope=spfile;💡建议:生产环境尽量使用64位windows + 64位oracle,避免32位内存限制问题。
六、网络配置
6.1 配置监听器
oracle安装后会在1521端口启动监听器。可通过以下方式验证:
# 检查监听器状态 lsnrctl status # 启动监听器 lsnrctl start # 停止监听器 lsnrctl stop # 测试连接 tnsping orcl如果需要修改监听器端口,编辑listener.ora:
# 路径:%oracle_home%\network\admin\listener.ora listener = (description_list = (description = (address = (protocol = tcp)(host = your_hostname)(port = 1521)) ) )6.2 防火墙配置
# windows防火墙开放1521端口(管理员运行) netsh advfirewall firewall add rule ^ name="oracle database 1521" ^ dir=in action=allow protocol=tcp ^ localport=1521 # 验证规则 netsh advfirewall firewall show rule name="oracle database 1521"6.3 oracle enterprise manager(em)
oracle 11g自带基于web的em控制台,默认端口1158:
访问地址:https://hostname:1158/em 用户名:sys(以sysdba连接) 密码:安装时设置的sys密码# 重新配置em emca -config dbcontrol db -repos recreate -sid orcl七、多oracle版本共存
windows下可以安装多个oracle版本,通过切换oracle_home和oracle_sid来选择目标实例。
7.1 使用oraenv切换oracle home
# windows没有linux的oraenv脚本,需手动切换 # 设置第二个数据库的环境 set oracle_home=c:\oracle\app\oracle\product\11.2.0\dbhome_2 set oracle_sid=test set path=c:\oracle\app\oracle\product\11.2.0\dbhome_2\bin;%path%7.2 使用oracle home selector(oracle 11g提供)
开始菜单 → oracle - oradb11g_home1 → oracle installation products → universal installer 或通过注册表中的oracle home配置切换八、windows特有注意事项
8.1 中文字符集问题
-- 查看数据库字符集selectvaluefromnls_database_parameterswhereparameterin('nls_characterset','nls_nchar_characterset');-- 查看客户端nls_lang设置select*fromv$nls_parameters;中文乱码问题排查:
- 确保客户端
nls_lang与数据库字符集一致 - 使用sql*plus时:
set nls_lang=simplified chinese_china.zhs16gbk - 应用程序jdbc连接串:
?characterencoding=gbk
8.2 oracle服务日志位置
-- 告警日志(alert log) %oracle_base%\diag\rdbms\<db_name>\<sid>\trace\alert_<sid>.log -- trace文件目录 %oracle_base%\diag\rdbms\<db_name>\<sid>\trace\ -- 监听器日志 %oracle_home%\network\log\listener.log8.3 oracle密码文件
# 创建/重建密码文件(忘记sys密码时) orapwd file="%oracle_home%\database\pwdorcl.ora" password=newpassword123 entries=10 # 密码文件位置 %oracle_home%\database\pwd<sid>.ora九、性能优化建议(windows平台)
-- windows下oracle内存参数建议-- 系统内存8g,为oracle分配5galtersystemsetmemory_max_target=5g scope=spfile;altersystemsetmemory_target=4g scope=spfile;-- 关闭不必要的后台服务(减少资源竞争)-- 禁用windows索引服务、自动更新(维护窗口手动更新)-- 禁用病毒扫描对oracle数据文件目录的实时扫描-- 建议将oracle数据文件目录加入杀毒软件白名单-- %oracle_base%\oradata\**十、安装验证
# 验证数据库连接 sqlplus / as sysdba sql> select instance_name, status from v$instance; sql> select name, open_mode from v$database; sql> select count(*) from dba_users; # 验证监听器 lsnrctl status # 通过tns连接测试 sqlplus system/password@orcl # 检查服务状态 sc query oracleserviceorcl sc query oracleoradb11g_home1tnslistener十一、总结
windows下oracle 11g安装的关键要点:
| 阶段 | 注意事项 |
|---|---|
| 安装前 | 以管理员运行、关闭uac、关闭实时杀毒、英文路径 |
| 字符集 | 中文环境选zhs16gbk,新项目推荐al32utf8 |
| 内存 | 使用64位系统避免32位2gb限制,合理配置amm |
| 服务管理 | 掌握oracleservice和listener的启停命令 |
| 注册表 | 了解oracle注册表路径,多版本共存时注意home切换 |
| 网络 | 配置防火墙开放1521端口,nls_lang与字符集保持一致 |
windows平台oracle的优势在于运维工具友好(图形化em、服务管理器),劣势在于性能和稳定性略逊于linux。对于核心生产系统,linux仍是首选;windows适合开发测试和特定企业内网场景。
上一篇【第47篇】Oracle 11g在Linux下的安装详解
下一篇【第49篇】Oracle数据库安全加固与最佳实践
参考资料
- oracle database installation guide 11g release 2 for microsoft windows
- oracle database quick installation guide 11g release 2 for windows x64
- oracle mos note: windows platform oracle database best practices
