如何同步来自不同位置的三个数据库?

时间:2019-11-25 09:02:14

标签: sql-server

我在不同位置有三个数据库。这些数据库之一是中央数据库。我想将中央数据库与其他两个数据库同步。

要达到目标,请遵循当前的实现和问题:

  1. 我尝试了镜像,但是中央数据库无法读取或写入。

  2. 我编写了一个连接服务器的C#桌面应用程序。该应用程序还逐行读取表并将其插入(或更新)到中央数据库。但是,SQL Server CPU使用率很高。

对于当前的困难,需要解决以下问题:

  1. 如何同步中央数据库?
  2. 如果使用注册的服务器和过程,将会带来积极或消极的后果?

3 个答案:

答案 0 :(得分:0)

此问题未引用到C#。

在数据库中,我们有一些同步数据的机制。 您需要哪种类型的同步?

如果要将数据从一台服务器复制到另一台服务器(例如,对于Dev \ Stg环境),则可以使用增量备份并设置一些powershell脚本来每天执行一次。

如果要保留备用数据库以提高可用性,则可以使用镜像。

在另一种情况下,您可以使用数据库引用并在SQL上写入作业,这将同步数据。

答案 1 :(得分:0)

几个月前,我进行了搜索,发现了一些有关如何在SQL Server中同步多个数据库的信息。下面我提到了其中一些。

  1. SQL Server复制
  2. 更改SQL Server中的数据捕获
  3. 使用SQL Server事件探查器,您可以捕获工作负载并根据需要运行它。

答案 2 :(得分:0)

SymmetricDS可用于将远程MSSQL数据库复制到单个中央数据库中。

您可以将其设置为多租户,以便将每个远程数据库加载到中央的专用数据库中,也可以在中央表中添加一列以指示位置ID。

在SymmetricDS中,可以在从位置复制到中心的同时配置转换,以动态提供位置ID作为复制的一部分。如果您还需要从中心复制到位置,SymmetricDS中的列匹配路由器将检查位置列的每个更改行,并将其仅发送到适当的目标。