三分钟掌握SQL Server迁移Mongodb

下载网站:www.SyncNavigator.CN 
 客服QQ1793040
----------------------------------------------------------


关于HKROnline SyncNavigator 注册机价格的问题

 

 

HKROnline SyncNavigator 8.4.1 非破解版 注册机 授权激活教程
 

 

 

 

最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。

 

 

好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有什么强大的功能吧!

 

SyncNavigator的基本功能:

 

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

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

支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。并能在不同数据库版本之间相互同步数据。

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

同构数据库同步/异构数据库同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能轻松实现。

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

写在前面

由于业务需要,部分老数据需要从SQLServer中迁移到mongodb数据库中去,经过各方比较后,决定使用阿里巴巴开源的datax来迁移,datax开源地址:https://github.com/alibaba/DataX。

 

DataX简介

DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。如图1所示:

三分钟掌握SQL Server迁移Mongodb

图1

准备工作

Linux

JDK(1.8以上,官方推荐1.8)

Python(官方推荐python2.6.x)

Apache maven 3.x(Compile DataX)

SQL Server 2008

Mongodb 3.2 (副本集模式)

 

测试

1.    查看sql server表结构

CREATE TABLE[dbo].[ETeacher_Class_Apply] (

[ID] int NOTNULL IDENTITY(1,1) ,

[GroupID] intNULL ,

[UserID] intNULL ,

[Message]nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL ,

[ApplyDate]datetime NULL ,

[StatusCode] intNULL DEFAULT ((0)) ,

[PlatForm] intNOT NULL DEFAULT ((0)) ,

CONSTRAINT [PK_ETeacher_School_ClassApply]PRIMARY KEY ([ID])

)

ON [PRIMARY]

2.    解压datax,查看目录,如图2

三分钟掌握SQL Server迁移Mongodb

图2

3.    进入job目录添加配置文件

[root@raojiedb4 job]# cat job_sqlserver_mongodb.json

{

“job”:{

         “setting”: {

                “speed”:{“byte”: 1073741824}

                },

        “content”: [{

                “reader”: {

                        “name”:”sqlserverreader”,

                        “parameter”:{

                               “username”: “usernamer”,

                               “password”: “password”,

                               “where”: “”,

                               “connection”: [{

                                       “querySql”: [“SELECT * FROM dbo.ETeacher_Class_Apply  WITH ( NOLOCK )”

],

                                       “jdbcUrl:[“jdbc:sqlserver://192.168.0.1:1433;DatabaseName=ETeacher”]

                                }]

                        }

                },

                “writer”: {

                        “plugin”:”mongodb”,

                        “name”:”mongodbwriter”,

                         “parameter”:{

                               “address”: [“192.168.0.2:7911”],

                               “userName”: “username”,

                               “userPassword”: “password”,

                                “dbName”:”DBName “,

                                “collectionName”:”usertest”,

                               “column”: [

                                               {

                                               “name”: “id”,

                                               “type”: “int”

                                               },

                                                {

                                               “name”: “groupid”,

                                               “type”: “int”

                                                },

                                               {

                                               “name”: “userid”,

                                               “type”: “int”

                                               },

                                               {

                                               “name”: “message”,

                                               “type”: “string”

                                                },

                                              {

                                               “name”: “applydate”,

                                               “type”: “date”

                                               },

                                                {

                                               “name”: “statuscode”,

                                               “type”: “int”

                                               },

                                               {

                                                “name”:”platform”,

                                               “type”: “int”

                                               }

                                ],

                               “writeMode”: {

                                               “isReplace”: “true”,

                                               “replaceKey”: “id”

                                }

                        }

                }

         }]

}}

4.    进入datax/bin目录,启动数据迁移命令,如图3

三分钟掌握SQL Server迁移Mongodb

图3

5.    迁移程序启动后,datax会先去检验reader端和writer端的连接配置是否正确。如果配置信息都是正确的,程序就会开始迁移数据,迁移结果如图4:

三分钟掌握SQL Server迁移Mongodb

图4

注意事项

1. reader端读取的字段和writer写入的字段个数相同,否则检查配置文件的时候会报错。

2. 迁移的过程中,SQL Server要停止写操作。

posted @ 2018-12-28 10:54  syncnavigator  阅读(1626)  评论(0编辑  收藏  举报