Sql Sever 2008同步MySql 5.1

同步方案:

1 使用 Sql Sever的鏈接服務器,從而對鏈接數據的進行插入同步

條件:

MySql ODBC驅動

MySql端的管理權限,同步前需要我們創建表

建立鏈接服務器SQL腳本:

EXEC master.dbo.sp_addlinkedserver 
@server = N'MyLink', 
@srvproduct = N'localhost', 
@provider = N'MSDASQL', 
@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=118.123.20.224;
           Database=db_test;User=root;Password=root;Option=3;'

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname = N'MyLink',
@useself = N'False',
@rmtuser = N'root',
@rmtpassword = N'root'

鏈接服務器相關操作

--查詢
select * from openquery(mylink,'select * from db_test');

--插入
insert into openquery(mylink,'select * from db_test')
select 1,'Peter',30;

--更新
update openquery(mylink,'select * from db_test')
set name=‘joke’ where id=1;

--刪除
delete from openquery(mylink,'select * from db_test')
where id=1;

使用鏈接服務器的弊端在於:

1 同步前必須在目的數據庫(MySql)創建新表

2 親自寫同步語句

3 開啓Sql Server 代理 進行作業定時執行,以完成數據上傳同步,在這裏需要精緻的設置續傳方法

4 不能使用觸發器與儲存過程,因爲MySql ODBC沒有提供這些認爲的服務

5 執行上傳語句需要太長的時間,SQL Server傳輸過程你會發現在數百萬記錄時就需要數個小時的傳輸時間。

6 對MySql重複操作有時會發生錯誤,即多次在Sql中對MySql鏈接服務器進行同表操作時,會發生不能插入查詢的情況,可能是MySql資源被佔用問題。


REL: LINK

繼續探索Sql Server 到MySql間的同步

2 數據庫同步軟件 SyncNavigator

這是專門的Sql Server 到MySql的數據庫同步軟件,操作十分簡單。

遇到的問題

1 SyncNavigator需要在源數據庫寫入同步字段,這是一個timestamp類型,這可能會對使用該數據庫的原應用程序或WEB造成影響

更好的方案:

在本地創建一個同步表,使用定時執行的存儲過程將源數據表拷貝到同步表,再將同步表同步到目的數據庫,以完成數據同步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章