如何将事务性MySQL数据导入SQL Server数据库

时间:2009-01-09 00:37:40

标签: mysql sql-server replication

我正在开发一个项目,该项目具有备份Web应用程序的MySQL事务数据库。该公司将SQL Server用于后台和报告应用程序。使用MySQL数据更新SQL Server的最佳方法是什么?现在,我们正在执行MySQL数据的转储并进行完全恢复。由于数据库的大小不断增加,这可能不太可行。

我更喜欢只复制新插入和更新的行的解决方案。在应用更新后,我还需要SQL Server数据库是静态的。基本上,它应该每天更换一次。我可以从MySQL的本地副本更新SQL Server(即不生产)是否有办法以指定的时间间隔将MySQL复制应用于从属服务器?一个完美的解决方案是在MySQL上运行每日一次的更新,以便在某个时间点同步数据库。

5 个答案:

答案 0 :(得分:1)

你能找到一种方法来快照mySQL数据库,然后进行复制吗?它将使数据库的即时逻辑副本能够及时冻结。

http://aspiringsysadmin.com/blog/2007/08/13/consistent-mysql-backups-using-zfs-snapshots/

ZFS文件系统可以这样做 - 但你没有提到你的硬件/操作系统。

此外,也许你可以限制你所拉的数据 - 无论时间敏感,所以如果拉动需要45分钟,你的拉力只能获得超过1小时的数据。或者让事情变得更安全一点 - 如何在前一天拉动?

我相信SSIS 2008有一个名为“维护”表的新模块,它执行获取更新/插入记录和可选删除的常见任务。

答案 1 :(得分:0)

了解微软的ETL工具DTS。这很好。做映射,将其安排为cron作业,Bob是你的叔叔。

答案 2 :(得分:0)

无论您如何从MySQL克隆导入SqlServer,我都不认为您需要担心将MySQL复制限制在特定时间。

MySQL复制只需要主服务器中的一个线程,基本上只需将事务日志传输到从服务器。如果可以,请将主MySQL服务器和从属MySQL服务器放在专用LAN网段上,这样复制流量不会影响网络流量。

答案 3 :(得分:0)

如果您拥有SQL Server Standard或更高版本,SQL Server将满足您的所有需求。

  • 使用ssis获取数据
  • 使用代理来安排定时任务
顺便说一下 - 我正在做你正在做的事情。 SQL Server很棒 - 它很容易设置(我是SSIS的菜鸟)并且它在第一次拍摄时起作用。

答案 4 :(得分:0)

听起来您需要做的是设置脚本以启动和停止从属数据库上的复制。如果您可以通过脚本执行此操作,则可以在SSIS中建立工作流程,如下所示:

  1. 停止复制到从属MySQL数据库
  2. 如果复制已停止,则使用从属MySQL数据库快照
  3. 如果拍摄了快照,那么 a =启动复制到从属MySQL数据库 b =将Slave MySQL数据库副本导入SQL Server
  4. 注意:3a和3b可以并行运行。

    我认为在这种情况下,最好的办法是使用SSIS启用和禁用对从属设备的MySQL数据库复制,以及拍摄从属数据库的快照。然后,您可以从SQL Server代理机制驱动整个事情。

    希望这有帮助