我必须使用一个数据库来跟踪网络上某些事件的实例。我希望能够将自己的副本保存在其他地方的另一个数据库中。
我遇到的问题是与更新保持同步。如果数据库 AI 上的记录发生更改,则希望使用更改更新数据库 B。很简单,但数据库 A 没有任何形式的修改时间戳字段,我根本无法更改数据库(甚至不能添加触发器)。我正在编写一个 C# 应用程序,它将每小时进行一次同步。(这对我的要求是可以接受的,数据不必一直都是新鲜的)。
我的问题是这样的:
如果我使用 BINARY_CHECKSUM,我大概可以在其他地方(内存/XML/其他)保留预期值的列表,然后定期检查它是否不同。如果它不同,我可以在代码中手动同步该行。
这是一个好主意吗?是否存在与 BINARY_CHECKSUM 相关的大量开销?有没有更好的方法来检测我无法更改的行的更改?
编辑:我完全了解 SQL 复制,但是我应该提到这两个数据库不在同一个网络上,它们之间的接口是通过 C# 访问的 Web 服务完成的。
干杯,