首页 > 数据库 >Dolphinscheduler不重启加载Oracle驱动

Dolphinscheduler不重启加载Oracle驱动

时间:2024-05-28 15:48:40浏览次数:25  
标签:java 重启 Dolphinscheduler jar Oracle 驱动 加载

转载自刘茫茫看山

问题背景

某天我们的租户反馈数据库连接缺少必要的驱动,我们通过日志查看确实是缺少部分数据库的驱动,因为DolphinScheduler默认只带了Oracle和MySQL的驱动,并且需要将pom文件中的test模式去掉才可以在打包的时候引入。我们的任务量比较大,在3.0存在容错机制的情况下,重启Master和Worker时,任务会重复容错多次,对用户使用很不友好,对Yarn集群的压力也比较大,所以非必要不会重启服务,这就需要在不重启的前提下加载新的驱动包。

遇到的问题

当开始做的时候,想的过于简单,下面是Worker模块下的启动命令,libs目录后面加载的是*,所以我们认为程序肯定会自动加载jar。

file

但是当我们将jar放到对应的目录后,重启测试数据库连接,发现还是报了和之前一样的问题。

Could not load driverClass oracle.jdbc.driver.OracleDriver

我们需要了解java.class.path为什么没有将我们新添加的驱动包加载进去,于是我们找出了worker服务的进程id,并通过jinfo命令查看类路径的加载情况,发现java.calss.path对应的目录从*变成了jar包的绝对路径,我们新添加的jar的绝对路径没有在里面,所以不会读取驱动。

file

file

file

解决方法

我们最熟悉的类加载模式就是双亲委派机制,在类加载模式中存在一个ExtensioinClassloader类,它是java.lang.ClassLoader的子类,该类加载器负责加载Java的扩展库JAVA_HOME/jre/lib/ext/*.jar或者java.ext.dirs路径下的内容。
file

我们通过jinfo命令查看进程中的扩展目录,发现java.ext.dirs对应的值不是绝对路径,也就表示我们可以尝试通过将额外的驱动jar包放到扩展目录中加载。

file

这里以Oracle驱动为例,通过将Oracle驱动jar放到对应的扩展目录中,测试数据源连接情况,连接成功,希望可以给有需要的小伙伴提供有价值的参考。

本文由 白鲸开源 提供发布支持!

标签:java,重启,Dolphinscheduler,jar,Oracle,驱动,加载
From: https://www.cnblogs.com/DolphinScheduler/p/18218146

相关文章

  • 异步数据加载与绑定设计: AsyncLoadHelper
    在现代应用程序开发中,异步数据加载和管理是一个普遍的需求。本文介绍了一个自定义的异步数据加载工具——AsyncLoadHelper。通过详细的设计和实现介绍,以及结合实际应用示例,展示了AsyncLoadHelper在简化异步操作、提高代码可读性和维护性方面的优势。在开发过程中,异步数据加载常常......
  • oracle adg dup 一拖一拖一(一主两备)(dup)
    oracleadgdup一拖一拖一(一主两备)1.配置PublicIPora1nmcliconnectionmodifyens33ipv4.addresses192.168.134.249/24ipv4.gateway192.168.134.2ipv4.methodmanualautoconnectyesnmcliconnectionupens33nmcliconnectionshoworastd1节点二nmclicon......
  • Linux使用脚本一键安装Oracle11g
    最近一直在搞服务器,记录下使用脚本安装Oracle数据库,仅供学习使用链接:https://pan.baidu.com/s/1Rrx5SeA-t8hKZW2ZqlqfZg 提取码:lss11.安装CentOS7虚拟机Linux2.修改IP(自动分配IP或者配置静态IP)cd/etc/sysconfig/network-scripts/ls查看文件(后续要使用ens33)修改ifvf......
  • Centos7下安装Oracle11G
    参考网址:https://www.cnblogs.com/zhangzhixi/p/17595686.htmlhttps://blog.csdn.net/qq_40965479/article/details/131727958离线文档:https://files.cnblogs.com/files/blogs/309023/Centos7下安装Oracle11G.pdf?t=1716865847&download=true......
  • vue首屏加载动画打包后失效
    本地环境运行时,没有问题,打包后,加载动画没有效果,尝试修改:extract:false后成功。 加载动画示例:index.html中<linkrel="stylesheet"href="static/css/loading.css"/><body><divid="app"><divid="appLoading"><d......
  • Oracle数据库数据泵(Data Pump)导出与导入
    expdp(导出数据)基本语法:expdp"'/assysdba'"DIRECTORY=EXPDPSCHEMAS=用户名DUMPFILE=my20240528%U.DMPCLUSTER=NOLOGFILE=my_20240528EXPDP.LOG示例:导出用户下指定的表数据。expdp"'/assysdba'"DIRECTORY=EXPDPTABLES=usre1.table1,usre2.ta......
  • WPF Splash Screen – A New Splash Screen Manager (v20.1) 启动页 闪屏页 初始加载
    WPFSplashScreen–ANewSplashScreenManager(v20.1)(devexpress.com)  WPFTeamBlog RSS06July2020A splashscreen isaneffectivewaytoimproveanapp’suserexperienceduringlengthystartupoperations.Unfortunately,creatinganef......
  • 成为MySQL DBA后,再看ORACLE数据库(二、监听与连接)
    一、监听器的启动ORACLE启动完成后,可以通过sqlplus/assysdba连接数据库,但是这个只是本地连接,无法通过tcp/ip远程访问数据库,这时候就要启动ORAClE的监听器。启动监听器的命令是lsnrctlstart,启动成功后,可以观察到1521端口也随之监听,这时候就能通过ip加端口远程访问数据库了。在......
  • oracle密码即将过期,ERROR: ORA-28002: 7 天之后口令将过期
    oracle数据库默认的密码是180天,可以用以下语句查询:1、查询用户的profile,一般是DEFAULTselectusername,profilefromdba_users;2、以DEFAULT作为dba_profiles表profile字段的参数,查询密码生效天数select*fromdba_profileswhereprofile='DEFAULT'andresource_name=......
  • Oracle数据库跟踪SQL
    教大家如何玩转跟踪(toownersession、othersession)Oracle数据库的跟踪和分析方法Oracle数据库跟踪SQL的几种方法Oradebug工具使用https://blog.csdn.net/qq_43670385/article/details/132908317一、跟踪自己的会话或者是别人的会话1、跟踪自己的会话很简单Alterses......