oracle19C设置兼容低版本客户端
由于oracle11G 官方不在维护,现在很多客户都把数据库升级到oracle19C,新项目也是使用oracle19C数据库居多,默认情况下Oracle 8,Oracle 8i,Oracle 9i,Oracle 10g,Oracle 11g等 oracle数据库客户端是无法访问19C的,低版本客户端登录会提示协议不匹配之类。可以通过修改oracle19C数据库服务器的配置使这些低版本客户端不用升级情况下可以连接oralce19C。
我还是推荐客户端升级,比如安装oracle19C client之类,java也有oracle19C的jar,但是项目上历史遗留问题,不配置的话目前项目上常用的plsql9+oracle10g客户端组合无法连接19C,需要安装plsq11+oracle19C客户端组合,特别是PB程序基本配置的oracle9i,10G客户端,不好升级,所以记录下设置方法,方便项目上翻出来使用。
配置方法
查找方法1 tnsping 127.0.0.1:1521
[oracle@chendu oracle]$ tnsping 127.0.0.1:1521 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 09-10月-2022 14:35:03 Copyright (c) 1997, 2019, Oracle. All rights reserved. 已使用的参数文件: /opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora 已使用 HOSTNAME 适配器来解析别名 尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) OK (130 毫秒)
查找方法2,执行echo $ORACLE_HOME指令得到oracle安装目录
[oracle@chendu oracle]$ echo $ORACLE_HOME /opt/oracle/product/19c/dbhome_1
查找方法3 ,lsnrctl status指令查找到listener.ora的路径,和sqlnet.ora都在一个目录下
[oracle@chendu oracle]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 09-10月-2022 14:36:08 Copyright (c) 1991, 2019, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=chendu)(PORT=1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for Linux: Version 19.0.0.0.0 - Production 启动日期 30-9月 -2022 10:28:54 正常运行时间 9 天 4 小时 7 分 14 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora 监听程序日志文件 /opt/oracle/diag/tnslsnr/chendu/listener/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=chendu)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=chendu)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/product/19c/dbhome_1/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW)) 服务摘要.. 服务 "ORCLCDB" 包含 1 个实例。 实例 "ORCLCDB", 状态 READY, 包含此服务的 1 个处理程序... 服务 "ORCLCDBXDB" 包含 1 个实例。 实例 "ORCLCDB", 状态 READY, 包含此服务的 1 个处理程序... 服务 "d9ca2de3d52b7f7ce055407811bbee18" 包含 1 个实例。 实例 "ORCLCDB", 状态 READY, 包含此服务的 1 个处理程序... 服务 "orclpdb1" 包含 1 个实例。 实例 "ORCLCDB", 状态 READY, 包含此服务的 1 个处理程序... 命令执行成功
修改sqlnet.ora内容如下
如果已有sqlnet.ora文件直接把原文件备份,然后只配置下面内容即可,之前的内容不用保留, 如果没有sqlnet.ora文件,新建一个sqlnet.ora文件把下面内容复制上去即可
SQLNET.ALLOWED_LOGON_VERSION_SERVER 参数设置在连接到 Oracle 数据库实例时允许的最低身份验证协议
SQLNET.ALLOWED_LOGON_VERSION_CLIENT 参数设置对于客户端允许的以及在服务器充当客户端时和连接到 Oracle 数据库实例时允许的最低身份验证协议。
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
添加参数后新无需重启数据库或者监听,但是已有用户需要修改用户密码,否则登录会报错用户名或密码错误
可以在服务器用sqlplus / as sysdba 登录 修改其他用户密码
修改 system密码
用sqlplus / as sysdba登录
ALTER USER system IDENTIFIED BY xxxxx;