三分鍾掌握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要停止寫操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM