news 2026/10/9 10:11:33

Windows Server 2019 上 Oracle 11g 与 19c 安装部署实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows Server 2019 上 Oracle 11g 与 19c 安装部署实战指南

简介:这份图文资料面向在 Windows Server 2019 环境下部署 Oracle 数据库的运维与开发人员,覆盖从操作系统安装到数据库客户端连接的全流程。内容包含 Windows Server 2019 系统安装与磁盘分区、Oracle 11g 服务端部署及 pacs 数据库创建、Oracle 11g 与 10g 客户端安装、PLSQL 连接配置,并延伸至 Oracle 19c 客户端数据源连接详解,针对部分场景下客户端无法连接数据库的问题给出排查思路;同时附带 NIC 网络聚合配置说明,适合需要搭建稳定数据库运行环境的中初级 DBA 与系统管理员参考。资源包为 1 个 PDF 文件,约 5.13MB,以图文步骤形式呈现,便于对照操作与快速查阅。目前已有 1853 人学习下载,可作为 Windows 平台 Oracle 多版本部署与连接排错的实操参考。

1. 在 Windows Server 2019 上装 Oracle:为什么 11g 和 19c 是两套完全不同的打法

在 Windows Server 2019 上部署 Oracle,很多人第一反应是“下一步下一步就完了”,结果卡在 11g 的 OUI 闪退、19c 的安装前置检查报错上,一卡就是半天。这个标题讲的是同一台 Windows Server 2019 上,分别把 Oracle 11g 和 19c 装起来、跑起来、连得上的完整路径。它解决的不是“Oracle 怎么用”,而是“在 Windows 环境下怎么把这两个跨度极大的版本顺利落地”。适合两类人:一类是手里有老系统必须跑 11g 的运维,另一类是要上新库直接选 19c 的开发者。两者在 Windows Server 2019 上的安装逻辑、依赖组件、权限模型差别很大,混着套用经验必然翻车。下面按版本拆开讲,每一步都落到可复现的命令和参数上。

2. 装之前先把 Windows Server 2019 的底子打好:账户、依赖与磁盘

2.1 为什么不能直接用 Administrator 装 Oracle

Oracle 在 Windows 上的安装器对账户权限极其敏感。用内置 Administrator 装,表面能过,但后续建库、监听注册、服务启动经常出玄学问题。常见做法是新建一个本地管理员账户,专门跑 Oracle 安装和后续服务。

# 以管理员身份打开 PowerShell # 创建本地账户 oracle_admin,密码按现场策略设置 $pwd = ConvertTo-SecureString "YourStrongPwd123!" -AsPlainText -Force New-LocalUser -Name "oracle_admin" -Password $pwd -PasswordNeverExpires Add-LocalGroupMember -Group "Administrators" -Member "oracle_admin"

逻辑说明:Oracle 安装程序会往注册表 HKLM、系统目录、服务控制管理器写大量内容,普通用户即使临时提权也会在 OUI 的某些阶段被拒绝。参数说明:-PasswordNeverExpires避免安装到一半密码过期导致服务账户失效;密码要满足 Windows 本地安全策略的复杂度要求,否则创建直接失败。建完后注销,用 oracle_admin 登录再开始装。

2.2 11g 和 19c 各自需要哪些前置组件

11g 在 Windows Server 2019 上属于“超纲”组合,官方支持矩阵里没有它,所以依赖要手动补齐。19c 相对规范,但仍有几个必装项。

组件11g 是否需要19c 是否需要说明
.NET Framework 3.5需要不需要11g OUI 依赖旧版 .NET
Visual C++ 2013 Redistributable需要需要19c 安装器也依赖
Visual C++ 2017 Redistributable不需要需要19c 部分工具链依赖
Microsoft Visual Studio 2010 Shell需要不需要11g 的 OUI 界面依赖
# 启用 .NET 3.5(11g 必做) Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All # 检查 VC++ 运行库是否已安装 Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like "*Visual C++*" } | Select-Object DisplayName, DisplayVersion

逻辑说明:Enable-WindowsOptionalFeature会从系统镜像源拉取 .NET 3.5,如果服务器没配源会失败,需要挂载 ISO 或用-Source指定路径。参数说明:-All表示同时启用父功能;VC++ 检查用注册表卸载项过滤,确认版本号后再决定装哪个。

2.3 磁盘分区与目录规划:别把库建在系统盘

