单向数据库同步到MySQL

时间:2011-08-10 13:55:05

标签: mysql synchronization visual-foxpro

我有一个基于VFP的应用程序,其目录中包含DBF。我在.NET中使用ODBC来连接和执行此数据库上的事务。我想将这些数据镜像到我的webhost上运行的mySQL。

注意:

  • 这只是一个单向镜像。 VFP到mySQL
  • 必须仅支持插入和更新。删除无所谓
  • 并非所有表都是必需的。实际上,我更倾向于使用定义的SELECT语句来仅镜像必要数据的伪视图
  • 我没有任何VFP记录上的“时间修改”标记。
  • 我没有大量的数据记录(可能总共几千),我在mySQL方面也没有大量并发用户,但希望尽可能高效。

建议的插入策略(似乎并不那么糟糕......):

  • 在mySQL中构建临时表,插入我要镜像的VFP表/视图的所有主键
  • 在mySQL端运行“不从tempTable中选择primaryKey(来自mirroredTable的SELECT primaryKey)”以识别缺失的记录
  • 为这些记录生成并运行必要的INSERT sql
  • 吹掉临时表

建议的更新策略(看起来非常重量级,可能会打破mySQL丢弃表上的打开查询):

  • 在mySQL中构建临时表,并从VFP表/视图中插入所有记录我要镜像
  • 删除现有的mySQL表
  • 将tempTable名称更改为新表名称

这些只是我想到的第一个策略,我确信有更有效的方法(尤其是更新方面)。

我正在寻找一些替代策略。有什么好主意吗?

2 个答案:

答案 0 :(得分:1)

您的VFP表是否在VFP数据库(DBC)中?如果是这样,您应该能够在该数据库上使用触发器来设置有关MySQL中需要更新的数据的信息。

答案 1 :(得分:1)

听起来你会想要一些小东西,但你可能会试着看一些复制设计模式。 Microsoft已经记录了一些数据复制模式here,这是一个很好的起点。我的建议是查看简单的数据移动副本模式。