问题标签 [transactional-replication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
17456 浏览

sql-server - 没有主键的事务复制(唯一索引)

我刚刚遇到了一些令人不安的事情,我试图从一个设计不受我们控制的数据库中实现事务复制。这种复制是为了在不对系统造成过多负担的情况下执行报告。在尝试复制时,只有一些表通过了。

在调查表中没有选择复制,因为它们没有主键,我认为如果我使用 ODBC 和 ms 访问但不在管理工作室中,它甚至不能显示为主键。查询也不是慢得离谱。

我尝试插入重复记录,但未能说出唯一索引(不是主键)。似乎是使用唯一索引而不是主键来实现表。为什么我不知道我可以尖叫。

无论如何要执行事务复制或替代方案,它需要是实时的(最后一分钟或两分钟)。主数据库服务器目前是 sql 2000 sp3a 和报告服务器 2005。

我目前唯一想到的尝试是将复制设置为好像它是另一种类型的数据库一样。我相信复制说 oracle 是可能的,这会强制使用 ODBC 驱动程序,就像我假设访问正在使用的那样,因此显示主键。我不知道这在我的深度范围内是否准确。

0 投票
1 回答
1821 浏览

sql-server-2000 - 如何使用事务复制添加新文章?

假设我使用事务复制将文章从一台服务器复制到另一台服务器(均运行 SQL Server 2000)。这是设置和工作得很好。

然后,我决定添加一篇新文章。首先,我通过 将它添加到出版物中Publication Properties > Articles > Objects to Publish

那么,我该怎么办?

如果我可以复制新文章而不必从头开始生成新快照,那就太好了……然后清除订阅者并从头开始重建它。仅添加 1 个表就需要做大量的工作。

0 投票
2 回答
676 浏览

tsql - 等待 ADO.NET 或 TSQL 中的事务复制

我的 Web 应用程序针对 SQL Server 2008 使用 ADO.NET。数据库写入发生在主(发布者)数据库上,但读取在主数据库和辅助(订阅者)数据库之间进行负载平衡。我们使用 SQL Server 的内置事务复制来使辅助服务器保持最新。大多数时候,几秒钟的延迟不是问题。

但是,我确实有一个案例,我想阻止直到事务在辅助站点提交。阻止几秒钟是可以的,但将陈旧的页面返回给用户则不行。ADO.NET 或 TSQL 中是否有任何方法可以指定我要等待复制完成?或者我可以从发布者那里检查事务的复制状态,而无需手动连接到辅助服务器。

[编辑] 99.9% 的时间,订阅者中的数据“足够新鲜”。但是有一种操作会使它无效。我不能每次都从出版商那里读到它,因为它已经失效了。如果我不能在事务复制下解决这个问题,你能建议一个替代架构吗?

0 投票
3 回答
2608 浏览

sql-server - 以最小的延迟将来自许多不同数据库的数据整合到一个数据库中

我有 12 个数据库,总计大约 1.0TB,每个数据库都位于运行 SQL 2005 Enterprise 的不同物理服务器上——所有数据库都具有完全相同的架构。我需要将这些数据卸载到单独的单个数据库中,以便我们可以将其用于其他目的(报告、Web 服务等),延迟时间最长为 1 小时。

还应该注意的是,这些服务器都在同一个机架中,通过千兆连接进行连接,并且对数据库的插入最少(平均 2500 条记录/小时)。当前方法非常不稳定:当前正在将数据从 12 台服务器中的每台复制(SQL Server 事务复制)到另一台服务器上的数据库(是的,来自 12 台不同服务器的 12 个不同员工表复制到不同服务器上的单个员工表中)服务器)。

每个表都有一个主键,并且所有表中的行都是唯一的(每个表中都有一个 FacilityID)。

我有哪些选择?必须有一个简单的方法来做到这一点。

0 投票
2 回答
2060 浏览

sql - 我可以为 sql server 事务复制添加延迟吗?

我已经从一个名为 DBProd 的数据库配置了事务复制到另一个名为 DBWarehouse 的数据库;一切正常,交易通常会立即复制到仓库....这是我的问题。

我想为复制添加一点延迟(大约 10 分钟),以便复制的数据库可以用于访问以前版本的数据库(例如,如果发生错误)

