如何实现两个kettle实现数据库同步步部分表的数据

&&完如何实现sqlserver中的部分表的数据定时同步到oracle个人事管理系统用的是sqlserver数据库,erp系统用的是oracle数据库,想在要把sqlserver中的部分表中的部分字段定时同步到oracle数据中的表里面,我用的是link server + T-SQL ,不过在新建链接的时候找不到oracle的odbc驱动,后来我安装了oracle的客户端,但是在数据源中找到了却不能加载,报了14001的错,请问怎么解决啊?另外,想在要把sqlserver中的部分表中的部分字段定时同步到oracle数据中的表里面,T-SQL怎么写啊,请大神指点啊!!!10个牛币所有回答列表(1)&LV2我们公司以前经常做不同数据库之间的数据同步, 有一个开源的软件不错,纯JAVA编写哦,叫kettle, 很简单都是拖拽式的 &也可以写JOB, 也很稳定,关键支持数据库很多,深入了还可以做集群。 我推荐你使用这个。1. 建立数据库连接, 支持很多数据库。 根据你的需求 &建立一个oracle的 一个sqlserver的&2. 建立转换, 这一步通常是从某个数据库某个表到另一个数据库某个表的。可以全表更新,也可以根据主键进行插入更新操作。&3. 建立JOB作业, 这就是建立的JOB, 根据设定的时间去调用第2步建立的转换。&4. 这个JOB可以用bat文件来代替, 可以网上搜一下kettle kitchen这个命令, 然后再服务器以后执行BAT文件,挂到服务器上就可以了。。最佳答案等等等等等等等等等等等等最热搜索问答话题编程语言基础Web开发数据库开发客户端开发脚本工具游戏开发服务器软硬件开源组件类库相关问答等等等完等等等等等等等等最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友利用Navicat工具实现MySQL数据库结构同步
Navicat 是一套快速、可靠并价格相宜的管理工具,专为简化数据库的管理及降低管理成本而设。Navicat提供多达 7 种语言供客户选择,被公认为全球最受欢迎的数据库前端用户界面工具。
Navicat旗下有多个产品成员 ,可以用来对本机或远程的 MySQL、SQL Server、SQLite、 及 PostgreSQL 数据库进行管理及开发。因为文中介绍的是MySQL数据库,因此我们要用到的是Navicat旗下的Navicat For MySQL工具。Navicat For MySQL下载链接。
我们在开发项目时一般会用到一个开发版和一个正式版的数据库,在开发版中修改了数据库表结构如何才能快速同步到正式版呢?如果自己手动一个个字段或属性去修改,实在是太麻烦,而且容易遗漏,有了Navicat 工具,就能快速实现数据库直接的同步,包括结构同步,数据同步等。下面介绍如何利用Navicat For MySQL实现MySQL数据库间结构同步。
2.创建数据库连接,可连接本地数据库服务器,也可远程连接。如图所示创建一个本地连接。
连接名可自己任意命名,方便自己识别就行。填好地址用户名密码等之后,可点击测试连接,看能够创建连接,若成功则会弹窗提示。
3.连接成功后,选中工具→结构同步,便可对该连接下的数据库进行同步操作了。
4.选中要同步的数据的源和目标,源便是结构同步的参考数据库,目标则是要修改结构进行同步的那个数据库。并选择要对比的项。你可以选择仅同步表,或仅同步视图或存储过程等。都设置好后点击比对按钮即可对比这两个数据库的结构,找出其中的不同。
5.比对结果如下图所示,可以在上面的源对象和目标对象列表中看出哪些表或视图或函数等结构有不同,具体的不同则可以通过下面的查询语句来看。选中要执行的查询语句点击运行便可进行同步修改。
6.运行结果将在信息日志中显示,如果出现执行不成功的查询,则会以红色字体显示,可自己再手动进行修改。若无错误,则结构同步完成。可到数据库中查看,两个表要同步的部分是否结构已经一致。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'用Kettle做两个oracle数据库的同步,如何实现把每个表的数据分开,分别更新到对应的表里面? - 开源中国社区
当前访客身份:游客 [
当前位置:
比如说,umdata是一个用户名
第一个表输入是:SELECT owner,table_name FROM all_tables WHERE owner='UMDATA'
第二个表输入是:SELECT * FROM all_tables WHERE owner=? and table_name=?
然后怎么在“插入/更新”里面实现把各个表的数据更新到对应的表中。比如说源数据库里面的table1,table2,……怎么实现更新到对应数据库的table1,table2,……里面。
共有0个答案
更多开发者职位上
有什么技术问题吗?
楚兴的其它问题
类似的话题MSSQL中如何实现两张表数据同步?
MSSQL中如何实现两张表数据同步?
09-10-10 &
这个用SQL 触发器来实现最好,打开企业管理器-&右键点击A表-&所有任务-&管理触发器,然后按这个格式写:CREATE TRIGGER InsertT ON A表 FOR INSERT AS insert B表(字段1,字段2,字段3)select 字段1,字段2,字段3 from inserted如果不用触发器,在增加表时,同时增加两个表的数据:insert A表(字段1,字段2,字段3) values(数值,数值,数值)insert B表(字段1,字段2,字段3) values(数值,数值,数值)
请登录后再发表评论!实现两个MySQL数据库之间的主从同步_数据库技术_Linux公社-Linux系统门户网站
你好,游客
实现两个MySQL数据库之间的主从同步
来源:Linux社区&
作者:zhenghongxin
一、& & 概述MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、互相备份模式的功能二、& & 环境操作系统:Linux 2.6.23.1-42.fc8 # SMP(不安装XEN)Mysql版本:5.0.45-4.fc8设备环境:PC(或者虚拟机)两台三、& & 配置数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下为/f。3.1 设置环境:&IP的设置:A主机 IP:10.10.0.119& & &
Mask:255.255.0.0B主机 IP:10.10.8.112& & &
Mask:255.255.0.0在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。3.2 配置A主(master) B从(slave)模式3.2.1 配置A 为master &
1、增加一个用户同步使用的帐号:&
GRANT FILE ON *.* TO &backup&@'10.10.8.112' IDENTIFIED BY &1234&;GRANTREPLICATION SLAVE ON *.* TO &backup&@'10.10.8.112' IDENTIFIED BY &1234&;赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。2、增加一个数据库作为同步数据库:3、创建一个表结构:& & &
create table mytest (username varchar(20),password varchar(20));4、修改配置文件:& & & & & &
修改A的/f文件,在my.cnf配置项中加入下面配置:server-id = 1& & & #Server标识log-binbinlog-do-db=test& #指定需要日志的数据库& & & & & &
5、重起数据库服务:&service mysqld restart&查看server-id:&show variable like &server_id&;实例:mysql& show variables like 'server_id';+---------------+-------+| Variable_name | Value |+---------------+-------+| server_id& &
|+---------------+-------+1 row in set (0.00 sec)&6、用show master status/G命令看日志情况。& & & 正常为:mysql& show master status/G*************************** 1. row ***************************File: mysqld-bin.000002Position: 198Binlog_Do_DB: test,testBinlog_Ignore_DB:1 row in set (0.08 sec)3.2.2 配置B 为slave1、增加一个数据库作为同步数据库:2、创建一个表结构:create table mytest (username varchar(20),password varchar(20));3、修改配置文件:& & & & & &
修改B的/f文件,在my.cnf配置项中加入下面配置:server-id=2master-host=10.10. 0.119master-user=backup& & #同步用户帐号master-password=1234master-port=3306master-connect-retry=60 #预设重试间隔60秒replicate-do-db=test& & #告诉slave只做backup数据库的更新& & & & & &
5、重起数据库服务:&service mysqld restart&查看server-id:&show variables like &server_id&;实例:mysql& show variables like 'server_id';+---------------+-------+| Variable_name | Value |+---------------+-------+| server_id& &
|+---------------+-------+1 row in set (0.00 sec)&6、用show slave status/G命令看日志情况。& & & 正常为:mysql& show slave status/G*************************** 1. row ***************************& & & & & &
Slave_IO_State: Waiting for master to send event& & & & & & & & Master_Host: 10.10.0.119& & & & & & & & Master_User: backup& & & & & & & & Master_Port: 3306& & & & & & & Connect_Retry: 60& & & & & & Master_Log_File: mysqld-bin.000001& & & & Read_Master_Log_Pos: 98& & & & & &
Relay_Log_File: mysqld-relay-bin.000003& & & & & & & Relay_Log_Pos: 236& & & Relay_Master_Log_File: mysqld-bin.000001& & & & &
Slave_IO_Running: Yes& & & & & Slave_SQL_Running: Yes& & & & & & Replicate_Do_DB: test,test& & & & Replicate_Ignore_DB:& & & &
Replicate_Do_Table:& &
Replicate_Ignore_Table:& & Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:& & & & & & & &
Last_Errno: 0& & & & & & & &
Last_Error:& & & & & & &
Skip_Counter: 0& & & & Exec_Master_Log_Pos: 98& & & & & & Relay_Log_Space: 236& & & & & & Until_Condition: None& & & & & &
Until_Log_File:& & & & & & & Until_Log_Pos: 0& & & &
Master_SSL_Allowed: No& & & &
Master_SSL_CA_File:& & & &
Master_SSL_CA_Path:& & & & & & Master_SSL_Cert:& & & & & Master_SSL_Cipher:& & & & & &
Master_SSL_Key:& & & Seconds_Behind_Master: 01 row in set (0.01 sec)&&3.2.3 验证配置分别使用insert, delete , update在A主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配置成功。3.3双机互备模式如果在A主机加入slave设置,在B主机加入master设置,则可以做B-&A的同步。1、在A主机的配置文件中 mysqld配置项加入以下设置:master-host=10.10.8.112master-user=backupmaster-password=1234replicate-do-db=testmaster-connect-retry=10&2、在B的配置文件中 mysqld配置项加入以下设置:log-binbinlog-do-db=test&  注意:当有错误产生时,*.err日志文件同步的线程退出,当纠正错误后,要让同步机制进行工作,运行slave start。&重起A、B机器,则可以实现双向的热备份。四、& & 常见问题及解决1、Slave机器的权限问题,不但要给slave机器File权限,还要给它REPLICATION SLAVE的权限。2、在修改完Slave机器/f之后,slave机器的mysql服务启动之前,记得要删除掉3、在show master status或着show slave status不正常时,看看.err是怎样说的。4、Slave上Mysql的Replication工作有两个线程, I/O thread和SQL thread。I/O的作用是从master 3306端口上把它的binlog取过来(master在被修改了任何内容之后,就会把修改了什么写到自己的binlog等待slave更新),然后写到本地的relay-log,而SQL thread则是去读本地的relay-log,再把它转换成本Mysql所能理解的语句,于是同步就这样一步一步的完成.决定I/O thread的是/var/lib/,而决定SQL thread的是/var/lib/mysql/.5、启动slave,命令用start slave;重新启动用restart slave
本文永久更新链接地址:
相关资讯 & & &
& (11月09日)
& (09月01日)
& (11月29日)
& (09月29日)
& (09月01日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 数据库实现同步更新 的文章

 

随机推荐