Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从MySQL导入导出SQL Server数据库_Mysql_Sql Server - Fatal编程技术网

从MySQL导入导出SQL Server数据库

从MySQL导入导出SQL Server数据库,mysql,sql-server,Mysql,Sql Server,我有microsoft服务器的.net脚本访问权限,我需要将一端的数据库与另一端的LAMP服务器同步。目前,我已经编写了自己的CSV导出例程,以及一个匹配的导入程序,但它在压力下嘎吱作响。有没有更有效的方法?我是否可以以某种方式将CSV导出直接流式传输到IIS 我知道如果我有更多的特权,我可以运行一个备份数据库命令,然后用FTP运行到另一台服务器的备份,并希望找到某种方法将其导入MySQL。但是,这不是一个选项。如果可以从MSSQL服务器访问MySQL,那么您可以在MSSQL中创建一个链接服务器

我有microsoft服务器的.net脚本访问权限,我需要将一端的数据库与另一端的LAMP服务器同步。目前,我已经编写了自己的CSV导出例程,以及一个匹配的导入程序,但它在压力下嘎吱作响。有没有更有效的方法?我是否可以以某种方式将CSV导出直接流式传输到IIS


我知道如果我有更多的特权,我可以运行一个备份数据库命令,然后用FTP运行到另一台服务器的备份,并希望找到某种方法将其导入MySQL。但是,这不是一个选项。

如果可以从MSSQL服务器访问MySQL,那么您可以在MSSQL中创建一个链接服务器,并从MSSQL中将
合并
插入
更新
或任何内容添加到MySQL的表中。

我做了类似的事情。最简单的方法是在MSSQL服务器和MySQL服务器之间建立直接连接。您可以在MSSQL中设置一个链接到MySQL服务器的服务器,然后使用insert、update等对链接服务器进行事务处理。这就是ta.speot.在他的回答中提到的。但是,您没有到MySQL服务器的直接链接,因此该选项不可行

另一种选择是使用MSSQL Service broker。使用ServiceBroker,您可以对Web服务的个别更新、删除和插入进行排队。此Web服务可以托管在IIS上。webservice将从队列中被调用,然后您可以将单个事务一次应用到MySQL数据库。ServiceBroker是嵌入在MSSQL 2005+中的异步消息传递系统。使用它,您可以向其他服务器、数据库甚至外部服务发送消息

请记住,ServiceBroker体系结构需要时间来学习和实现。我使用ServiceBroker在mssql和mysql之间创建了自定义复制体系结构,每天在赛扬笔记本电脑上处理8800多万个事务。它只是需要一些严重的肘部润滑脂

更新
SQL2008似乎允许您以某种方式在SQL server之外运行服务代理。查看此链接我不知道这是否更适合您。

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

代替CSV文件生成适合在MySQL服务器上运行的SQL脚本

我不知道这是否有帮助,但很久以前,我创建了一个小软件,用一个大数据集执行此特定任务,它是:

我把它开源了:)


希望有帮助。

您能解释一下为什么@ta.speot.is的建议答案不被您接受吗?你能解释一下你有什么特权吗?@eggyal我有有限的FTP访问权限和上载.aspx.vb脚本的能力。你不能链接服务器,因为…?你不能在MySQL系统上恢复MSSQL备份。所以这种想法是不可能的。在某种程度上,您可以在MSSQL备份上运行MySQL备份,但这需要您编辑备份脚本。您可以通过.net设置service broker吗?没有service broker完全是SQL。你需要在MSSQL服务器上做这件事。那对我来说没用了。谢谢你有趣的回答。你能给这个问题增加一些细节吗?我相信一定有办法帮助你。只是细节在粗略的一面。