将SQLServer数据同步到MySQL 用什么方法?
问题描述
目的:将 SQLServer 数据表里的数据自动同步到 MySQL 的数据表里。环境:两个数据库分别在两台服务器上;SQLServer表名为 tb1, MySQL表名为 tb2同步方法:1、实时同步:在 SQLServer 建立 ODBC 数据源,将 MySQL 数据库设置为系统DSN,然后建立链接服务器 mysql。在 tb1 表上建立插入、修改、删除触发器,自动更新MySQL表。2、定时作业:还没用过,不会,谁能给个例子?谢谢。
问题:1、方法1需要两台服务器都工作正常,MySQL不能关机或重启,否则会同步不成功。而且测试往 SQLServer 的tb1表中插入数据时,还报错:
链接服务器'mysql'的 OLE DB 访问接口 'MSDASQL' 返回了消息 '[MySQL][ODBC 5.2(w) Driver]Optional feature not supported'。
2、方法2定时作业,同步时同步 tb1 表中的全部数据还是只同步当天的数据?怎样区分?按时间吗?具体怎样同步到链接服务器 mysql 的 tb2 表中?
这两种同步方法哪种稳定?同时也好检查同步失败的数据?或者还有其它什么方法吗?(不用第三方软件)
希望有类似经验的大神们给个方案,十分感谢!
问题解答
回答1:定时同步压力小点。如果你有两个字段created_at和updated_at,created_at代表记录啥时候创建的,updated_at代表记录啥时候更新的。每次同步就就按照这两个字段把当前这个时段的记录select出来然后存储就OK了。
回答2:为啥不试试kettle,是一款ETL工具,用于数据抽取,支持各种数据库,而且也可以定时job,也可以中断续传,完全满足你的需求,之前公司用过,很好,很强大,可以试试。http://www.oschina.net/p/kettle 网上也有不少资料
相关文章:
1. docker-compose中volumes的问题2. docker安装后出现Cannot connect to the Docker daemon.3. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么4. docker网络端口映射,没有方便点的操作方法么?5. nignx - docker内nginx 80端口被占用6. javascript - web移动端 © 版权这个字在安卓上默认蓝色颜色 怎么解决?7. 老师,按tab键不起作用怎么回事8. mysql - 执行sql查询操作时遇到奇怪的结果9. javascript - 用原生的js获取body和用jquery获取body的的margin值为什么不一样?10. javascript - $(document).scrollTop()与某个div的$(’#js_productWrap’).offset().top

网公网安备