必须将主机名改为≤15位纯字母数字组合(如ORASRV01)并重启服务器,否则安装时会因CFS校验失败报错[INS-30014];同时需以管理员身份运行setup.exe、关闭Defender实时防护、使用Windows内置账户安装,并按规范创建非系统盘两级目录结构。
Oracle 19c 安装前必须改掉的主机名
windows server 上安装 oracle 19c 遇到 [ins-30014] unable to check whether the location specified is on cfs 错误,八成是因为主机名超过 15 个字符或含下划线、连字符等非法字符。oracle 安装程序内部调用 windows 集群服务(cfs)校验逻辑时会失败,哪怕你根本没装 rac。
解决方法很简单:控制面板 → 系统 → 更改设置 → 更改 → 输入纯字母数字组合、长度 ≤15 的主机名(如 ORASRV01)→ 确定 → 重启服务器。不重启,改名不生效,安装仍会卡在检查阶段。
常见踩坑点:
- 用中文、空格、点号(
.)、下划线(_)命名主机名 - 改名后没重启,直接点下一步,报错照旧
- 在域环境中未同步更新 DNS 或
hosts文件,导致后续监听器解析异常
用本地 Administrator 账户安装时的关键配置项
选择「使用 Windows 内置账号」安装模式时,Oracle 会把数据库服务注册为 NT AUTHORITY\SYSTEM 或指定的本地账户。但若选「创建新 Windows 用户」,反而容易因权限继承问题导致监听器启动失败或数据文件写入被拒。
推荐做法是:在安装向导第 7 步「Oracle 主目录用户」界面,勾选 Use Windows Built-in Account,并确保当前登录用户就是本地 Administrator(不是域账号,也不是普通管理员组成员)。这样所有 Oracle 服务(OracleServiceORCL、OracleOraDB19Home1TNSListener)都以 SYSTEM 权限运行,避免路径访问被 UAC 拦截。
注意两个硬性条件:
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
- 安装过程全程以「管理员身份运行」setup.exe,右键 → 「以管理员身份运行」,不能只靠 UAC 提权
- 关闭 Windows Defender 实时防护或临时添加
ORACLE_HOME目录为排除项,否则解压和写入oradata会被拦截
规范目录结构:为什么不能直接解压到 C:\oracle
Oracle 官方文档虽未明令禁止根目录安装,但实际部署中,C:\oracle 或 C:\app\oracle 这类浅层路径极易触发 Windows 权限策略冲突,尤其在 Server 2019/2022 中,系统盘默认启用 Controlled Folder Access,会阻止 Oracle 后台进程修改 C:\ 下任意子目录。
正确做法是:在非系统盘(如 D:、E:)创建两级固定结构,例如 D:\app\oracle\product\19c\dbhome_1。其中:
-
D:\app是 Oracle 推荐的基目录根(ORACLE_BASE),必须由管理员手动创建并赋予Administrators和SYSTEM完全控制权限 -
oracle\product\19c\dbhome_1是解压后重命名所得,不能含空格或中文;dbhome_1是 Oracle 自动识别的主目录标识,不可改成home1或其他 - 数据库文件(
oradata)务必放在另一分区,如E:\oradata\ORCL,避免与软件混放导致磁盘打满后实例崩溃
安装完成后必须验证的三项服务与端口
安装界面显示「完成」不等于可用。很多用户跳过验证,结果连 sqlplus / as sysdba 都报 ORA-12560: TNS:protocol adapter error。
立即检查以下三项:
- Windows 服务列表中,
OracleServiceORCL和OracleOraDB19Home1TNSListener必须是「正在运行」状态;若为停止,手动启动,并设为「自动(延迟启动)」 - 命令行执行
lsnrctl status,确认输出中包含STATUS of the LISTENER及Listening Endpoints Summary...,且端口为1521 - 防火墙必须放行 TCP 1521 端口:打开「高级安全 Windows 防火墙」→ 「入站规则」→ 新建规则 → 端口 → TCP 1521 → 允许连接 → 作用域设为「任何 IP」(测试环境)或限定客户端网段(生产环境)
最容易被忽略的是监听器日志位置:%ORACLE_HOME%\network\log\listener.log。一旦连接失败,先看这个文件末尾是否有 TNS-12541: TNS:no listener 或权限拒绝记录——它比错误码更能定位真实问题。










