问题标签 [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 回答
1582 浏览

sql - 向事务复制添加新文章会导致订阅者出错

我有一个使用 SQL Server 2008 的可更新事务复制集。一切正常。我通过 sp_addarticle 后跟 sp_addsubscription 向现有发布添加了一个新表。之后我运行了快照代理。仅为新添加的表生成快照。所以新表成功复制到订阅者。我什至可以将新插入的记录复制到订阅者的新表中。但反之亦然。当我在订阅者数据库的新表中插入一条记录时,出现错误

请帮我解决这个问题。

提前谢谢了。吉塔

0 投票
1 回答
1113 浏览

sql-server - SQL Server 复制教程问题

使用 AdventureWorks 完成有关 SQL Server 2008 R2 上的事务复制的教程。发布者、分发者和订阅者都在同一个实例中。我收到这个错误...

无法删除表“Production.ProductModelProductDescriptionCulture”,因为它被对象“vProductAndDescription”引用。(来源:MSSQLServer,错误号:3729)

我认为示例数据库已准备好复制,因此不清楚问题出在数据库、实例配置还是复制配置中。

0 投票
1 回答
4289 浏览

sql-server - SQL SERVER 2008 R2 中的复制问题(与订阅者一起分发)

我们在两个 MS SQL Server 2008 R2 之间进行事务复制。

由于硬盘驱动器故障,我们的服务器重新启动。
复制自动继续工作。但是在我们收到此类错误后的一个小时内:

日志读取器代理工作并将事务发送到分发者。但是分发者停止与订阅者同步。

订阅者还允许向分发者发送更改。所有冲突均由经销商解决。

我们想知道除了重新初始化订阅之外,这是否是使复制工作的另一种方法?

我们发现这个错误可能不是磁盘故障。
我们添加了新的外键:

所以它是:

Table1并且Table2正在复制中。Table3 - 不是。我们在每个发布者和订阅者上
添加了外键。Table2_Table3

在此之后,我们开始收到错误,正如我们在对@Remus Rusanu 答案的评论中所描述的那样。

0 投票
1 回答
595 浏览

sql-server-2005 - Oracle 到 SQL Server 复制:在复制期间操作数据

我已经使用标准 SQL Server 快照和事务复制将工作的 Oracle (10g) “继承”到 SQL Server 2005 数据复制。

一切正常——只要 Oracle 不尝试发送超出 SQL ServerDATETIME范围(1753/1/1 到 9999/12/31)的日期。我希望能够以某种方式进入数据复制的中间,检查该日期范围,如有必要,将发布的 Oracle 日期调整为 SQL Server 2005 的DATETIME数据类型可以处理的日期。

有没有相当简单的方法可以做到这一点?我知道我可以将目标数据类型更改为 VARCHAR(19) 或类似的东西 - 我知道我可以升级到 SQL Server 2008 并使用DATEorDATETIME2数据类型来解决问题 - 这两个选项现在都不可行(也许在6、12个月左右)。

我现在有什么可以做的吗?而且很容易??不幸的是,我无法深入了解 Oracle 来修复它(这是另一家不喜欢其他人在他们的系统中摆弄的第三方公司)。

0 投票
2 回答
1127 浏览

sql-server-2008 - 限制 SQL 服务器复制?

我们在 sql server 2008 上的当前事务复制设置存在性能问题。当创建新快照并将快照应用于订阅者时,我们看到发布者和分发者的网络利用率跃升至 99%,我们看到磁盘队列达到 30 这会导致应用程序超时。

有什么办法可以限制正在发送的复制数据?我们可以限制被复制的行数吗?是否有任何开关可以设置为开/关来完成此操作?

谢谢!

0 投票
1 回答
487 浏览

sql - 触发器并发运行的 SQL 事务复制

我已经设置 SQL Server 事务复制以连续运行两个表(父记录和子记录)。在订户端,我在两个复制表上都有插入和更新触发器。这些触发器都具有相同的代码,用于查询复制表中的记录并修改订阅者数据库的其他表中的记录。

我的问题是..这些触发器会同时运行吗?我担心一个表中的触发器会中断另一个表中的触发器所做的处理工作

0 投票
1 回答
366 浏览

sql-server - 复制 SQL Server CLR 函数

是否可以使用事务(或合并)复制来复制 CLR 函数?

0 投票
2 回答
2098 浏览

sql - SQL Server 2005 事务复制无法发布包含索引创建的存储过程

我在 SQL Server 2005 Transactional Publication 中遇到了一个奇怪的问题。问题是这样的:如果发布包含的文章是包含创建索引语句的存储过程,则在尝试将存储过程的架构复制到订阅者时会引发错误。

这种行为很奇怪,因为即使 create index 语句被注释掉了,它仍然会给出异常,并且只有完全删除它才会起作用。

这是返回的确切错误:

尝试的命令:GRANT EXECUTE ON [dbo].[usp_Test] TO [CompanyDatabase_access]

(交易序号:0x00000170000008B9000500000000,命令ID:5)

错误消息:找不到对象“usp_Test”,因为它不存在或您没有权限。(来源:MSSQLServer,错误号:15151) 获取帮助:http://help/15151 找不到对象“usp_Test”,因为它不存在或您没有权限。(来源:MSSQLServer,错误号:15151)获取帮助:http://help/15151

错误是准确的,因为当我检查订阅者时,存储过程没有按预期创建......但这就是发布的目的......

另外,我可以在订阅者上手动创建存储过程,但是当我生成快照时,它会删除现有的存储过程,然后仍然返回此错误消息。

这是一个创建此问题的示例出版物。

存储过程:

发布脚本:

订阅脚本:

同样,奇怪的是,如果注释掉 create index 语句,发布仍然会包含相同的错误,但如果将其完全删除,它将起作用。

现在,我刚刚从发布中删除了所有包含这些创建索引语句的存储过程,但我希望将它们复制到订阅者,以便对过程的任何 DDL 更新将自动反映在订阅者上。

- 编辑 -

查看快照目录,usp_Test 的 .sch 文件包含与我之前为存储过程发布的完全相同的代码块...根据返回的错误,似乎快照代理决定不运行 CREATE PROCEDURE 命令包含创建索引,但随后继续并尝试运行导致错误的 GRANT EXECUTE 命令。

此外,我的 SQL Server 的确切版本是:

Microsoft SQL Server 2005 - 9.00.5254.00(2005 + SP4 累积更新 1)

-- 结束编辑 --

我的问题是,为什么会这样?我的发布或订阅的配置是否存在问题?像其他人经历过这样的事情吗?我应该从哪里着手解决这个问题?

- 更新 -

我一直在 technet 上与 Hilary Cotter 交谈……但仍然没有运气。如果我删除该过程的 GRANT EXECUTE 权限,那么它会使用 CREATE INDEX 成功创建。所以它将与 GRANT EXECUTECREATE INDEX 一起使用,但不能同时使用。Hilary 建议可能是我的域中的某种类型的垃圾邮件设备在包含这两个关键字时阻止正确传输快照,但是如果我手动将 .sch 文件复制到订阅者并验证它是否包含预期的命令,我仍然遇到同样的问题。

0 投票
1 回答
1187 浏览

sql-server - 事务复制活动时实体框架模型的问题

我有一种情况,我使用 SQL Server 事务复制从我的主数据库到我的故障转移数据库。我有一个主站点,我的故障转移网站正在使用我的故障转移数据库。

两个网站(使用实体框架)是相同的(希望数据库也是如此)。

我的问题是,如果我的复制处于活动状态,我的故障转移网站上的某些操作会崩溃。一旦我停用我的复制,操作就会正常进行。

我的猜测是当暴露于复制时,我的故障转移网站的 EntityModel 和数据库之间存在一些并发问题。

有没有人遇到过类似的问题?任何有事务复制+实体框架经验的人?

这是我得到的例外:

映射似乎存在问题,但仅当事务复制处于活动状态时。

更新:我已经完全脱离了我的应用程序环境,当复制“存在”时,我只是尝试在我的故障转移数据库的表中插入一个新行,而不仅仅是活动接缝是非法的。明天我将尝试完全删除复制......或更剧烈的变化......

谢谢!

0 投票
2 回答
1885 浏览

asp.net - 多个发布者,单个订阅者(数据仓库)

我试图找出在数据仓库中填充临时数据库的最佳方法。我将拥有许多数据库(相同的架构,SQL Server 2005 Standard)。理想情况下,我会将每个人都设置为出版商,并使用相同的出版物。将有一个订阅者数据库(SQL Server 2005 Enterprise)订阅每个发布者数据库。发布者数据库中的数据将被修改。订阅者数据库将仅由其订阅更新,因此不需要将更改发送回任何发布者。发布者数据库不需要相互更新。复制将通过 Internet 进行(尽管可以使用 VPN)。

我不清楚我应该为此使用哪种复制。我可以通过复制来做到这一点吗?增量字段呢?