我需要将大型本地 SQL Server 数据库同步到服务器数据库,反之亦然。这两个数据库的结构完全相同。当用户登录时,或者当他同步数据时,我们需要同步数据。
我想使用 .NET Core Winforms 应用程序来完成此操作。
我认为我可以通过手动方式实现这一点,但我对这种方法有一些问题:
数据库很大,处理它需要很长时间,这将需要很长时间处理数据,并且它将通过多个设备而不是一个设备进行。
我尝试使用一个名为
SriLibs.DataSync.MSSQLSERVER.Core
的包,但它总是会抛出日期时间等数据类型的异常,如果该列具有默认值 01/01/0001,它将抛出异常 - 我可以覆盖此行为吗? - 怎么办?
您可以使用日志传送
或
您可以为所有记录提供最新更新或创建日期的时间戳。了解您上次检索数据的时间将提供要同步哪些新数据或更改的数据的信息。
现在,如果您有硬删除,那么创建另一个包含要删除的表名和 ID 的数据库并将记录插入到该数据库中是有意义的,这样您稍后就会知道在同步时需要从副本中删除什么并定期清理该数据库的旧记录。
或
您可以在副本上公开一个端点,并在主数据库有要执行的写入操作时请求这些端点。
如您所见,您有多种可能的解决方案,您可以选择最适合您场景的解决方案。