oracle驱动找不到
报错信息:
[2020-03-03T12:48:00,187][ERROR][logstash.inputs.jdbc ] Failed to load /home/epm/logstash-7.3.2/oracle/ojdbc10.jar {:exception=>#<TypeError: failed to coerce jdk.internal.loader.ClassLoaders$AppClassLoader to java.net.URLClassLoader>}
{ 2016 rufus-scheduler intercepted an error:
2016 job:
2016 Rufus::Scheduler::CronJob "* * * * *" {}
2016 error:
2016 2016
2016 LogStash::ConfigurationError
2016 Java::oracle.jdbc.driver.OracleDriver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/plugin_mixins/jdbc/jdbc.rb:163:in `open_jdbc_connection'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/plugin_mixins/jdbc/jdbc.rb:221:in `execute_statement'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/inputs/jdbc.rb:277:in `execute_query'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/inputs/jdbc.rb:258:in `block in run'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:234:in `do_call'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:258:in `do_trigger'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:300:in `block in start_work_thread'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:299:in `block in start_work_thread'
2016 org/jruby/RubyKernel.java:1425:in `loop'
2016 /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:289:in `block in start_work_thread'
配置文件信息:
input {
jdbc {
jdbc_connection_string => "jdbc:oracle:thin:@192.168.95.30:1521:orcl"
jdbc_user => "DOC_ADM"
jdbc_password => "Lzgdjt#2019$Doc"
jdbc_driver_library =>"/x/x/logstash-7.3.2/oracle/ojdbc10.jar"
jdbc_driver_class =>"Java::oracle.jdbc.driver.OracleDriver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "/x/x/logstash-7.3.2/oracle/jdbc.sql"
schedule => "* * * * *"
}
}
output {
elasticsearch {
hosts => "192.168.x.x:9200"
index => "doctest"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
解决:
jdbc_driver_library 配置
ojdbc10.jar 是我在官网下载的驱动,启动还是找不到,然后我又换了一个ojdbc8.jar 还是不行。
最后去oracle数据库那台服务器上。找驱动(所在oracle机器的安装位置)
命令搜索: find / -name ojdbc8.jar
[root@xx ~]# find / -name "ojdbc8.jar"
/home/oracle/database/stage/ext/jlib/ojdbc8.jar
/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/inventory/Scripts/ext/jlib/ojdbc8.jar
/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/inventory/backup/2019-07-17_03-11-45PM/Scripts/ext/jlib/ojdbc8.jar
/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/jdbc/lib/ojdbc8.jar
找到对应哪个jar /home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/jdbc/lib/ojdbc8.jar
然后把它拷贝到之前服务器上对应目录下。就启动成功了。
jdbc_driver_class配置
jdbc_driver_class=>"Java::oracle.jdbc.driver.OracleDriver"
网友评论