將SQLServer數(shù)據(jù)同步到MySQL 用什么方法?
問(wèn)題描述
目的:將 SQLServer 數(shù)據(jù)表里的數(shù)據(jù)自動(dòng)同步到 MySQL 的數(shù)據(jù)表里。環(huán)境:兩個(gè)數(shù)據(jù)庫(kù)分別在兩臺(tái)服務(wù)器上;SQLServer表名為 tb1, MySQL表名為 tb2同步方法:1、實(shí)時(shí)同步:在 SQLServer 建立 ODBC 數(shù)據(jù)源,將 MySQL 數(shù)據(jù)庫(kù)設(shè)置為系統(tǒng)DSN,然后建立鏈接服務(wù)器 mysql。在 tb1 表上建立插入、修改、刪除觸發(fā)器,自動(dòng)更新MySQL表。2、定時(shí)作業(yè):還沒(méi)用過(guò),不會(huì),誰(shuí)能給個(gè)例子?謝謝。
問(wèn)題:1、方法1需要兩臺(tái)服務(wù)器都工作正常,MySQL不能關(guān)機(jī)或重啟,否則會(huì)同步不成功。而且測(cè)試往 SQLServer 的tb1表中插入數(shù)據(jù)時(shí),還報(bào)錯(cuò):
鏈接服務(wù)器'mysql'的 OLE DB 訪問(wèn)接口 'MSDASQL' 返回了消息 '[MySQL][ODBC 5.2(w) Driver]Optional feature not supported'。
2、方法2定時(shí)作業(yè),同步時(shí)同步 tb1 表中的全部數(shù)據(jù)還是只同步當(dāng)天的數(shù)據(jù)?怎樣區(qū)分?按時(shí)間嗎?具體怎樣同步到鏈接服務(wù)器 mysql 的 tb2 表中?
這兩種同步方法哪種穩(wěn)定?同時(shí)也好檢查同步失敗的數(shù)據(jù)?或者還有其它什么方法嗎?(不用第三方軟件)
希望有類似經(jīng)驗(yàn)的大神們給個(gè)方案,十分感謝!
問(wèn)題解答
回答1:定時(shí)同步壓力小點(diǎn)。如果你有兩個(gè)字段created_at和updated_at,created_at代表記錄啥時(shí)候創(chuàng)建的,updated_at代表記錄啥時(shí)候更新的。每次同步就就按照這兩個(gè)字段把當(dāng)前這個(gè)時(shí)段的記錄select出來(lái)然后存儲(chǔ)就OK了。
回答2:為啥不試試kettle,是一款ETL工具,用于數(shù)據(jù)抽取,支持各種數(shù)據(jù)庫(kù),而且也可以定時(shí)job,也可以中斷續(xù)傳,完全滿足你的需求,之前公司用過(guò),很好,很強(qiáng)大,可以試試。http://www.oschina.net/p/kettle 網(wǎng)上也有不少資料
相關(guān)文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?2. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法3. mysql儲(chǔ)存json錯(cuò)誤4. mysql - 怎么生成這個(gè)sql表?5. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決6. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?7. sql語(yǔ)句 - 如何在mysql中批量添加用戶?8. mysql - 表名稱前綴到底有啥用?9. 編輯成功不顯示彈窗10. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。
