要求通过logstash从oracle中获取数据,然后相应的直接传入mysql中去。

基本测试成功的配置文件如下:

input { 
  stdin {
  }
  jdbc {
  jdbc_connection_string => "jdbc:oracle:thin:@//192.168.217.135:1521/orcl"
  jdbc_user => "root"
  jdbc_password => "123"
  jdbc_driver_library => "/usr/share/logstash/config/ojdbc6.jar"
  jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
  jdbc_paging_enabled => "true"
  jdbc_page_size => "50000"
  jdbc_default_timezone => "Asia/Shanghai"

  statement => "select date_time from PERSON"

  record_last_run => "true"
  use_column_value => "true"
  tracking_column_type => "timestamp"
  tracking_column => "create_datetime"
  last_run_metadata_path => "/usr/share/logstash/config/last_datetime/PERSON"
  clean_run => "false"
  lowercase_column_names => "false"
  }
}

output {
  jdbc {
  driver_jar_path => "/usr/share/logstash/config/mysql-connector-java-5.1.7-bin.jar"
  driver_class => "com.mysql.jdbc.Driver"
  connection_string => "jdbc:mysql://192.168.217.136:3306/orcl?autoReconnect=true&user=root&password=123"
  statement => ["insert into PERSON(date_time) values(?)","%{date_time}"]
  }
}

其中没有用到过滤方法,需求仅仅用了logstash-input-jdbc和logstash-output-jdbc插件来完成数据库数据导入的,安装插件的命令

./bin/logstash-plugin install logstash-input-jdbc

logstash启动后如果配置或者环境不正确,会有相应的报错,主要注意 [ ] 里的是哪方面的报错,里边会得到相应的报错信息

我排查了一些问题,没有记录日志,但是无非就是

配置文件出错,比如说JDBC连接数据库的url等等

sql没有写对,注意statement字段写获取的和插入的sql,mysql中要建立相同的字段

防火墙没有关闭

驱动包过旧

等等

其中遇到的最晚解决的问题是,从oracle获取的时间字段,传入不了mysql,想到了filter方法进行时间过滤,但是没有配置好,后来突然想到了给mysql改一下数据类型,改成varchar,oracle的date类型和mysql的是不一样的,这个需要注意,改成字符串类型完美的解决了这个问题,因为需求仅仅是灌入mysql,如果是主从复制或者数据库完全迁移就需要正确的思路了,这个思路虽然可行,但是加入数据库要进行迁移连接,web服务连接到mysql,那么在界面的输入可能会又变化,所以还是需要研究oracle如何匹配mysql的时间字段。

好的解决方案是相同数据库主从备份或ELK,但是这种也是可行的,也可以做到数据实时传输,类似于主从备份,上述的方法需要在目标库中建立相同的字段和数据类型,有时候数据类型的转换也是个问题,

更简单的方法是用navicat premium,缺点是仅仅数据迁移,无法实时更新数据

logstash-input-jdbc and logstash-ouput-jdbc的更多相关文章

  1. (三)ELK logstash input

    一,input模块 input 插件官方详解: https://www.elastic.co/guide/en/logstash/current/input-plugins.html Logstash ...

  2. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

  3. 解决 01-Jul-2016 10:49:05.875 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.D

    01-Jul-2016 10:49:05.875 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoade ...

  4. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. DBUtils开源JDBC类库,对JDBC简单封装(作用是:简化编码工作量,同时不会影响程序的性能)

    DBUtils:提高了程序的性能,编程更加简便 架包 mysql-connector-java-jar commons-dbcp-1.4jar commons-pool-1.5.5jar common ...

  6. Hibernate 抓取策略fetch-2 (批量抓取batch-size以及hibernate.jdbc.fetch_size、hibernate.jdbc.batch_size)

    类关系: User N~1 Group 测试代码: System.out.println("1"); List stuList = session.createQuery(&quo ...

  7. SparkSQL使用之JDBC代码访问Thrift JDBC Server

    启动ThriftJDBCServer: cd $SPARK_HOME/sbin start-thriftserver.sh & 使用jdbc访问ThriftJDBCServer代码段: pac ...

  8. org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver com.mysql.jdbc.Driver class not found

    今天在使用hibernate搭建开发环境的时候出现了一个不可思议的问题: org.hibernate.service.classloading.spi.ClassLoadingException: S ...

  9. hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size

    hibernate的速度问题 这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,知道后来才知道问题的所在.       其实hibernate的速度性能并不差,比起jdbc来说,又是 ...

  10. 解决 Tomcat reload WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but fail

    转自:http://www.cnblogs.com/interdrp/p/5632529.html 我的错误如下: 06-Sep-2016 18:57:10.595 WARNING [localhos ...

随机推荐

  1. js 实现图片无限横向滚动效果

    门户网站好多都有产品无线滚动展现的效果: 测试demo1 -- 非无缝滚动(可以看出来从头开始的效果): css样式如下: .box{ width: 1000px; border: 1px solid ...

  2. python3带tkinter窗口的ftp服务器,并使用pyinstaller打包成exe

    python带tkinter窗口的ftp服务器,使用python3编写,打包使用pyinstaller,命令 pyinstaller -F .\ftpserver.py 代码也可在我的github上下 ...

  3. JAVA揭竿而起总要有名号

    古代揭竿而起总要有个响亮的名号,这可不是随便的哦,比如  苍天已死,黄天当立... 玩JAVA里面形形色色的名字,都是有套路的,至于名字怎么起法,那得问问标识符 标识符 用作给变量.类和方法命名.注意 ...

  4. Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态

    (一)问题: 最近在做Oracle数据清理,在对分区表进行数据清理时,采用的方法是drop partition,删除的过程中,没有遇到任何问题,大概过了10分钟,开发人员反馈部分分区表上的业务失败.具 ...

  5. 四种常见的 POST 提交数据方式对应的content-type

    原文地址:https://www.cnblogs.com/wushifeng/p/6707248.html application/x-www-form-urlencoded 这应该是最常见的 POS ...

  6. 搭建Extjs框架(二)

    搭建Extjs 框架 二.编写入口文件 app.js,配置extjs 组件\视图文件路径 并将app.js引入index.html       在app.js中指定一些文件的路径,Extjs页面的起始 ...

  7. 解决vue变量未渲染前代码显示问题

    在网络加载缓慢或者刷新的时候总会有那么一瞬间出现vue的模板代码,实在很影响美观,对于我这种有强迫症的人来说实在是忍无可忍,后来经过查找资料,终于发现了解决方法,可以使用vue现成的指令来解决这个问题 ...

  8. mui的openWindowWithTitle()参数及说明

    mui.openWindowWithTitle({ url: 'xxx.html', //String类型,要打开的界面的地址 id: 'id', //String类型,要打开的界面的id style ...

  9. 【usaco】1.1

    你的飞碟在这儿Your Ride Is Here(难度:入门难度) 题目链接 题目大意 emmmm 输入两个字符串,问他们每个字母的asco码相乘后字符串是否相等. 思路 一道水题?(雾) 错误代码: ...

  10. 浅析MySQL主从复制技术(异步复制、同步复制、半同步复制)

      Preface       As we all know,there're three kinds of replication in MySQL nowadays.Such as,asynchr ...