精华内容
下载资源
问答
  • 不同数据库之间数据的实时同步-发布与订阅
    千次阅读
    2018-11-12 09:10:49

    www.syncnavigator.cn

    SyncNavigator 做数据同步时所支持的数据库类型:

    支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。

    来源数据库和目标数据库可以版本不同,比如:来源数据库是sqlserver 2012  目标数据库是mysql 5.5 ,都是可以的, SyncNavigator 支持跨数据库版本,无缝传输数据。

    只需要能连接上数据库, SyncNavigator 可以安装在第三方电脑上,来源数据库和目标数据库电脑上可以不用安装程序。

    设置好数据库连接地址,点击测试连接,能脸上来源数据库和目标数据库, SyncNavigator 就能进行高效数据传输服务

    最近要将不同服务器上数据库的表数据同步汇总,所以就涉及到了数据同步的问题,以前没有接触过,在网上找了找方法,

     大抵的方法有三种:

    1,在数据库中编写触发器

    2,写一个同步程序去完成同步

    3,使用数据库的发布和订阅功能

    以上前两种方法暂且不提,今天说说第三种方法:使用数据库的发布和订阅功能实现同一服务器下的不同数据库的表数据同步和不同服务器下的不同数据库的表数据同步前提是源数据表结构和目标数据表结构必须相同。

    先来说说【发布】和【订阅】的操作步骤,在文章的后面,会将这个过程中可能会遇到的所有问题做一个汇总,然后给出解决方法。

    目录

    1发布

    2订阅

    3发布和订阅过程中的可能遇到问题及解决方案

    1发布
    1,首先使用本机名称连接到数据库,不能使用IP地址连接数据库,至于为什么,在文后说明找到【。复制,展开复制选项,可以看到两个节点】:【本地发布】,【本地订阅】

     

     

    2,鼠标右键点击【本地发布】,【选择新建发布】

     

    3,【弹出新建发布向导】对话框,【选择下一步】 

     

    4,选择要发布的数据库,点击然后【下一步】

     5,选择发布类型,这里数据库有四种发布类型,每种发布类型下面都有类型说明,这里在选择选择【快照发布】,点击然后【下一步】

     

    如图6所示,选择要发布的表对象,在左侧的选择区域选择要发布的表信息,然后点击【下一步】

     7,进入筛选表的设置界面,这里的筛选是指发布的表数据中的某一个或者全部字段只能为固定的值,从而达到当所有的订阅服务器接收数据时,接收到的该字段的值为发布时设定的值。如果不需要,直接点击【下一步】

     8,进入快照代理界面,将界面上的两项内容选中

     9,如果需要修改数据同步的时间和频率,则点击【更改】

     10,设置数据同步的的的频率段段,每天执行的的的频率段段状语从句:执行的开始时间结束状语从句:时间,设置完成点击【确定】,返回到上一界面,然后点击【下一步】

     11,设置代理快照,点击【安全设置】,进入设置界面

     12,选择【在SQL Server代理服务账户下运行】和【使用以下SQL Server登录名】,登录名和密码是为了使订阅的服务器登录到发布服务器。设置完成点击【确定】,返回到上一个界面,然后点击【下一步】

     13,该页面选择默认设置,直接点击【下一步】

     14,为本次发布创建一个名称,然后点击【完成】

     15,以上步骤全部做完之后,等待发布的创建完成,当提示成功时,表示本次发布创建成功

     16,返回到数据库的连接初始界面,的左侧处节点选择【复制】 - 》【本地发布】,可以在改节点下看到刚才创建好的发布

     至此,发布的相关操作已经做完,一个完整的发布已经成功发布。接下来要做的就是在需要同步数据的服务器上订阅该发布。

    2订阅
    在需要同步数据的服务器上添加订阅,订阅刚才我们添加的发布,这样可以实现数据库表数据之间的同步和迁移。

    1,同样的是使用本机名称连接数据库,然后选择【复制】,展开该节点,选择【本地订阅】,鼠标右键点击该项,选择【新建订阅】

    2,进入新建订阅向导界面,初始界面同新建发布界面,选择【下一步】

     3,进入为订阅选择发布的界面,如果是一个服务器不同数据库之间的表数据同步,则在发布服务器中选择本地服务器;如果是不同服务器之间不同数据库的表的数据同步,则在发布服务器中选择远程服务器。

     4,如果是不同服务器之间的数据同步,选择【发布服务器】的下拉框,选择第一项【查找SQL Server发布服务器】,会弹出【连接到服务器】的对话框,点击【服务器名称】一栏的下拉框,选择【浏览更多】,在打开的界面【选择网络服务器】,找到发布的服务器。

     

     

     5,找到该服务器之后,选择用实例名登录数据库,选择用SQL Server身份验证,登录名和密码则为源服务器创建发布时选择的登录名和密码

     6,选择连接,自动返回到选择发布服务器的界面,在数据库和发布区域,会将连接到的服务器的所有发布的数据库显示出来,例如这个的textdb就是刚才创建的发布数据库,然后展开该项,可以看到我们刚才创建的发布为111的名称,选中该发布,点击然后【下一步】

     如图7所示,选择然后【在配给物服务器***运行上所有代理】,【点击下一步】

     如图8所示,选择订阅服务器,选中当前需要订阅的服务器,然后点击后面的【订阅数据库】,选择下拉框,然后选择目标数据库,之后完成【选择下一步】

     

    9,进入分发代理安全性设置界面,选择与订阅服务器的连接的选择按钮,进入设置界面 

     10,按照图中所示进行设置,SQL Server登录名和密码即为当前数据库的登录名和密码,设置完成点击【确定】,返回到上一界面,然后点击【下一步】

     11,同步计划的设置,点击代理计划框,出现下拉框,选择需要的方式,完成设置点击之后【下一步】

     12,初始化的设置,点击初始化时间设置框,出现下拉框,选择需要的初始化时间,完成设置点击【下一步】

     13,其他选项全部默认,点击直接【下一步】

     

    14,点击完成,等待订阅的成功提示 

     至此,目标服务器端的订阅也成功配置。

    以上发布和订阅同时完成之后,只要保证服务器之间的连接畅通,则数据会实时的实现同步。

    以上只是一对一的服务器之间的数据同步,一个服务器同时订阅多个发布会有冲突,比如服务器1的甲数据库有一个表一,服务器2的乙数据库有一个表B,需要将数据库阿中表一的数据和数据库乙中表b的数据汇总同步到服务器3的数据库的ç表中,A,b,C三个表的结构需要完全相同,在的服务器3单独订阅服务器1时,数据可以顺利同步,当同时订阅服务器1和服务器2的时候,在同步服务器1的数据时没有问题,在同步服务器2的时候,会自动覆盖掉服务器1的数据。

    3 发布和订阅过程中的可能遇到问题及解决方案
    在发布和订阅的创建过程中,往往会因为电脑的设置原因,而出现各种各样的问题,在这里整理一下最常见到的问题,并提供一些解决方案

    1

    问题:新建发布或者订阅,提示“无法连接到服务器,需要有实际的服务名才能连接到服务器”,

    解决方案:该问题是因为使用了IP地址登录服务器导致的,需要使用实际的服务名登录服务器,具体的名称查看方法:【右键我的电脑】 - “【属性】即可查看到计算机名,使用该名称连接服务器即可

     


    --------------------- 
    作者:Rand_Muse 
    来源:CSDN 
    原文:https://blog.csdn.net/rand_muse/article/details/81326879 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    更多相关内容
  • logstash实现mysql数据库表实时同步

    千次阅读 2019-09-23 11:05:22
    logstash使用最多的场景是收集日志、文件、或jdbc等常用的数据源,将数据同步到ElasticSearch中,其实logstash功能跟强大,可以在很多数据源之间进行同步,本文就是利用logstash实现mysql数据库表之间的数据。...

    logstash可以将不同数据源,例如日志、文件、或jdbc等,同步到ElasticSearch中,本文利用logstash实现mysql数据库表之间的数据。(实例:数据库DB1中的表A有添加或者修改,数据库DB2中的表B也会自动同步)

    一、准备:

    数据源输入使用logstash中自带的logstash-input-jdbc,无需额外安装,官网使用说明地址
    数据源输出需要使用logstash-output-jdbc,但是在loastash官网中output plugins列表中并没有相关插件,需要额外安装,使用说明在Github地址

    安装logstash

    将logstash下载后,放到/opt/elastic/目录下,并将logstash目录重命名为logstash-test

    安装logstash-output-jdbc,在/opt/elastic/logstash-test目录下执行:

    	bin/logstash-plugin install logstash-output-jdbc
    

    安装成功:在这里插入图片描述

    二、数据库表

    在数据库DB1中创建表A,并添加数据如下:
    在这里插入图片描述
    在数据库DB2中创建表B,表结构与A一致,暂不添加数据:
    在这里插入图片描述

    三、logstash配置文件

    logstash配置文件中必须包含两个元素inputoutput,分别是数据来源的配置和数据输出的配置。还有一个可选项filter,用来处理数据源和数据输出的之间的适配,例如,需要将某个字段的值10以后再输出,这个10的动作就应该写在filter模块;还有数据源和数据输出字段的编码不同,日期类型不同等情况的处理。(由于本文中A表和B表中数据结构都是一样的,只是实现简单的数据同步,暂时用不到filter

    同步配置文件如下:后面对每个部分进行解释。

    input {
        jdbc {
            jdbc_connection_string => "jdbc:mysql://IP:3306/DB1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true"
            jdbc_user => "expert"
            jdbc_password => "123456"
            jdbc_driver_library => "/opt/elastic/logstash-test/mysql-connector-java-5.1.6.jar"
            jdbc_driver_class => "com.mysql.jdbc.Driver"
            statement => "SELECT title,description FROM A"
       }
    }
    
    filter {}
    
    output {
        jdbc {
            connection_string => "jdbc:mysql://IP:3306/DB2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true"
            username => "root"
            password => "root123"
            driver_jar_path => "/opt/elastic/logstash-test/mysql-connector-java-5.1.6.jar"
            driver_class => "com.mysql.jdbc.Driver"
            statement => ["insert into B (title,description) values (?,?)","[title]","[description]"]
        }
        stdout {
            codec => json_lines
        }
    }
    

    input配置

    input的配置中有很多强大的功能,详细使用见官网地址,此处只介绍上面涉及到的参数:

    • jdbc_connection_string :数据库连接配置
    • jdbc_user :用户名(连接DB1的用户名)
    • jdbc_password:密码(连接DB1的密码)
    • jdbc_driver_library:数据驱动的jar位置
    • jdbc_driver_class :数据库驱动类名(类似jdbc中的Class.forName(“com.mysql.jdbc.Driver”))
    • statement :查询数据源的sql语句(output中就是将此处的查询结果insert到数据库DB2中)

    output配置

    由于logstash-output-jdbc是额外扩展的output插件,在配置参数的写法上也略有不同,比如:所有的参数前面都没有jdbc_前缀

    • connection_string :数据库连接配置
    • username :用户名(连接DB2的用户名
    • password :密码(连接DB2的密码)
    • driver_jar_path :与input参数中的jdbc_driver_library一致
    • driver_class :与input参数中的jdbc_driver_class一致
    • statement :向DB2中添加数据的insert语句。

    四、执行启动命令

    将上述的配置文件命令为logstash_default.conf,放在logstash-test/conf文件夹下,在logstash-test下执行:

    logstash启动命令

    ./bin/logstash -f /opt/elastic/logstash-test/config/logstash_default.conf --path.data=/opt/elastic/logstash-test/test
    

    启动后发现报如下异常:

    java.lang.IllegalAccessError: tried to access class com.mysql.jdbc.EscapeProcessor from class com.mysql.jdbc.ConnectionImpl
    在这里插入图片描述
    java.lang.IllegalAccessError: com/mysql/jdbc/EscapeProcessor在这里插入图片描述

    遗憾的是目前没有找到为什么会报这个异常,不过换了一种驱动的配置方式,这个异常就消失了。另外一种指定驱动jar包的方式也是官网给出的方式如下:
    在这里插入图片描述
    下面结合本例中给出解决办法。

    启动异常处理方式:

    在logstash目录下,创建目录vendor/jar/jdbc(/opt/elastic/logstash-test/vendor/jar/jdbc),将驱动jar包放入该路径下。
    在这里插入图片描述
    将配置文件中的driver_jar_path注释掉,
    在这里插入图片描述

    重新执行logstash启动命令

    ./bin/logstash -f /opt/elastic/logstash-test/config/logstash_default.conf --path.data=/opt/elastic/logstash-test/test
    

    执行结果:
    在这里插入图片描述
    检查DB2中的表B:数据已经全部同步过去了。
    在这里插入图片描述

    五、定时自动同步数据

    按照上面的过程,能实现执行logstash命令以后,DB1中的表A和DB2中的表B数据同步,但是如果后续表A中的数据有新增或者修改,还需要再去启动logstash。logstash提供了一种定时任务的方式,定期去检查表A中的数据是否有变化,根据表A的最后修改时间(LastUpdateDate)将表A中新增和修改的数据修改新增到表B中。

    将配置文件做如下修改:

    input {
        jdbc {
            jdbc_connection_string => "jdbc:mysql://IP:3306/DB1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true"
            jdbc_user => "expert"
            jdbc_password => "123456"
            jdbc_driver_library => "/opt/elastic/logstash-test/mysql-connector-java-5.1.6.jar"
            jdbc_driver_class => "com.mysql.jdbc.Driver"
            statement => "SELECT title,description FROM A"
            schedule => "* * * * *"
            record_last_run => true
            use_column_value => true
            tracking_column => "LastUpdateDate"
            tracking_column_type => "timestamp"
            last_run_metadata_path => "/opt/elastic/logstash-test/last_record/logstash_default_last_time"
            clean_run => false
            lowercase_column_names => false
       }
    }
    
    filter {}
    
    output {
        jdbc {
            connection_string => "jdbc:mysql://IP:3306/DB2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true"
            username => "root"
            password => "root123"
            driver_class => "com.mysql.jdbc.Driver"
            statement => ["insert into B (title,description) values(?,?) on duplicate key update title=values(title),description=values(description)","[title]","[description]"]
        }
        stdout {
            codec => json_lines
        }
    }
    
    

    input中新增的参数:

    • schedule => "* * * * *":每分钟检查一次
    • ` record_last_run => true``:是否记录上一下执行的时间
    • ` use_column_value => true``:是否使用数据源的字段
    • `tracking_column => “LastUpdateDate”``:数据源的最后修改时间字段
    • `tracking_column_type => “timestamp”``:字段类型
    • ` last_run_metadata_path => “/opt/elastic/logstash-test/last_record/logstash_default_last_time”``:存放最后修改时间的文件位置
    • ` clean_run => false``:这个参数表示你在开启Logstash同步数据时需不需要clean掉上次的记录
    • lowercase_column_names => false读取字段时是否区分大小写

    output新增的参数:

    stdout {
        codec => json_lines
    }
    

    stdout为可选字段,将输出数据的方式加一种,stdout可以把input中statement 的select结果转为json字符串打印到logstash的log中,便于追踪检查哪些数据被更新了。

    六、补充

    output中的statement修改:

    将表B中的title字段设置为唯一约束,将statement改为如下。即可实现如果title相同的时候,只修改记录,而不是新增。唯一约束可以根据实际需求去设置。

    ["insert into B (title,description) values(?,?) on duplicate key update title=values(title),description=values(description)","[title]","[description]"]
    

    表A修改完只有需要1分钟以后才能在表B中看到同步效果,因为定时任务设置的每分钟执行一次。

    展开全文
  • Mysql两个数据库表之间双向数据同步方案.docx
  • SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用...
  • Oracle数据库实时同步

    2018-06-25 16:36:05
    Oracle数据库备份文档,提供实时备份的指导;Oracle工具就可以达成。
  • 达梦数据库实时同步软件用户手册
  • mysql,两个数据库,实现实时数据同步
  • 使用kettle同步数据库表。网上找教程找了一天。终于弄好了。将两个数据库连接改成你自己的。sql也要改,然后把后面步骤的字段重新获取一下。然后就可以同步数据了。数据来源增删改都可以同步。参考一下吧
  • 数据库表同步的三种方法

    千次阅读 2021-01-19 10:01:52
    我刚开始,写了一个程序,多线程去生成数据库(接口有记录,记录请求报文)取到请求报文,然后再拼接成curl请求命令,请求到并行环境,结果跑了没半天就差点儿把生产数据库搞挂。原因是,我的程序每五分钟调用一次...

    1、前言:

    最近项目准备上线,要先做一下并行,所以要把调用接口的请求 请求到生产环境的同时也请求到并行环境。我刚开始,写了一个程序,多线程去生产数据库(接口有记录表,记录请求报文)取到请求报文,然后再拼接成curl请求命令,请求到并行环境,结果跑了没半天就差点儿把生产数据库搞挂。原因是,我的程序每五分钟调用一次,调用会获取11个数据库连接,结果因为生产上数据量大,五分钟没有处理完成,另一个调度就调起来了,这样一下午累积下来,产生了上百个连接,生成cpu飙到了%90以上,触发了告警,领导收到了告警短信才发现了问题。
    之后应领导要求,我的并行程序不能直接连接生产库,需要异步处理(需要数据库做中转),那么就涉及到一个如何获取生产数据库中的报文数据的问题。通过上网查询,大体有三个方案:

    1.1 使用触发器

    在接口报文记录表上添加一个触发器,每次请求的报文插入生产记录表的同时触发器插入到中转数据库。
    优点:编程简单,只需要几行
    缺点:会影响生产数据库性能,同时该触发器需要配合dblink,可能存在潜在危险。

    -- 一个简单的oracle触发器
    CREATE OR REPLACE TRIGGER MY_TGR
    BEFORE INSERT ON jd.ims_json_soap_1_0
    FOR EACH ROW--对表的每一行触发器执行一次,插入test_b的同时插入test_a
    BEGIN
    insert into cd.ims_json_soap_1_0(name,age,school,home,ext)  values(:NEW.name,:NEW.age,:NEW.school,:NEW.home,:NEW.ext);
    END;
    
    1.2 使用canal

    canal是阿里巴巴提供的一个开源工具,通过监听数据库binlog日志,解析出语句,然后执行,该程序对于mysql很友好,但是oracle(归档日志)貌似支持部分.太新的版本应该还不支持,这个还没有尝试。

    1.3 使用kettle

    kettle是一款国外的开源ETL工具,使用的时候只需要下载解压就可以使用,数据抽取速度可以达到每秒上万条数据的同步。

    2、kettle的使用

    2.1 下载安装kettle

    我这里使用的是pdi-ce-7.1.0.0-12
    在这里插入图片描述

    2.2 表同步生成ktr文件

    因为生产数据是实时有调用记录插入的,所以我的同步方案是增量同步。
    通过目标表的最新时间到生产源表里面获取最新的记录

    2.2.1 最终转换效果

    在这里插入图片描述

    2.2.2 MaxDate

    获取目标表(中转数据库中的表)最大时间做为一个表输入。
    在这里插入图片描述

    2.2.3 常规(生产数据库)

    注意下面的从步骤插入数据,sql语句中的问号会在执行的时候替换为下面的MaxData(该名字需要和上一步中的步骤名称保持一致)
    在这里插入图片描述

    2.2.4 表输出

    这里其实还可以使用 插入/更新 但是这种方式相对慢一些,但是更灵活,可以自定义同步的字段,由于我这里表结构都是相同的,所以我采用表输出的方式,这样的效率更高。

    在这里插入图片描述

    在这里插入图片描述
    最后按住shirt通过拖拉将两个输入和一个输出连接起来就可以了
    在这里插入图片描述
    我这里应为分表的关系有十张分表都需要同步,所以我复制了十个这样的转换。

    2.3 执行ktr文件

    在这里插入图片描述
    转换过程
    在这里插入图片描述

    3、java整合kettle,通过程序调用执行ktr文件

    由于我的需要放在服务器上去定时调度,所以我采用的是Java + crontab的方式实现的定时调度执行ktr文件。

       /**
         * 执行ktr文件
         * @param args
         */
        public static void main(String[] args) throws KettleException {
            //初始化ketlle
            KettleEnvironment.init();
            //创建转换元数据对象
            //TransMeta meta = new TransMeta("etl/update_insert_Trans.ktr");
            TransMeta meta = new TransMeta("D:\\Tools\\Kettle\\save\\常规到紧急0分表.ktr");
            Trans trans = new Trans(meta);
            trans.prepareExecution(null);
            trans.startThreads();
            // 等待执行完成
            trans.waitUntilFinished();
            if(trans.getErrors()!=0){
                System.out.println("执行失败!");
            }
        }
    
    展开全文
  • 从数据直抽到数据库,通过配置的形式,可以根据主键实时将生产库的表同步到ods层面,支持增加和修改,不支持删除操作。
  • 为了实现将传统关系型数据库中的增量数据快速导入同构...此方法不仅支持插入、更新和删除的增量数据同步,而且可以抽取出数据库表结构信息动态支持结构变更。与传统单点抽取方式相比,大大提高了目的库数据的新鲜度。
  • Syncnavigator是数据库同步软件,支持sqlserver之间、mysql之间、sqlserver到mysql之间的数据库数据实时同步、定时同步,允许数据结构不一样的数据库之间的数据同步。 Syncnavigator和传统意义上的数据同步有什么新...

     

    SyncNavigator v8.6.2 安装激活方法【Win10系统】

    2020-06-10syncnavigator阅读(463)

    win10系统加强了权限管理,所以直接运行程序会无法有效!

    1.先在任务管理器,进程里看是否存在软件进程,如果有,结束进程,如果无不管他。

    2.然后,在安装目录,右键以管理员运行程序激活,并且激活成功后,客户端也以管理员模式运行,最好右键属性,兼容性,以管理员运行此程序,勾上。

    3.如果上面方法测试无效,请卸载重新安装在非系统盘,比如D盘进行安装。

     

    Win10系统下Syncnavigator安装方法

    1. 路径选择:如果默认路径无法激活,请更改路径安装
    2. 安装完成后不需要启动客户端或者服务端,关闭安全软件如360后,直接打开注册机管理员权限激活。
    3. 重点:右键客户端和服务端快捷方式设置兼容模式,管理员启动。
    4. 打开客户端,查看是否激活成功
    5. 划重点:如果在安装主程序后,先打开了客户端或者服务端,再激活是失败的,请先结束软件相关进程后,再重复步骤2

    Syncnavigator可以用来做什么?

    2020-04-11syncnavigator阅读(19)

    Syncnavigator可以用来做什么?

    Syncnavigator是数据库同步软件,支持sqlserver之间、mysql之间、sqlserver到mysql之间的数据库数据实时同步、定时同步,允许数据结构不一样的数据库之间的数据同步。

    Syncnavigator和传统意义上的数据同步有什么新特性?

    Syncnavigator同步数据库支持异构,支持实时同步,定时同步,支持断点续传,默认是增量同步,所以同步效率高,速度快,支持设置过滤条件同步,可以自动创建表结构。

     

    SyncNavigator v8.6.2(数据库同步软件)下载地址

    2020-03-11syncnavigator阅读(756)

    SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。

    安装包下载地址:https://www.syncnavigator.cn/Setup.zip

    帮助文档地址:https://www.syncnavigator.cn/Help_zh-CN.chm

    Web文档地址:https://www.syncnavigator.cn/chm/index.htm

    SyncNavigator v8.6.2(数据库同步软件)下载地址SyncNavigator v8.6.2(数据库同步软件)下载地址


    创建第一个同步项目


    使用 HKROnline SyncNavigator 创建一个数据库同步项目。只需要通过简单的配置,创建完成后您可以随时执行数据库同步任务。

    1.点击 “SyncNavigator(Client)” 图标进入系统。

    2.在登录界面中输入连接到的服务器地址,点击 “确定” 按钮开始连接。

    • 注意:这里不是登陆您的数据库,而是登陆到本软件的管理端。

    • 默认情况下直接点击 “连接” 按钮即可(本机默认已经安装)。

    • 默认服务器登录用户名为 “admin” 密码为空。

    • 本机服务器地址 = 127.0.0.1 。

    • 您可以使用域名或者IP地址作为服务器地址。如果指定了端口号可以使用 IP:Port 方式填写。

     

    3.切换到 “同步管理” 面板中点击 “新建” 按钮开始创建同步项目。

     
    4.首先切换到 “来源数据库” 选项卡。填写同步的来源数据库信息。 

    • 一般情况下只需要输入数据库地址,数据库名称,登录用户名,登录密码。

    • 数据库地址: 连接到的数据库地址。可以是域名或者IP地址。如果指定了端口号可以使用 IP:Port 方式填写。

    • 数据库名称: 使用的数据库名称。如果已经指定了默认的登录数据库可以为空。

    • 登录用户名: 登录数据库服务器使用的用户名。如果需要使用Windows账户登录请变更 “登录方式”

    • 连接测试: 测试输入的信息是否正确。如果连接失败则会返回具体错误信息。

     

    5.切换到 “目标数据库” 选项卡。以相同的方式填写同步的目标数据库。 

    • 您只需要创建一个新的目标数据库,软件会自动创建最大兼容的表结构。

    • 如果您希望目标数据库与来源数据库表结构完全一致,您只需要在目标数据库创建一个空表结构即可。

    • 当您使用 MySQL 作为来源数据库时,同步的表至少需要一个主键。

    • 目标数据库不应包含外键约束,因为它可能导致部分数据无法同步。

    • 如果您的目标数据库与来源数据库结构(如字段类型,约束)不兼容,这可能导致部分数据无法同步。

    • 假设您设置来源库为 192.168.1.2 ,设置目标数据库为 192.168.1.3, 那么数据将从192.168.1.2 同步到 192.168.1.3。如果您的方向设置错误,可能会导致数据被覆盖。

    6.切换到 “同步内容设置” 选项卡。选择需要同步的数据库表。

    • 如果需要设置每个表的具体内容可以点击 “详细设置” 按钮进行调整。

    • 您可以设置条件过滤。比如只查询评分大于90的表记录,或者隐藏不需要同步的字段。

    • 如果在这一个步骤未勾选任何表则不会同步任何内容。


    7.点击 “确定” 按钮完成项目设置。
    8.切换到 “总控制台” 面板中选择需要开始同步的项目。点击 “开始” 按钮即可开始数据库同步。

    异构数据库/表同步细节


    首先,打开软件,切换到,同步管理,新建一个同步项目,在来源数据库和目标数据库设置好数据连接,以上内容很简单,不做赘述。

    下面主要讲解一下同步内容设置这里:

    默认,在我们填写好来源数据库和目标数据库,打开同步内容设置界面,这里刷新出来的表都是来源数据库里的表,我们根据所需要同步的表进行全选或者部分选择,如下图:

    因为我们要同步到目标表结构与这个来源表结构不同,那么怎么办呢?

    这时候,我们双击这些来源表,打开详细配置界面,进行同步方向映射,也就是把来源表里的字段或者表名称进行定向映射到目标表结构,如果是相同的表结构就可以默认不打开特别设置,因为我们这里讲的是异构表结构同步部分字段,所以需要打开设置详情。

    顶上目标表名称那里填写同步过去所在表的名称,如果来源表和目标表名字都不一样,这里需要写目标名称,不然会提示表不存在会创建新表。

    保持原有表结构这里需要取消勾选,因为我们现在是同步异构数据库。

    目标名称(可写*)这里是填写目标表的字段名称的,如果字段名一样可以不写,如果字段名不一样,需要填写新的名称

    同步条件那里基本可以理解成where后的参数,比如可以写 a > 100 ,就会过滤table_1这个表中字段小于100的数据。

    另外字段可以勾选,不勾选的字段不会同步。

    使用多来源默认是不勾选的,如果多个表数据进入到某一个表中,或者多个表中的不同字段进入到一个目标表中,可以勾选多来源.

    勾选只新增的话就不会同步删除或者修改的数据,默认不勾选的,增删改默认会同步。

     

    SyncNavigator(数据库同步软件)介绍以及使用说明

    2020-03-04syncnavigator阅读(174)

    SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。


    SyncNavigator新功能

    1、自动同步数据/定时同步数据

    无论是实时同步/24小时不间断同步,还是根据计划任务(每小时/每日/每周/等)定时自动同步都能完全胜任

    2、完整支持Microsoft SQL Server

    完整支持Microsoft SQL Server 2000、2005、2008、2012、2014数据库类型,并能在不同数据库版本之间相互同步数据

    3、支持MySQL4.1 以上版本

    支持 MySQL 4.x 5.x 6.x 等,并能在不同数据库版本之间相互同步数据

    4、无人值守和故障自动恢复

    当数据库故障或网络故障以后,无需人工干预(或操作)自动恢复同步并确保数据完全准确,可靠

    5、同构数据库同步/异构数据库同步

    SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL等都能轻松实现

    6、断点续传和增量同步

    当同步完成(或中断)后,再次同步时能继续上一次的位置增量同步,避免每次都需要从头开始的问题


    软件特点

    1、快速,持续,稳定的同步数据库数据。在数据增加,修改或者删除后自动同步到目标数据库

    2、支持sqlserver 2000-2014所有版本,全兼容版本。

    3、支持MYsql 4.x 、MYsql 5.x 、MYsql 6.x。并能在不同数据库版本之间相互同步数据

    4、只需要创建一个运行计划就能在指定时间自动进行数据库同步。轻松管理同步时间以及频率

    5、不编写SQL语句,不使用数据库管理工具。与同类产品相比所需数据库经验知识最少


    使用教程

    创建一个同步项目

    安装完成后会有两个图标:

     

    1.点击 “SyncNavigator (客户端)” 图标进入系统。

     

    2.在登录界面中输入连接到的服务器地址,点击 “确定” 按钮开始连接。

    注意:这里不是登陆您的数据库,而是登陆到本软件的管理端。默认情况下直接点击 “连接” 按钮即可(本机默认已经安装)。

    默认服务器登录用户名为 “admin” 密码为空。

    本机服务器地址为 127.0.0.1 。

    您可以使用域名或者IP地址作为服务器地址。

     

    3.切换到 “同步管理” 面板中点击 “新建” 按钮开始创建同步项目。

     

     

    4.首先切换到 “来源数据库” 选项卡。填写同步的来源数据库信息。 (存放需要同步数据的数据库叫做来源数据库)

     

    一般情况下只需要输入数据库地址,数据库名称,登录用户名,登录密码。

    数据库地址: 来源数据所在机器的地址。可以是域名或者IP地址。

    数据库名称: 来源数据库名称。如果已经指定了默认的登录数据库可以为空。

    登录用户名: 登录数据库服务器使用的用户名。如果需要使用Windows账户登录请变更 “登录方式”

    连接测试: 测试输入的信息是否正确。如果连接失败则会返回具体错误信息。

     

    5.切换到 “目标数据库” 选项卡。以相同的方式填写同步的目标数据库。

     

    目标数据可以像来源数据库那样选择已有的数据库,也可以通过本软件创建一个新的数据库,选择已有数据库步骤大致同上,新建数据库步骤如下:

    您只需要创建一个新的目标数据库,软件会自动创建最大兼容的表结构。

    如果您希望目标数据库与来源数据库表结构完全一致,您只需要在目标数据库创建一个空表结构即可。

    当您使用 MySQL 作为来源数据库时,同步的表至少需要一个主键。

    目标数据库不应包含外键约束,因为它可能导致部分数据无法同步。

    如果您的目标数据库与来源数据库结构(如字段类型,约束)不兼容,这可能导致部分数据无法同步。

    假设您设置来源库为 192.168.1.2 ,设置目标数据库为 192.168.1.3, 那么数据将从192.168.1.2 同步到 192.168.1.3。如果您的方向设置错误,可能会导致数据被覆盖。

    6.切换到 “同步内容设置” 选项卡。选择需要同步的数据库表。

    如果需要设置每个表的具体内容可以点击 “详细设置” 按钮进行调整。

    您可以设置条件过滤。比如只查询评分大于90的表记录,或者隐藏不需要同步的字段。

    如果在这一个步骤未勾选任何表则不会同步任何内容。

     

    7.点击 “确定”按钮完成项目设置。

     

    8.切换到 “总控制台” 面板中选择需要开始同步的项目。点击 “开始” 按钮即可开始数据库同步。

     

     

    自动同步数据库数据

    使用 HKROnlineSyncNavigator 自动同步数据库数据。与谷歌日历、Hotmail日历等的操作非常类似,您只需要设置同步任务执行的时间系统便能在指定的时间自动运行。

    1.在 “同步管理“面板中选择需要设置的项目,点击 “修改” 按钮开始设置。

    展开全文
  • kettle同步数据库表数据到其他库的相同表名中,还可以指定特定的表名,只要在获取中,输入特定表名,就只会同步输入的
  • 数据库实时同步方案

    千次阅读 2021-07-05 15:08:08
    目前支持Oracle、SQL Server、DB2、MySQL、PostgreSQL等数据库实时同步。 二 配置 采用Beedup实现数据同步,主库必须开启归档日志,主库连接用户需授予读取日志及系统字典的权限。 Beedup采用JDBC连接主库及...
  • 异型数据库同步 既支持相同类型数据库之间的同步,如Access到Access、SQL Server到SQL Server,又支持异型数据库之间的同步,如Excel到Access、Access到SQL Server、SQL Server到Oracle等。 无人值守同步 软件具有...
  • 做开发的时候要做MySQL的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,MySQL的版本是4.1.15,都是目前最新的版本。本文将为大家介绍如何在两台MySQL数据库间实现同步。
  • MySQL 实时同步 解决方案

    千次阅读 2021-02-16 00:11:45
    4.5 添加更多同步表 5 效验同步数据一致性 1 需求概述 将MySQL5.6生产库多张表的数据实时同步到Oracle11g数据仓库,MySQL历史数据700G,平均每天产生50G左右日志文件,MySQL日志空间50G,超过后滚动删除日志文件...
  • sql server 触发器实时同步数据库表数据 创建两个相同结构的数据库表 CREATE TABLE [dbo].[Table_1]( [id] [varchar](50) NOT NULL, [name] [varchar](50) NULL, [dept] [varchar](50) NULL, [company] [varchar...
  • 将数据从一个Postgres数据库同步到另一个数据库(例如pg_dump / pg_restore )。 设计用于: 速度-表格并行传输 安全性-防止敏感数据离开服务器的内置方法 灵活性-优雅地处理架构差异,例如缺少列和多余的列 便利...
  • 多源异构数据库实时同步解决方案

    千次阅读 2021-03-07 15:57:37
    将企业多个业务系统(Oracle、SQL Server、MySQL、DB2、PostgreSQL等)产生的交易数据流实时同步到数据仓库或大数据平台,通过对交易数据的联机实时分析,快速制定或调整商业计划,提升企业的核心竞争力。...
  • 从业好多年总结出来的经验写出来,让小白能快速入手,也通俗易懂
  • 开发软件时候 经常要改动数据库结构,如何快速地对比和修改数据库呢,并且能快速对比样本数据,并同步数据库的结构,约束,主键,字节,小数点 ,以及存储过程,本工具就是为这个目的开发。界面比较粗糙但挺实用, ...
  • 摘要 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据、多、数据量大等情况就...跟前面分享到的其他数据库同步的操作方式类似、用起来感觉还不错、话不多..
  • 两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
  • 全面阐述SqlServer数据库数据存储的方案 通过几种环境对比 根据项目的具体需求 选择适合自己的方案
  • java多个数据库实现数据同步

    热门讨论 2015-03-16 21:54:59
    内部java实现多个数据库,保持数据同步案例。
  • 是我的“Kettle数据库同步源码”对应的详细设计文档; 包含流程图 + 数据结构设计!
  • 最近要将不同服务器上数据库数据同步汇总,所以就涉及到了数据同步的问题,以前没有接触过,在网上找了找方法, 大抵的方法有三种: 1,在数据库中编写触发器 2,写一个同步程序去完成同步 3,使用数据库的...
  • SyncNavigator 做数据同步时所支持的数据库类型: 支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 来源数据库和目标数据库可以版本不同,比如:来源数据库是sqlserver 2012 ...
  • 数据库表不完全一样的实时同步:比如需定义字段映射,或生成一些辅助字段(比如拼音码,简拼,简单计算映射等); 本项目基于canal 1.0.24最新版基础上修改,扩展了服务端和客户端的一些功能,主要包含: 客户端:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 726,949
精华内容 290,779
关键字:

数据库表实时同步