Oracle 19c 在 Windows 11 上虽无官方认证,但可通过绕过系统检查(如使用 setup.exe -ignoreSysPrereqs -ignorePrereq)、设置兼容模式(Windows 10)、确保纯英文无空格路径、正确配置监听器与服务权限、生成密码文件等措施实现成功安装与运行。

不能直接在 Windows 11 上“一键安装” Oracle 19c —— 它不支持 Windows 11 的官方认证,但实际可以跑,关键在于绕过安装程序的系统检查和规避已知兼容性陷阱。
setup.exe 启动就报错 INS-32012 或提示“不支持当前操作系统”
这是最常见卡点:Oracle 19c 安装程序内置的 OS 检查逻辑未更新 Windows 11 的版本号(Windows 11 内部版本号为 10.0.22000+),导致直接拒绝启动。
- 右键
setup.exe→ “属性” → “兼容性” → 勾选“以兼容模式运行”,选择Windows 10(不是 Windows 8 或 7) - 同时勾选“以管理员身份运行此程序”
- 若仍失败,在 CMD 管理员窗口中执行:
setup.exe -ignoreSysPrereqs -ignorePrereq(强制跳过所有先决条件检查) - 注意:
-ignorePrereq会跳过内存、磁盘空间等校验,确保你机器至少有 4GB 可用内存、20GB 空闲磁盘空间
安装路径含中文/空格导致 silent failure(静默失败)
安装中途无报错但最后服务起不来、监听器无法启动、sqlplus / as sysdba 连不上 —— 很大概率是路径问题。Oracle 19c 对非 ASCII 字符和空格极其敏感,尤其影响 Oracle Inventory 和监听配置。
- 解压包必须放到纯英文路径,例如:
D:\oracle\19c,不能是D:\我的软件\Oracle19c或D:\oracle 19c -
ORACLE_HOME目录名不能含空格、括号、中文、特殊符号(如&、#) - 数据库数据文件路径(
ORACLE_BASE)同样需满足上述要求,建议设为:D:\app\YourName\product\19.3\db_1 - 安装过程中所有“浏览”按钮选中的路径,务必手动核对地址栏是否全英文、无空格
安装完成但 lsnrctl status 显示“TNS-12560: TNS:protocol adapter error”
说明监听器根本没起来,常见于 Windows 11 默认关闭了某些服务或权限策略收紧。
- 打开“服务”(
services.msc),确认以下服务状态为“正在运行”:OracleOraDB19Home1TNSListener、OracleServiceORCL(或你设的 SID 名) - 若服务启动失败,右键 → “属性” → “登录”选项卡 → 改为“本地系统账户”,勾选“允许服务与桌面交互”(仅调试时启用)
- 防火墙可能拦截了 1521 端口:在 PowerShell 管理员窗口运行:
New-NetFirewallRule -DisplayName "Oracle Listener" -Direction Inbound -Protocol TCP -LocalPort 1521 -Action Allow - 检查
%ORACLE_HOME%\network\admin\listener.ora中HOST值是否为本机真实主机名(不是localhost或127.0.0.1);可用hostname命令查,然后同步修改
sys/system 登录报错 ORA-01017:用户名或口令无效
不是密码输错,而是 Oracle 19c 默认启用了“密码文件验证”,而安装时若跳过口令配置或使用了弱口令策略,会导致口令文件未生成或失效。
- 用管理员权限打开 CMD,进入
%ORACLE_HOME%\bin,执行:orapwd file=%ORACLE_HOME%\database\pw/orapw%ORACLE_SID% password=YourPass entries=10 force=y(注意路径中斜杠方向和变量替换) - 重启
OracleServiceORCL服务 - 再试:
sqlplus / as sysdba→ 应直接登录;若仍不行,尝试:sqlplus sys/YourPass@localhost:1521/ORCL as sysdba - scott 用户默认被锁,解锁需先连上再执行:
alter user scott account unlock; alter user scott identified by tiger;
真正麻烦的不是安装步骤本身,而是 Windows 11 的 UAC、服务账户权限、网络堆栈变更和 Oracle 安装器陈旧的检测逻辑之间的摩擦。每一步跳过检查都要清楚后果,而不是盲目加 -ignorePrereq 就完事。


















