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 / 问题

问题[transactional-replication](dba)

Martin Hope
forumresearcher007
Asked: 2022-07-14 02:24:13 +0800 CST

发布者的事务复制负载

  • 2

我想在我的 SQL Server 上启用复制,根据文档,与作为本地分发器的 SQL Server 上的负载相比,作为远程​​分发器的服务器上的负载更少(即在发布者中插入/更新的负载为 8-10%) (即 bieng Publisher 和 Distributer)(16-25% 用于插入/更新)。[页码:11]

此外,文档(与 MSSQL Server 2000 相关)提到,在使用远程 Distributor 时,压力条件下的成本可能低至 8-10%,而在使用本地 Distributor 时成本会更高,这对 MSSQL 2017 也适用吗?我问这个的原因是,由于我目前的限制,我计划将我的 SQL 服务器作为本地分销商。我应该继续我的计划还是有任何严重的缺点?

sql-server transactional-replication
  • 1 个回答
  • 41 Views
Martin Hope
Kirk Saunders
Asked: 2022-03-22 13:39:17 +0800 CST

事务复制架构 - 一篇文章 - 多个订阅者

  • 1

Distributor问:服务器使用 1publication到 2subscribers或使用 2且每台publications相同articles的服务器更便宜/更高效subscriber?

细节:

我们最近遇到了一个问题,即我们Transactional Replication的DistributortoSubscriber进程将停止并且不会优雅地恢复。这几乎就像一些事务被跳过或被乱序应用。从历史上看,我们刚刚解决了这个问题reinitializing并publication继续前进。

我们已将其缩小到Distributor服务器上的资源利用问题。大多数情况下,我们可以通过重新启动服务器来解决,Azure但较大的服务器publications并不总是自行恢复。

我们articles需要将所有内容交付到两台不同的服务器(一台用于 IT 部门拥有的报告功能,另一台用于数据分析师团队拥有的报告功能)。我们将把各种文章分成几组,每组得到 2 篇,然后将它们发送到我们接受两者publications的单独服务器。一个连接到 IT 服务器,另一个连接到 Data Analyst 服务器。如下所示:DistributorPublicationspublication当前的复制架构

资源利用问题的部分原因是数据分析服务器上对命令blocking应用的昂贵查询。replication我们正在与该团队合作以改进查询,但我也想看看我们是否可以进行架构调整以提供帮助。

我正在寻找是否有任何理由可以降低Distributor发送 1publication到 2subscribers而不是使用 2publications到单个的成本subscriber。如下所示:潜在的复制架构

有没有人对这种潜在的实施有任何经验?

sql-server transactional-replication
  • 1 个回答
  • 46 Views
Martin Hope
YHTAN
Asked: 2021-06-01 01:55:51 +0800 CST

MSSQL 事务复制 - 如何重新同步数据?

  • 0

我有 1 个事务复制(点对点拓扑)。设置后,我发现 2 表上的数据有所不同。

第一个对等表 [VPMYN204].[AdventureWorks2019].[Person].[AddressType] 有 6 行。第二个表 [AdventureWorks2019].[Person].[AddressType] 有 7 行。

在此处输入图像描述

  1. 我应该怎么办?(P/S:我是事务复制功能的新手。)
sql-server transactional-replication
  • 1 个回答
  • 378 Views
Martin Hope
Murali Dhar Darshan
Asked: 2020-10-26 06:31:58 +0800 CST

在生产环境中更改 SQL 数据库的排序规则以最大程度地减少停机时间

  • 8

我们有一个场景,我们希望将生产数据库(包括列)的排序规则从 SQL_Scandinavian_Pref_CP850_CI_AS 更改为 Finnish_Swedish_CI_AS。我们已经开发了脚本来做到这一点。但是在超过 100GB 的大型数据库中执行这个脚本需要相当长的时间,而且我们不能承受很长的停机时间。所以我们决定使用以下策略来减少停机时间:

  1. 我们将设置事务复制,并使用数据库备份方法初始化订阅者。
  2. 发布者数据库将与应用程序一起使用,其事务将通过事务复制传递到订阅者数据库。
  3. 我们将在订阅者端执行排序规则更改脚本,当发布者和订阅者数据库的 SQL Server 相同时,它确实允许我们执行此脚本。我们最近在 SQL Server 2019 中发现了这一点。
  4. 现在,痛点是,当 varchar、char 列的数据包含“åÅäÄöÖ”等特殊字符时,它无法正确复制它。在订阅者方面,我们收到了一些奇怪的字符,例如“†„Ž”™'

