定期从Oracle导数据至MySQL

因部分项目需求,需要将Oracle中单表的数据定期导入至MySQL,注意此处对数据的时效性要求不高。要求高可以利用goldengate

首先,需要将visit表中的vid,userid,goodid,time4个字段导出来

MYDB=visit   #MySQL数据库名
MYUSER=vis_my_user  #MySQL用户名
MYPASS=is_my_pass  #MySQL密码
ORA_NAME=visit       #Oracle实例名
ORA_USER=visuser    #Oracle用户名
ORA_PASS=vispass    #Oracle密码
 
id=`mysql -u$MYUSER -p$MYPASS $MYDB -N -e "select max(vid) from visit;"`
#MySQL -N参数可以忽略第一行输出

sqlplus -S ${ORA_USER}/${ORA_PASS}@${ORA_NAME} << EOF 
set echo off;
set feedback off;
set newpage none;
set verify off;
set pagesize 0;
set term off;
set trims on;
set linesize 600;
set heading off;
set timing off;
set numwidth 38;
SPOOL /tmp/visit_result.txt;   #导出结果位置,以下为查询语句
select 
        vid || ‘,‘ || 
        userid || ‘,‘ || 
        goodsid || ‘,‘ || 
        time
from
        VISIT
WHERE
        to_char(time,‘yyyymmdd‘) >= to_char(SYSDATE-30,‘yyyymmdd‘)
AND 
        vid > $id
order by
        CREATETIME asc;
SPOOL OFF;
exit
EOF

mysql -u$MYUSER -p$MYPASS $MYDB -e "load data local infile ‘/tmp/visit_result.txt‘ into table visit FIELDS TERMINATED BY ‘,‘ (userid,goodsid,time,vid);"
#此处为将Oracle数据导入MySQL
时间: 2024-08-15 04:57:09

定期从Oracle导数据至MySQL的相关文章

sqoop1.4.4从oracle导数据到hive中

sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru.cn/thread-94073-1-1.html sqoop.metastore.client.record.passwordhttp://blog.csdn.net/ryantotti/article/details/14226635 开启sqoop metastore step 1 创建sqoo

Oracle导数据到SQL server的方法总结

通过oracle10g 访问sql server 2008 导数据步骤 最近在项目中遇到要将Oracle数据库的数据导入到SQL server数据库中,解决办法如下: 一.准备工作 配置Oracle 客户端(TNS 监听)tnsnames.ora 文件,其中需要注意文件中的数据库别名"ORADB",确保主机可以通过SQLPlus 访问远程Oracle 数据库.示例如下: ORADB= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =HO

sqoop 从oracle导数据到hive中,date型数据时分秒截断问题

oracle数据库中Date类型倒入到hive中出现时分秒截断问题解决方案 1.问题描述: 用sqoop将oracle数据表倒入到hive中,oracle中Date型数据会出现时分秒截断问题,只保留了‘yyyy-MM-dd',而不是’yyyy-MM-dd HH24:mi:ss'格式的,后面的‘HH24:mi:ss’被自动截断了,在对时间要求到秒级的分析处理中这种截断会产生问题. 2.解决方案: 在用sqoop倒入数据表是,添加--map-column-hive 和--map-column-jav

从csv文件导数据到MySQL

导入: load data local infile 'D:\\top-1m.csv'    (注意要加上local)10.21.into table `site` fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n'; 导出: select * from `site` into local outfile 'D:\\top-1m.csv' fields t

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非关系型数据库,所以干脆一起研究一下,对比学习中找不同,首先说一下本人使用的数据库版本和可视化工具Oracle10G—PL/SQL Developer9MySQL5.5.29—MySQL Workbench6.0MongoDB2.4.9(32bit最大2G)—Robomongo0.8.4为了保持数据的

使用MySQLMigrationToolkit快速将Oracle数据导入MySQL

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL 上来先说点废话 本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非关系型数据库,所以干脆一起研究一下,对比学习中找不同,首先说一下本人使用的数据库版本和可视化工具 Oracle10G—PL/SQL Developer9 MySQL5.5.29—MySQL Workbench6.0 MongoDB2.4.9(32bit最大2G)—Robomongo0.8.4 为

将oracle的数据导入到mysql的四种方法

一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量,用这种简陋的工具不大可靠. 意外发现平时用的数据库视图工具Navicat Premium中有数据迁移工具,意外的好用.这个工具本身支持mysql,oracle,sqlLite,PostgreSql数据库,因此而也提供了在不同数据库之间迁移数据的功能. 迁移之前,先确保你建立了这两个数据库的conn

将数据从MySQL迁移到Oracle的注意事项

1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段.CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2. 单引号的处理MYSQL里可以用

使用sqoop从mysql往hive中增量导数据shell脚本

一:sqoop增量导入的两种方式 Incremental import arguments: Argument Description --check-column (col) Specifies the column to be examined when determining which rows to import. (the column should not be of type CHAR/NCHAR/VARCHAR/VARNCHAR/ LONGVARCHAR/LONGNVARCHA