如何连续同步两个SQL Server数据库?

问题描述

我有一个包含大量数据的SQL Server数据库,其中包含许多表,视图,触发器,存储过程等。其中一些表是:“用户”,“购物车”,“商店”等。

同时,我需要拥有此数据库的副本,该副本应在特定时间与主表同步。因此,我的主数据库中的更改应该每天在数据库副本中反映几次。此外,如果“用户”表中有更改,则此更新应立即触发同步。

在数据库副本中,我还有一些表'managers','schools'等,这些表不存在于主数据库中。同步时,这些附加表完全不应该更改,因为主数据库中不存在这些表。

因此,让我们独立于使用它们的解决方案来查看这些数据库。我想知道的是:建立这种同步的最佳方法是什么?数据库非常庞大,从一个位置查询另一个位置的每个数据库表的数据似乎不是一个好的选择。有什么通用的方法可以实现这种同步吗?是否应该在代码中完成此操作,或者应该在放置数据库的服务器上(在控制面板下)有一些触发器,还是通过SQL Server本身?我不确定这里最好的选择是什么,所以请提出建议。

我正在使用版本

Microsoft SQL Server 2017 (RTM-CU9-GDR) (KB4293805) - 14.0.3035.2 (X64) Jul  6 2018 18:24:36   
Web Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 

解决方法

您需要配置对象级别的复制,您可以在其中选择特定的表,存储过程,视图等。您的主要数据源将称为发布者,而辅助数据将被称为 您将存储此更改的位置称为订户。

复制可以完全满足您的要求。

复制的类型很多,并且假设不会从辅助位置发生更改,transactional replication最适合您的需求。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...