您能否建议我们如何解决此错误或任何替代架构,以在更改数据库排序规则(包括列)时最大限度地减少生产中的停机时间?

此外,我的排序规则更改脚本正在订阅者数据库上执行以下任务以更改其排序规则:

  1. 删除外键约束
  2. 删除索引,包括主键
  3. 删除检查和默认约束
  4. 删除用户统计信息
  5. 删除视图、计算列、SP 以解决对象绑定错误
  6. 执行上述步骤后,表已准备好进行排序规则更改。因此,该脚本将一一更改每个表的列排序规则。
  7. 成功执行步骤 6 后重新创建上面列出的约束。
sql-server transactional-replication
  • 1 个回答
  • 754 Views
Martin Hope
felix
Asked: 2020-10-15 08:01:02 +0800 CST

仅复制更新和插入

  • 0

我有两个 sql 服务器,第一个我想保留过去三个月的数据,第二个我想保留所有数据以获取历史报告。我知道如何进行事务复制,但我不知道如何仅复制插入和更新,我不想复制删除。

是否可以通过服务器之间的复制来做到这一点,或者您是否必须通过触发器自己编程?

sql-server-2016 transactional-replication
  • 1 个回答
  • 174 Views
Martin Hope
Dzyann
Asked: 2020-06-23 13:15:21 +0800 CST

如何在没有快照的情况下将完整的事务复制迁移到其他服务器?

  • 0

我们有使用事务复制保持同步的大型数据库。它们都在虚拟机中运行,我们将转移到新的提供商并重新组织网络结构和应用程序分布。

是否可以迁移事务复制:发布者、订阅者、分发数据库而无需拍摄新快照?目前,我们在 Server_1 中有发布者,在 Server_2 中有订阅者和分发数据库。我们将把发布者移动到 Server_3,将订阅者和分发数据库移动到 Server_4

我对 SQL 复制没有太多经验,所以我读了很多书。我在这里找到了这个答案。阅读它,我知道如果我按照这些步骤操作,应该可以将复制移动到新的 2 台服务器:

  1. 在停机期间,我们等到所有对象都同步
  2. 然后编写复制脚本(这包括发布者、订阅者和分发数据库吗?),
  3. 将发布者和订阅者数据库迁移到新位置
  4. 仅使用复制支持从头开始创建新的事务复制(使用从现有复制生成的脚本)
  5. 运行快照作业以确保创建任何缺少的系统对象。

但是我不知道我是否拥有所需的所有数据/步骤/理解,以及我是否遗漏了任何重要的东西。

另外,是否可以不等待所有对象同步?我想测试这个过程,但我不知道我是否能够关闭数据库这么长时间只是为了测试。那么我们能否在不完全同步的情况下迁移两个数据库并在不创建快照的情况下重新生成复制?也许没有“仅支持复制”选项并运行快照作业。如果我们在这种情况下运行快照作业,它们会创建一个完整的快照,因为数据库不会同步,还是只会寻找差异?

如果我的问题看起来很明显,我很抱歉,我以前没有使用过这个技术,我想确保一切都正确。

sql-server transactional-replication
  • 1 个回答
  • 519 Views
Martin Hope
Ollie
Asked: 2020-04-09 06:53:03 +0800 CST

订阅初始化抛出错误“选项“INLINE=ON”对此函数无效”,这是不正确的

  • 5

场景 我们正在将我们的 SQL 资产升级到 SQL Server 2019,并设置了生产环境。

来自:SQL2008R2 Standard/Windows Server 2008R2 - 主服务器/辅助服务器(Windows 故障转移群集)和报告服务器(事务复制)。

至:SQL2019 Standard/Windows Server 2019 - 主服务器/辅助服务器(始终在线)和报告服务器(事务复制)

2008R2 的备份已于 2019 年恢复,兼容性级别设置为最新。Always-On 设置相对顺利,针对当前应用程序的初始测试显示兼容性没有问题。

问题纯粹在于设置事务复制。有 2 个数据库需要复制,每个发布一个以主数据库作为发布者和分发者。

问题 在报告服务器上的每个数据库的订阅初始化期间,它运行良好,直到它到达创建函数的地步并产生以下错误。

第一个数据库:

消息:选项“INLINE=ON”对此函数无效。检查文档以了解函数中 INLINE 选项支持的构造。命令文本: CREATE FUNCTION [dbo].[f_clienttels - 镜像复制 ce2d3663eb494f3589bd5000dad1bf1f](@ClientID [int]) RETURNS varchar WITH INLINE = ON, EXECUTE AS CALLER AS BEGIN ......

第二个数据库:

消息:为语句“CREATE/ALTER FUNCTION”指定了无效选项。关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。')' 附近的语法不正确。命令文本:CREATE FUNCTION [dbo].[GetGroupAndDescendantGroupsSelective - Mirror Copy 46f329d5eed444428f45b052f07c7ea8](@GroupId [int]) RETURNS TABLE WITH INLINE = ON AS RETURN ( WITH GroupsCTE AS ( ........

它们都是不同的错误,但我相信两者都与“INLINE = ON”选项有关,这两个函数中都不存在此选项,如果您从订阅中删除这些文章,我们的函数都没有明确使用 inline 选项它只是在下一个函数上给出相同的错误(如果函数以 CTE 开头,则为 CTE 错误,如果不是,则为 INLINE=ON 错误)。

因此,似乎复制在复制之前将“WITH INLINE = ON”插入到函数中,然后在它所做的添加上出错。

我已将所有实例修补到最新的 CU4 更新 15.0.4033.1,在两台服务器上测试了这些功能(有效),验证了数据库中的所有功能/过程,一切都很好。在当前的 2008R2 环境中,我不得不在几个月前重新创建该出版物并且没有出现这些错误。作为目前的解决方法,我在订阅者处手动创建函数并从出版物中删除所有函数文章。

任何解决此问题的帮助将不胜感激,对此错误的唯一引用(来自第一个 DB)是提到它没有记录(下面的链接),我找不到任何其他论坛帖子提到它。

16203 – 选项“INLINE=ON”对此功能无效。检查文档以了解函数中 INLINE 选项支持的构造。

来自:Brent Ozar - SQL Server 2019 的 sys.messages 中的新增功能:更多未宣布的功能

我们与 Microsoft 没有有效的支持合同,但正试图通过提供许可证的供应商联系他们,因此如果他们回复我们,我将在此处提供更新。

如果需要,我可以提供更多信息。

sql-server transactional-replication
  • 4 个回答
  • 2111 Views
Martin Hope
jack
Asked: 2019-12-26 18:45:17 +0800 CST

订阅者节点在事务复制中关闭

  • 0

1)我有 2 个节点,其中节点 1 是同一服务器中的发布者和分发者,节点 2 中的订阅者。如果发布者关闭了几个小时,我需要通过禁用复制来启动订阅者进行读写,事务和节点 1 分发数据库中的命令将被回滚或者我会丢失某些数据?

2)我有节点 1 是发布者,节点 2 有分发者和订阅者,以防发布者关闭几个小时,我需要启动订阅者进行读写。在发布者中标记为复制但尚未发送到分发者的事务会发生什么情况,它会回滚还是我会丢失某些数据?

谢谢

sql-server transactional-replication
  • 1 个回答
  • 67 Views
Martin Hope
A.HADDAD
Asked: 2019-07-02 23:52:06 +0800 CST

Sql Server 中 is_published 和 is_merge_published 的区别?

  • 0

Sql Server 中的 is_published 和 is_merge_published 列有什么区别?

我找不到描述它的文档!

SELECT [name],[is_published],[is_merge_published] FROM sys.databases ;
sql-server transactional-replication
  • 1 个回答
  • 318 Views
Martin Hope
BustaRhymes313
Asked: 2019-06-04 11:26:13 +0800 CST

重建期间的事务复制数据

  • 0

为了卸载报告,我在 prod box 和报告服务器之间运行了事务复制(上图 #1)。在必须重建快照之前,这非常有效。在此期间,用户/应用程序/报告正在从不完整的数据集中读取,同时正在重建报告数据库。

有没有其他人遇到过这个问题?最好的工作是什么?

图像中的#2 是一个合理的解决方案吗?在数据仓库之上创建一个 shell 数据库。报告数据库不再包含数据,而仅包含复制数据存储库中表结构的视图。在重建“data repo”数据库期间,“reporting db”设置为脱机以防止用户/应用程序/repos 读取不完整的数据?

在此处输入图像描述

sql-server transactional-replication
  • 1 个回答
  • 94 Views

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