有没有一种简单的方法来实现这一点?

0 投票
1 回答
56 浏览

sql-server - 添加到订阅数据库的模式

SQL Server 2005 Enterprise x64 (SP3) 上的事务复制。

我需要将检查约束添加到作为复制目标的数据库,但我无法将检查约束添加到发布数据库。问题是复制过程不断消除我的约束。我该如何防止这种情况?

0 投票
1 回答
373 浏览

sql-server-2005 - SQL 复制中的同步在手动同步时有效,但不是自动同步

我正在使用 SQL Server 2005 创建主数据库的复制副本,以便报告可以指向复制副本,而不是锁定我们的主数据库。

我已经将 3 个数据库设置为出版物,然后 3 个订阅者将交易转移给订阅者,我希望立即!

似乎正在发生的事情是,当使用“插入跟踪器”功能时,复制需要发布者到分发者 < 2 秒,但复制到订阅者可能需要 7 分钟以上(这些是 SAN 上的本地数据库)。这可能有两个原因:

  1. 用于查询数据库的 SQL 语句正在获取锁,这些锁正在停止更新订阅者的事务。
  2. 订阅者太忙了,复制无法应用更改。

更让我困扰的是,虽然 Replication Monitor / Insert Tracer 显示了这些统计信息,但如果您使用“查看订阅详细信息”然后单击“开始”,它将在几秒钟内同步。

我的目标是让数据(理想情况下)连续同步,或者每分钟同步一次,也许我应该减少事务的批量大小?

我究竟做错了什么?

[请注意,设置了 -Continuous 标志!]

0 投票
1 回答
507 浏览

sql - 复制相关问题,

复制相关问题,

我正在解释我的架构。

我已经创建了它的事务复制过程

  1. 2 我在下面给出的表供应商脚本上的发布者,
  2. 经销商
  3. 2 个订阅者

数据复制设置如下:

表供应商通过分销商从 2 个发布者复制到 2 个订阅者。

复制时,在 Distributor 数据库中发出的错误为:

在这里,必须发生的是

Pub1(创建 pubs 表供应商)-> 向 Distributor 插入(供应商)数据。-> 由订阅者拉取

我现在发生的事情是,

Pub1(创建 pubs 表供应商完成)-> 在分销商数据库中引发错误

复制-复制分发子系统:代理 abc-serv1\PRD01-star-star Billing-PROD-VREPL1\REPL01-25 失败。违反 PRIMARY KEY 约束“PK_vendors”。无法在对象“dbo.vendors”中插入重复键。

在发布者到分发者之间进行操作时发出错误。

0 投票
1 回答
2104 浏览

sql-server - 新表未显示在 SQL Server 2008 的出版物文章列表中

我对 SQL Server 很陌生。我刚刚有人将我的整个数据库从 Access 转移到 SQL Server,我正在努力加快速度。

这是一个合并复制数据库。

我在数据库“CRM”中添加了一个新表“EmailList”,然后转到 SMSS 中的“CRM”发布者属性,并注意到当我展开文章列表时,我的新表没有让我指定为对象发布。

我需要将这个新表复制到所有订阅者。如何让它显示在文章列表中,以便我可以检查并复制它?我尝试创建一个新快照,但没有奏效。

此外,我一直(未成功)阅读有关执行此操作的方法,并且我得到的印象是我可能必须让发布者在所有订阅者的系统上放置一个新快照才能执行此操作。这会很糟糕,因为我有几个经常不同步的订阅者,我不想在他们最终同步时清除他们的数据。我是否必须等到每个人都同步,然后让每个人都停止更改,然后更改我的架构,然后让它们再次复制?这将是可怕的,请说我错了。

0 投票
1 回答
797 浏览

sql - 你可以将数据从 MS SQL Server 2005 复制到 MySQL 5.1 吗?

我需要设置从 SQL Server 2005 数据库到 MySQL 5.1 数据库的单向事务复制。

我已经安装了 ODBC 驱动程序并开始着手创建出版物,但是我收到了一个我没有找到解决方案的错误。

错误是

无法设置发布参数@enabled_for_het_sub,因为它在工作组 sku 中不受支持。

这是我用来创建发布的 SQL 语句。

我检查了@enabled_for_het_sub,并确保所有参数都正确。

有任何想法吗?