Oracle 的数据文件、归档日志、临时表空间增长很快,系统盘被撑满会导致数据库直接挂起。我一般会单独挂一块数据盘,按下面结构划分。

# 假设数据盘为 D: New-Item -Path "D:\oracle" -ItemType Directory New-Item -Path "D:\oracle\product" -ItemType Directory New-Item -Path "D:\oracle\oradata" -ItemType Directory New-Item -Path "D:\oracle\fast_recovery_area" -ItemType Directory # 给 oracle_admin 完全控制权限 icacls "D:\oracle" /grant "oracle_admin:(OI)(CI)F" /T

逻辑说明:product放软件,oradata放数据文件,fast_recovery_area放归档和备份,三者分开便于后续扩容和迁移。参数说明:(OI)(CI)F表示对象继承、容器继承、完全控制;/T递归应用到子目录。权限没给够,建库阶段会报 ORA-27040 之类的文件创建错误。

3. Oracle 11g 在 Windows Server 2019 上的安装与建库

3.1 让 11g 安装器在 2019 上不闪退的兼容性设置

11g 的 OUI 在 Windows Server 2019 上直接双击经常闪退,原因是安装器自带的 JRE 和新系统不兼容。血泪经验是先把安装包解压到短路径,再对 setup.exe 做兼容性设置。

# 解压两个压缩包到同一目录,路径要短,避免空格 # winx64_11gR2_database_1of2.zip # winx64_11gR2_database_2of2.zip # 解压后得到 database 目录,进入后右键 setup.exe # 属性 -> 兼容性 -> 勾选“以兼容模式运行这个程序” -> Windows 7 # 勾选“以管理员身份运行此程序”

逻辑说明:兼容模式让安装器以为自己跑在旧系统上,绕过部分 API 检查。参数说明:路径不要用中文和空格,否则 OUI 解压临时文件时可能报“无法写入”。如果仍然闪退,检查%TEMP%空间是否足够,11g 安装器需要至少 2GB 临时空间。

3.2 安装过程中的关键选项:别选错字符集和实例类型

进入 OUI 后,前几屏是邮箱、更新通知,直接跳过。真正影响后续的是这几项:

  • 安装类型选“创建和配置数据库”,不要选“仅安装软件”,否则后面还要手动跑 DBCA。
  • 系统类选“服务器类”,桌面类会限制内存和自动管理方式。
  • 网格选项选“单实例数据库安装”,除非你确实要上 RAC。
  • 字符集选 AL32UTF8,除非老系统明确要求 ZHS16GBK,选错后续导入导出全是乱码。
-- 建库完成后验证字符集 SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';

逻辑说明:字符集在建库时确定,后期改代价极大。参数说明:AL32UTF8 是 Unicode 超集,兼容性最好;如果必须用 ZHS16GBK,要在建库前就定好,不要等数据进去了再改。

3.3 建库后必须做的三件事:监听、服务、环境变量

安装完成不代表能连。11g 在 Windows 上监听器有时不会自动注册服务,需要手动确认。

# 查看监听状态 lsnrctl status # 如果实例没注册,进入 sqlplus 手动注册 sqlplus / as sysdba SQL> ALTER SYSTEM REGISTER; SQL> EXIT; # 再次查看监听,确认实例状态为 READY lsnrctl status

逻辑说明:ALTER SYSTEM REGISTER强制 PMON 进程向监听器注册实例,解决“监听起来了但连不上”的典型问题。参数说明:/ as sysdba是操作系统认证,要求当前用户属于 ORA_DBA 组,安装时通常已自动加入。

环境变量方面,至少配好ORACLE_HOME和PATH,否则 sqlplus 只能在安装目录下跑。

# 设置系统环境变量 [Environment]::SetEnvironmentVariable("ORACLE_HOME", "D:\oracle\product\11.2.0\dbhome_1", "Machine") [Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";D:\oracle\product\11.2.0\dbhome_1\bin", "Machine")

逻辑说明:写 Machine 级别对所有用户生效,避免每个会话手动 set。参数说明:路径按实际安装位置改,11g 默认在product\11.2.0\dbhome_1。

4. Oracle 19c 在 Windows Server 2019 上的安装与建库

4.1 19c 安装前置检查最容易卡在哪

19c 的安装器比 11g 规范,但前置检查更严。最常见的是“操作系统版本不受支持”和“缺少 VC++ 运行库”。Windows Server 2019 本身在 19c 支持列表里,但如果系统补丁没打全,检查会失败。

