2009-01-09 58 views
0

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

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

回答

0

研究微软的ETL工具DTS。这很好。做映射,把它定为一个cron工作,而Bob是你的叔叔。

+0

我想我会使用SSIS。问题不在于此。问题是数据源。我需要将数据的静态副本作为源。生产副本是一个实时数据库。我的理解是MySQL的奴隶也是活的。 – 2009-01-09 01:09:53

0

不管你怎么做从MySQL克隆的进口SQLSERVER,我不认为你需要担心限制MySQL复制到特定的时间。

MySQL复制只需要在主服务器的一个线程,基本上只传递事务日志的奴隶。如果可以的话,将主MySQL服务器和从属MySQL服务器放在专用局域网段上,这样复制流量不会影响Web流量。

0

,如果您有SQL Server标准或更高版本,SQL Server将照顾您的所有需求。

  • 使用SSIS来获取数据
  • 使用代理来安排您的定时任务

顺便说一句 - 我做你正在做同样的事情。 SQL Server非常棒 - 它很容易设置(我是SSIS的一个小菜鸟),它在第一个镜头中工作。

+0

我明白如何做到这一点。我不知道该怎么做才能获得生产数据的快照,如果您愿意的话。它位于数据中心,而不是我们的网络。我需要知道数据处于一致状态的时间点。否则,我的目标服务器会很快失去同步。 – 2009-01-09 02:08:00

1

你能找到一种方法来快照mySQL DB然后做副本吗?它会使数据库的即时逻辑副本及时被冻结。

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

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

此外,也许你可以限制你正在拉动的数据 - 无论是时间敏感的,这样你的拉动只会得到大于1小时的数据,如果拉动需要45分钟。或者让事情变得更安全一点 - 只要拉前一天,情况如何?

我相信SSIS 2008有一个名为“维持”表中的新模块,做的得到更新/插入记录的共同任务,也可选择删除。

0

这听起来像你需要做的是建立一个脚本来开始和一个从数据库上停止复制。如果你可以通过脚本做到这一点,那么您可以在SSIS建立一个工作流程,例如如下:

  1. 停止复制到从MySQL数据库
  2. 如果复制已停止,然后采取从快照MySQL数据库
  3. 如果快照之后,然后 A =启动复制到从MySQL数据库 b =导入从MySQL数据库副本到SQL Server

注:3a和3b可以并行运行。

我认为在这种情况下最好的选择是使用SSIS来启用和禁用MySQL数据库复制到从服务器以及从服务器数据库的快照。然后你可以从SQL Server代理机制中驱动整个事情。

希望这可以帮助

相关问题