AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 148604
Accepted
Mike Zalansky
Mike Zalansky
Asked: 2016-09-02 13:07:03 +0800 CST2016-09-02 13:07:03 +0800 CST 2016-09-02 13:07:03 +0800 CST

2 个相同的服务器/SQL 服务器处理带有合并复制的事务

  • 772

为了清楚起见,编辑了整个问题。

场景:在不同的服务器上有 2 个相同的 SQL Server,同时处理来自不同应用程序的事务,同时完全同步(例如移动应用程序服务器 1 和 Web 应用程序服务器 2)。

我们将使用 Always On 将一台服务器故障转移到另一台服务器进行维护,反之亦然,但是当维护完成后,两台服务器将再次在线处理来自我们各种应用程序的事务并同步。

试图解决来自客户端的在线请求,即使在维护期间,使用 2 个同步服务器,每个服务器处理来自不同应用程序的事务。

使它们保持同步的最佳方法是什么?倾向于合并复制。

在此处输入图像描述

当前版本。SQL Server 2012 SP3-CU4

谢谢

sql-server-2012 merge-replication
  • 2 2 个回答
  • 175 Views

2 个回答

  • Voted
  1. Danilo Braga
    2016-09-02T13:39:36+08:002016-09-02T13:39:36+08:00

    您是否考虑过对等事务复制?您可以在此处
    找到更多比较。

    对等事务复制:使用时...

    • 复制用于提高可伸缩性和可用性。
    • 需要最小的延迟。
    • 数据未在订阅者之间进行分区。
    • 通常不会发生冲突,但如果发生冲突则必须检测到。

    合并复制:使用时...

    • 有大量订阅者。
    • 数据被复制到移动用户。
    • 复制的数据经常在订阅服务器上更新。
    • 需要数据过滤,以便订阅者接收不同的数据分区。
    • 1
  2. Best Answer
    Rajesh Ranjan
    2016-09-03T07:56:27+08:002016-09-03T07:56:27+08:00

    根据给定的场景,如果两个应用程序使用同一组数据(数据库),AlwaysOn 是最佳解决方案。

    它可以在镜像节点上为您提供快速且几乎实时的同步,并在发生任何错误时立即进行故障转移。

    要与数据库建立连接,您有通用的 IP 地址/侦听器名称,因此您无需更改 IP 地址以防发生故障转移。

    由于它允许使用镜像数据库执行读取操作,您可以通过将读取 (SELECT) 请求重定向到它来将其用于报告,并获取镜像数据库的完整和差异,从而减少主节点的读取开销。

    无论您的应用程序是 OLAP 还是 OLTP,都不要担心,与复制始终开启不同,它不会记录文章事务并在合作伙伴数据库上执行。而是将完整的事务从主体数据库的缓冲区同步到镜像数据库。

    对于定期维护,这是最好的解决方案。在镜像节点执行服务器维护活动,完成后加入集群时,镜像数据库将与主体同步。

    当两个不同的应用程序操作不同服务器上不同数据库中可用的几个公共表时,合并复制很有用。例如,在一个组织中,HR 和 Account 两个部门都需要 Employee 表来处理,但都不想彼此共享他们的记录。所以如果有两个数据库 HR_DB 和 Account_DB,我们可以在两个数据库之间为 Employee 表设置合并复制。

    复制记录对您包含在其中的每篇文章执行的 DML 操作。它就像一个用于更新、插入和删除的对象上的触发器,创建该对象是为了记录每个 DML 请求,因此如果您的应用程序是写入密集型的,您可能会面临性能和事务冲突问题。

    如果所有应用程序都使用同一组数据(数据库),那么您走在正确的道路上,在这种情况下倾向于合并复制不是一个好主意。

    谢谢

    • 1

相关问题

  • SQL Server 2012 在 TempDb 中使用排序创建索引 - 获得 False?

  • SQL Server AlwaysOn 故障转移透明度

  • 为什么 Denali 序列应该比标识列表现更好?

  • SQL Server 不应该支持范围吗?

  • 什么是 SQL Server“德纳利”?什么是新的?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve