2012-03-22 150 views
4

我了.NET脚本访问,我需要同步就这样结束了与另一端的LAMP服务器数据库。目前我已经编写了自己的CSV导出例程和一个匹配的导入程序,但是它在压力下嘎然大裂。有没有更有效的方法去解决这个问题?我可以将CSV导出直接流式传输到IIS吗?导出SQL Server数据库导入到Microsoft服务器

我知道,如果我有更多的特权,我可以运行BACKUP DATABASE命令,然后运行备份与FTP其他服务器,希望找到某种方式导入到MySQL这一点。但是,这不是一个选项。

+0

你能解释为什么@ ta.speot.is的建议答案不被你接受吗?你能解释一下你*做的特权吗? – eggyal 2012-05-15 16:46:00

+0

@eggyal我有有限的FTP访问权限和上传.aspx.vb脚本的能力。 – Fuser97381 2012-05-15 18:59:53

+0

而且你无法连接服务器,因为...? – eggyal 2012-05-15 19:52:13

回答

5

如果MySQL可以从MSSQL服务器访问,那么你可以在MSSQL中创建一个链接服务器,MERGEINSERT,UPDATE或任何到MSSQL内的MySQL表中。

+0

MySQL不可访问。 – Fuser97381 2012-05-15 23:47:24

4

我做了类似的事情。最简单的方法是直接连接MSSQL服务器和MySQL服务器。您将MSSQL中的链接服务器设置为MySQL服务器,然后使用插入,更新等操作来处理链接服务器。这就是ta.speot.is在他的回答中提到的。但是你没有直接链接到MySQL服务器,所以这个选项是不可行的。

另一种选择是使用MSSQL服务的经纪人。借助服务代理,您可以将各个更新,删除和插入到Web服务中。这个webservice可以托管在IIS上。 Web服务将从队列中调用,然后您可以将单个事务一次一个地应用到MySQL数据库。服务代理是嵌入MSSQL 2005+中的异步消息传递系统。有了它,你可以发送消息到其他服务器,数据库甚至外部服务。

只要记住服务代理体系需要时间来学习和实施。我已经在使用服务代理的情况下在mssql和mysql之间创建了自定义复制体系结构,该服务代理每天在Celeron笔记本电脑上处理8800万次事务。它只是用了一些严重的手肘油脂。

UPDATE 好像SQL2008允许你以某种方式运行服务代理SQL服务器之外。看到这个链接http://blogs.msdn.com/b/sql_service_broker/archive/2008/11/21/announcing-service-broker-external-activator.aspx我不知道这可能是你的街道。

+0

你能通过.net建立一个服务代理吗? – Fuser97381 2012-05-17 10:40:17

+0

没有服务代理是所有的SQL。您需要在MSSQL服务器上执行此操作。 – Namphibian 2012-05-17 10:42:56

+0

那就没有骰子了。尽管感谢有趣的回答。 – Fuser97381 2012-05-17 11:26:36

4

您可以编写具有.NET的DataReader上打开MS SQL游标,然后使用连接到MySQL按行插入数据行的另一个连接的脚本。您可以按顺序处理所有表格。

3

相反的CSV,文件生成适合于MySQL服务器

0

我不知道这是否会帮助上运行的SQL脚本,但很长一段时间以前,我创建了一个小软件来实现这个特定任务的大数据集,那就是:

http://csvimporter.codeplex.com/

我做到了开源:)

希望它能帮助。

相关问题