# 查看系统版本和补丁 systeminfo | Select-String "OS Name", "OS Version", "System Type" # 安装 VC++ 2013 和 2017 # 从微软官方下载 vcredist_x64.exe 后静默安装 Start-Process -FilePath "vcredist_x64_2013.exe" -ArgumentList "/install", "/quiet", "/norestart" -Wait Start-Process -FilePath "vcredist_x64_2017.exe" -ArgumentList "/install", "/quiet", "/norestart" -Wait

逻辑说明:静默安装避免图形界面交互,适合批量部署。参数说明:/quiet无界面,/norestart禁止自动重启,-Wait确保前一个装完再装下一个。装完重启一次再跑安装器。

4.2 19c 安装选项与 11g 的差异

19c 的 OUI 界面变化不大,但有几个默认值不同:

  • 安装选项默认“创建并配置单实例数据库”,可以直接建库。
  • 数据库版本选“企业版”还是“标准版”按授权来,标准版有内存和 CPU 上限。
  • 容器数据库选项默认勾选“创建为容器数据库”,如果不需要 PDB 多租户,可以取消,减少复杂度。
  • 字符集同样选 AL32UTF8。
-- 19c 建库后确认是否 CDB SELECT name, cdb FROM v$database; -- 如果是 CDB,查看 PDB 列表 SELECT name, open_mode FROM v$pdbs;

逻辑说明:19c 默认 CDB 架构,很多老应用连接串要指向 PDB 而不是根容器。参数说明:cdb为 YES 表示容器数据库,v$pdbs列出所有可插拔数据库,连接时 service name 要用 PDB 的名字。

4.3 19c 监听与网络配置:service name 别写错

19c 的监听配置和 11g 类似,但 CDB/PDB 架构下 service name 容易搞混。

# 查看监听注册的服务 lsnrctl status # 输出里会看到类似: # Service "orcl" has 1 instance(s). # Service "orclpdb" has 1 instance(s).

逻辑说明:orcl是根容器服务,orclpdb是 PDB 服务。应用连接串里的 service name 要写 PDB 的,否则连上去看不到业务表。参数说明:如果 PDB 没自动注册,在 PDB 内执行ALTER SYSTEM REGISTER。

-- 切换到 PDB 并注册 ALTER SESSION SET CONTAINER = orclpdb; ALTER SYSTEM REGISTER;

逻辑说明:ALTER SESSION SET CONTAINER把当前会话切到指定 PDB,后续操作都在 PDB 内生效。参数说明:PDB 名按建库时设定的改,默认通常是orclpdb。

5. 避坑与排查:11g 和 19c 在 Windows 上最容易翻车的五个点

5.1 安装器闪退或卡在“正在准备”

现象:双击 setup.exe 后进程消失,或进度条卡在 0% 不动。原因:临时目录空间不足、路径含中文、JRE 与系统不兼容。解决:清理%TEMP%,把安装包解压到C:\ora_setup这类短路径,对 setup.exe 设兼容模式,11g 尤其要设 Windows 7 兼容。

5.2 监听起来了但连不上,报 ORA-12541

现象:lsnrctl status显示监听正常,客户端连报无监听程序。原因:实例没注册到监听器,或监听器监听的是 localhost 而客户端用 IP 连。解决:在数据库内执行ALTER SYSTEM REGISTER;检查listener.ora里的 HOST 是否写成了主机名,改成实际 IP 或 0.0.0.0。

5.3 建库到 80% 报 ORA-27040 或空间不足

现象:DBCA 建库中途失败,日志提示无法创建数据文件。原因:数据目录权限不足,或磁盘剩余空间不够。解决:用icacls给 oracle_admin 完全控制权限;检查D:\oracle\oradata所在盘剩余空间,11g 建库至少预留 10GB,19c 预留 15GB。

5.4 19c 连上了但看不到业务表

现象:用 sqlplus 连上后SELECT报表不存在。原因:连到了根容器而不是 PDB。解决:确认连接串的 service name 是 PDB 名,或在 sqlplus 里ALTER SESSION SET CONTAINER = 你的PDB名切过去。

5.5 服务启动失败,报“系统找不到指定文件”

现象:Windows 服务列表里 Oracle 服务启动报错。原因:ORACLE_HOME 环境变量被改过,或安装目录被移动。解决:检查注册表HKLM\SOFTWARE\Oracle下的路径,恢复环境变量,必要时用oradim重建服务。

