我正在开发一个项目,该项目具有备份Web应用程序的MySQL事务数据库。该公司将SQL Server用于后台和报告应用程序。使用MySQL数据更新SQL Server的最佳方法是什么?现在,我们正在执行MySQL数据的转储并进行完全恢复。由于数据库的大小不断增加,这可能不太可行。
我更喜欢只复制新插入和更新的行的解决方案。在应用更新后,我还需要SQL Server数据库是静态的。基本上,它应该每天更换一次。我可以从MySQL的本地副本更新SQL Server(即不生产)是否有办法以指定的时间间隔将MySQL复制应用于从属服务器?一个完美的解决方案是在MySQL上运行每日一次的更新,以便在某个时间点同步数据库。
答案 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将满足您的所有需求。
答案 4 :(得分:0)
听起来您需要做的是设置脚本以启动和停止从属数据库上的复制。如果您可以通过脚本执行此操作,则可以在SSIS中建立工作流程,如下所示:
注意:3a和3b可以并行运行。
我认为在这种情况下,最好的办法是使用SSIS启用和禁用对从属设备的MySQL数据库复制,以及拍摄从属数据库的快照。然后,您可以从SQL Server代理机制驱动整个事情。
希望这有帮助