將SQLServer數(shù)據(jù)同步到MySQL 用什么方法?
問題描述
目的:將 SQLServer 數(shù)據(jù)表里的數(shù)據(jù)自動同步到 MySQL 的數(shù)據(jù)表里。環(huán)境:兩個數(shù)據(jù)庫分別在兩臺服務(wù)器上;SQLServer表名為 tb1, MySQL表名為 tb2同步方法:1、實(shí)時同步:在 SQLServer 建立 ODBC 數(shù)據(jù)源,將 MySQL 數(shù)據(jù)庫設(shè)置為系統(tǒng)DSN,然后建立鏈接服務(wù)器 mysql。在 tb1 表上建立插入、修改、刪除觸發(fā)器,自動更新MySQL表。2、定時作業(yè):還沒用過,不會,誰能給個例子?謝謝。
問題:1、方法1需要兩臺服務(wù)器都工作正常,MySQL不能關(guān)機(jī)或重啟,否則會同步不成功。而且測試往 SQLServer 的tb1表中插入數(shù)據(jù)時,還報錯:
鏈接服務(wù)器'mysql'的 OLE DB 訪問接口 'MSDASQL' 返回了消息 '[MySQL][ODBC 5.2(w) Driver]Optional feature not supported'。
2、方法2定時作業(yè),同步時同步 tb1 表中的全部數(shù)據(jù)還是只同步當(dāng)天的數(shù)據(jù)?怎樣區(qū)分?按時間嗎?具體怎樣同步到鏈接服務(wù)器 mysql 的 tb2 表中?
這兩種同步方法哪種穩(wěn)定?同時也好檢查同步失敗的數(shù)據(jù)?或者還有其它什么方法嗎?(不用第三方軟件)
希望有類似經(jīng)驗(yàn)的大神們給個方案,十分感謝!
問題解答
回答1:定時同步壓力小點(diǎn)。如果你有兩個字段created_at和updated_at,created_at代表記錄啥時候創(chuàng)建的,updated_at代表記錄啥時候更新的。每次同步就就按照這兩個字段把當(dāng)前這個時段的記錄select出來然后存儲就OK了。
回答2:為啥不試試kettle,是一款ETL工具,用于數(shù)據(jù)抽取,支持各種數(shù)據(jù)庫,而且也可以定時job,也可以中斷續(xù)傳,完全滿足你的需求,之前公司用過,很好,很強(qiáng)大,可以試試。http://www.oschina.net/p/kettle 網(wǎng)上也有不少資料
相關(guān)文章:
1. 運(yùn)行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?2. 在mac下出現(xiàn)了兩個docker環(huán)境3. 利用IPMI遠(yuǎn)程安裝centos報錯!4. spring-mvc - spring-session-redis HttpSessionListener失效5. javascript - QQ第三方登錄的問題6. 測試自動化html元素選擇器元素ID或DataAttribute [關(guān)閉]7. javascript - node得到req不能得到boolean8. javascript - 最近用echarts做統(tǒng)計圖時遇到兩個問題??!9. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。10. javascript - 在 model里定義的 引用表模型時,model為undefined。

網(wǎng)公網(wǎng)安備