Windows Server如何配置Oracle19c环境变量

小浩小哥_9876

小浩小哥_9876

2026-10-14

593人浏览

原创

oracle_home、tns_admin、path 三者必须手动正确设置;tns_admin 必须指向独立目录(如 c:\oracle\network),不可用 oracle_home\network\admin;path 中 %oracle_home%\bin 需排最前;windows server 2012 r2 需在 sqlnet.ora 中配置 ssl_version = 1.2。

windows server如何配置oracle19c环境变量

ORACLE_HOME、TNS_ADMIN、PATH 这三个环境变量必须手动设置,缺一不可;否则 sqlplus 找不到、tnsping 报错、应用连不上数据库——不是装得不对,是环境没配对。

为什么不能只设 ORACLE_HOME

Oracle 查找配置文件的路径逻辑是:先看 TNS_ADMIN,再找 %ORACLE_HOME%\network\admin,最后查注册表。很多人只设了 ORACLE_HOME,却把 tnsnames.ora 放在默认目录下,结果 tnsping 能通,Java 应用或 Python 的 cx_Oracle 却报 ORA-12154。
原因:JDBC/OCI 驱动默认不读注册表,也不 fallback 到 ORACLE_HOME 下的 admin 目录,而是严格依赖 TNS_ADMIN。

TNS_ADMIN 必须指向一个干净、独立的目录

不要用 %ORACLE_HOME%\network\admin 作为 TNS_ADMIN 值——这个目录在客户端安装后可能为空,且容易被后续补丁或工具覆盖。
推荐做法:

windows-git-ops
windows-git-ops

在 Windows PowerShell 工作区执行 Git 操作时使用此技能,特别适用于创建分支、暂存、提交、合并、状态检查等。

下载
  • 新建一个固定路径,如 C:\oracle\network
  • 把 tnsnames.ora、sqlnet.ora 全部放进去
  • 在系统环境变量中新增 TNS_ADMIN,值设为该路径(注意:不带末尾反斜杠)
  • 若用 Windows Server Core(无图形界面),用 PowerShell 设置:
    setx TNS_ADMIN "C:\oracle\network" /m
    (/m 表示系统级)

PATH 要包含 %ORACLE_HOME%\bin,且顺序不能错

Windows 搜索可执行文件时按 PATH 顺序匹配。如果前面有旧版本 Oracle 的 bin 目录(比如 12c 客户端残留),就会优先调用老版 sqlplus.exe,导致连接行为异常(例如 TLS 握手失败但不报错)。

  • 确认 %ORACLE_HOME%\bin 在 PATH 最前面(或至少排在其他 Oracle bin 之前)
  • 检查是否有多余路径,例如 C:\app\client\olduser\product\12.1.0\client_1\bin,建议删除
  • 验证方式:打开新 CMD 窗口,运行
    where sqlplus
    ,输出应唯一且指向 19c 的 bin 目录

Windows Server 2012 R2 上还要额外处理 TLS 1.2 兼容性

Oracle 19c 默认要求 TLS 1.2,而 Server 2012 R2 原生只启用到 TLS 1.0。即使环境变量全对,也会在连接时静默失败(ORA-28860 或连接超时)。

  • 编辑 %TNS_ADMIN%\sqlnet.ora,加入一行:
    SSL_VERSION = 1.2
  • 或者升级客户端到 19.21+ 版本(免配此项)
  • 不建议全局启用 TLS 1.2 系统策略——会影响其他旧服务,精准控制在 Oracle 层更安全
环境变量本身不难设,真正容易出问题的是路径冲突、多版本共存、以及 TLS 等底层协议细节被掩盖在“连不上”的表象之下。尤其是 Server Core 或域环境中,TNS_ADMIN 设错会导致每次连接都多扫一遍注册表和多个磁盘路径,延迟肉眼可感。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

961

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2753

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2770

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1589

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2193

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2949

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4449

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

766

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程