要求通过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. Windows 下制作CentOS7安装U盘

    本文属于另类的U盘制作方法(更多U盘安装见U盘安装CentOS ),如何安装CentOS,请参考<安装指南> 以下列出了,完整的制作步骤: 1.下载安装镜像 选择一个合适的镜像网站,比如网 ...

  2. shrio的rememberMe不起作用

    在移植项目.每次重启服务器需要登录.比较麻烦.于是研究下shrio的功能. rememberMe大概可以满足我的需求.但是跟着网上配置了.不起作用...... 于是乎查看源代码拉.java的好处... ...

  3. keil之编辑环境配置

    1.edit-->configuration 2. 3.开始是:ANSI编码,但一去掉:display modules,中文的注视就乱码了:请教Justchen,把编码改为GB2312,一切恢复 ...

  4. hadoop-2.2.0 HA配置

    采用的是4台真实机器: namenode:qzhong  node27 datanode:qzhong node27 node100 node101 操作系统环境:qzhong(Ubuntu-14.0 ...

  5. CSS3-transition常用属性及示例

    transition参数 语法 transition: property duration timing-function delay transition属性是个复合属性,她包括以下几个子属性: t ...

  6. String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断

    1.String的非空判断. StringUtils.isNotEmpty(String str); 2.Integer的非空判断. null != Integer ; 3.list的大小判断. li ...

  7. Swift_类和结构体

    Swift_类和结构体 点击查看源码 struct Resolution { var width = 0 var height = 0 } class VideoMode { var resoluti ...

  8. 极光推送能获取 registrationId,但是接收不到通知 - iOS

    集成极光推送进行调试的时候,运行 App 可以正常获取 registrationId,但是却迟迟无法收到推送消息,而Android 端是可以正常收到消息; 检查了证书配置和极光的配置一切正常,便开始返 ...

  9. L2-001 紧急救援(dijkstra算法)

    题目: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上.当其他城市 ...

  10. 新花生壳+tomcat 发布javaWeb项目【亲测有效】

    一.新花生壳1.0 在花生壳官网(http://www.oray.com)上下载<新花生壳1.0>的安装软件,软件安装完成后,需要注册,注册成功后花生壳官网会给我们分配一个域名,样式大概为 ...