You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Airflow连接Oracle 19c报错DPY-3015寻求解决方案

解决Airflow Oracle Provider连接Oracle 19c时的DPY-3015错误

错误原因:python-oracledb的thin模式不支持Oracle 19c默认使用的SHA-512密码验证器(类型0x939),而Airflow Oracle Provider默认采用thin模式连接。

方案1:切换至python-oracledb厚模式(Thick Mode)

厚模式兼容所有密码验证器类型,但需依赖Oracle Instant Client:

  • 安装对应Oracle 19c版本的Instant Client,配置系统环境变量(如LD_LIBRARY_PATH或PATH)使其可被识别。
  • 在Airflow的Oracle连接配置中,修改Extra字段添加启用参数:
    {"thick_mode": true}
    
  • 若需指定Instant Client路径,补充参数:
    {"thick_mode": {"lib_dir": "/path/to/instantclient_19_19"}}
    

方案2:修改Oracle用户密码验证器类型

生成兼容thin模式的SHA-1验证器(无需依赖客户端):

  1. 以DBA权限登录Oracle,执行命令更新目标用户密码(替换<username>、<password>、<old_password>):
    ALTER USER <username> IDENTIFIED BY <password> REPLACE <old_password>;
    
    执行后用户会同时生成SHA-1和SHA-512验证器,thin模式将自动使用兼容的SHA-1版本。
  2. (可选)确保数据库参数配置兼容:
    ALTER SYSTEM SET SQLNET.ALLOWED_LOGON_VERSION_SERVER = 11 SCOPE=SPFILE;
    
    修改后需重启数据库生效。

方案3:升级python-oracledb版本

升级至最新稳定版(如2.5+),新版本对密码验证器的支持做了优化:

pip install --upgrade python-oracledb

内容的提问来源于stack exchange,提问作者Mahardian Yusuf Gintz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:05:11