# 用 oradim 重建 11g 实例服务 oradim -new -sid ORCL -intpwd YourPwd -startmode auto -pfile D:\oracle\product\11.2.0\dbhome_1\database\initORCL.ora

逻辑说明:oradim是 Windows 上管理 Oracle 实例服务的工具,服务丢失或损坏时用它重建。参数说明:-sid指定实例名,-intpwd是内部密码,-startmode auto表示随系统自动启动。

6. 装完之后怎么验证:三条命令确认 11g 和 19c 都真正可用

装完不验证,等于没装。我一般用三条命令交叉确认:监听、实例、连接。

# 第一条:监听状态,确认服务已注册 lsnrctl status # 第二条:进入数据库,确认实例打开 sqlplus / as sysdba SQL> SELECT instance_name, status FROM v$instance; SQL> SELECT name, open_mode FROM v$database; SQL> EXIT; # 第三条:用业务账户走网络连接,模拟应用真实路径 sqlplus 用户名/密码@//127.0.0.1:1521/服务名 SQL> SELECT 1 FROM dual; SQL> EXIT;

逻辑说明:第一条看监听器有没有把服务注册进去;第二条走操作系统认证,确认实例状态是 OPEN;第三条走 TCP 网络,模拟应用连接,能查dual说明整条链路通了。参数说明:11g 的服务名通常是orcl,19c 如果是 CDB 架构,业务连接要用 PDB 的服务名如orclpdb;端口默认 1521,改过的话按实际填。

验证通过后,还有两件收尾的事值得做。一是把oracle_admin的密码和数据库 sys 密码记到密码管理工具里,Windows 上改密码涉及服务账户、注册表、密码文件多处,忘了很麻烦。二是给数据盘配个简单的空间监控,Oracle 的告警日志和归档日志涨起来不打招呼,等系统盘红了再处理就被动了。

我自己在这两个版本上反复装过多次,最大的教训是:11g 在 Windows Server 2019 上不要指望“标准流程”,兼容性设置和手动注册是常态;19c 虽然规范,但 CDB/PDB 的 service name 一定要在连接前确认清楚,否则查半天“表不存在”最后发现连错容器。装之前把账户、依赖、磁盘三样理清楚,比装的时候到处救火省事得多。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 10:07:29

JSHookMCP JS Hook与LLM反混淆:如何定位加密函数并还原混淆逻辑

JSHookMCP JS Hook与LLM反混淆:如何定位加密函数并还原混淆逻辑 【免费下载链接】jshookmcp js hook toolkit that all you need 项目地址: https://gitcode.com/gh_mirrors/js/jshookmcp 面对一段被压缩、变量名全被改写成 _0x1a2b 的 JS 代码,手…

作者头像 李华
网站建设 2026/10/9 10:06:48

CouchDB 原生 Erlang 查询服务器(Native Erlang Query Server)完整指南

数据库文档数据库后端 【免费下载链接】couchdb Seamless multi-primary syncing database with an intuitive HTTP/JSON API, designed for reliability 项目地址: https://gitcode.com/gh_mirrors/co/couchdb 点击查看 免费下载 CouchDB 默认通过外部进程&#x…

作者头像 李华
网站建设 2026/10/9 10:06:35

Transformer位置编码原理与实战选型指南

1. 位置编码到底在解决什么问题?——别再把它当成“加个向量”就完事了你刚接触Transformer时,大概率被这句话绕晕过:“Self-Attention本身不具备位置感知能力,所以必须引入位置编码。”但这句话背后藏着一个关键矛盾:…

作者头像 李华
网站建设 2026/10/9 10:06:34

编译原理实验:语法分析程序设计与实现全攻略

简介:这份资源是面向计算机专业学生的编译原理实验配套文档,聚焦语法分析程序的设计与实现,适合正在完成实验二、需要参考完整实现思路与代码的学习者。文档以算术表达式简化子集为分析对象,系统梳理了实验目的、BNF文法定义、LL(…

作者头像 李华
网站建设 2026/10/9 10:03:32

渔具制造“隐形冠军”乐欣户外闯关港股IPO,8个月进账4.6亿

乐欣户外通过上市聆讯,这条消息从上周五开始就在户外产业圈子里传开了。披露出来的核心数据确实很有话题性:8个月营收4.6亿元,净利润5624万元。单看这两个数字,放在A股那些动辄几十亿营收的制造企业面前不算起眼,但你要…

作者头像 李华