同步方案:
1 使用 Sql Sever的鏈接服務器,從而對鏈接數據的進行插入同步
條件:
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造成影響
更好的方案:
在本地創建一個同步表,使用定時執行的存儲過程將源數據表拷貝到同步表,再將同步表同步到目的數據庫,以完成數據同步