0

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

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

4

5 回答 5

1

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

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

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

此外,也许您可​​以限制您正在提取的数据 - 无论是时间敏感的,因此如果您的拉取需要 45 分钟,您的拉取只会获得超过 1 小时的数据。或者让事情更安全一点——前一天拉一下怎么样?

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

于 2009-01-09T16:59:32.713 回答
0

查看 Microsoft 的 ETL 工具 DTS。它相当不错。进行映射,将其安排为 cron 作业,而 Bob 是你的叔叔。

于 2009-01-09T00:52:19.227 回答
0

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

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

于 2009-01-09T01:11:00.653 回答
0

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

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

顺便说一句-我正在做与您正在做的完全相同的事情。SQL Server 很棒——它很容易设置(我是 SSIS 的菜鸟),而且它在第一次拍摄时就工作了。

于 2009-01-09T01:56:32.620 回答
0

听起来您需要做的是设置一个脚本来启动和停止从数据库上的复制。如果您可以通过脚本做到这一点,那么您可以在 SSIS 中建立一个工作流,如下所示:

  1. 停止复制到从 MySQL 数据库
  2. 如果复制已停止,则拍摄从 MySQL 数据库的快照
  3. 如果已拍摄快照,则 a= 开始复制到从属 MySQL 数据库 b= 将从属 MySQL 数据库副本导入 SQL Server

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

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

希望这可以帮助

于 2009-10-16T15:08:19.890 回答