问题标签 [merge-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 投票
2 回答
866 浏览

sql-server-2005 - 合并复制 - 发布者缺少订阅者的数据

我有一个使用 SQL 2005 合并复制的数据库,并且已经将数据插入到订阅者中,而这些数据从未传递给发布者。我相信在 14 天的保留期内发生了冲突,我不再看到它了。我可以手动将它们添加到发布者中吗?任何想法或将我引导到一个好的链接表示赞赏。谢谢你。

0 投票
3 回答
13836 浏览

sql-server-2005 - SQL Server 合并复制错误“架构脚本 'xxx.sch' 无法传播到订阅者”

我最近对合并复制下的工作出版物进行了一些更改,这似乎破坏了订阅者的同步。

我收到的错误消息是:

我查看了 unc 目录,没有 directory 20120701000581,但有一个目录20120706110881来自更新出版物快照时的目录。

我已尝试重新初始化订阅并重新创建快照,但该过程仍然无法预期20120701000581.

我还没有尝试删除和重新创建订阅,因为我宁愿在尝试之前了解问题的根源。有人可以解释可能发生的事情以及如何解决这个问题吗?

0 投票
0 回答
1847 浏览

sql-server - “订阅出版物”已验证

我在服务器上使用 SQL Server 2008 R2,在大约 40 台移动设备上使用 SQL Server 2008 R2 Express。合并复制设置有 1 个发布者和分发者服务器,移动设备作为订阅者。

我在试图调查这些错误时碰了壁:

无法验证对发布“xxxxx”的订阅。确保正确指定所有合并代理命令行参数并且正确配置订阅。如果发布者不再拥有有关此订阅的信息,请删除并重新创建订阅。来源:MSSQL_REPL,错误号:MSSQL_REPL-2147201019)

虽然 Microsoft 非常友好地提供了帮助链接 ( http://help/MSSQL_REPL-2147201019 ),但他们的实际信息是:

很抱歉
,目前在错误和事件日志消息或知识库数据库中没有关于此问题的其他信息。
您可以使用支持区域中的链接来确定其他地方是否有任何其他信息可用。

有谁真正知道 SQL 如何验证订阅以及我可以做些什么来修复这些错误?到目前为止,我发现的所有内容都指向删除订阅者,然后重新订阅,这会删除整个数据库并重新创建它。对有线客户端来说没什么大不了的,但由于带宽限制,无线用户可能会呆一天。

在此先感谢您的帮助。

0 投票
1 回答
935 浏览

windows-mobile - 应用程序因 filesys.exe 中的错误而崩溃

如果有一个应用程序(我们称之为 A,CF 3.5)在同一目录中调用另一个应用程序(B,CF 3.5)来委派一些工作(下载文件)。只要应用程序 A 不加载 SQL Server CE 程序集(3.5 SP2),这就会很好地工作。如果是,应用程序 B 将因随机文件系统错误(例如无法加载的程序集)和许多异常而崩溃在文件sys.exe 中。以下是 Windows Mobile 生成的错误报告的内容:

桶参数

事件类型:WinCE50lbException

应用名称:filesys.exe

应用程序版本:5.2.0.0

AppStamp:29ccdda8

模组名称:vcefsd.dll

版本:5.2.0.0

模组邮票:52652c34

偏移量:000017a0

自己的名字:B.exe

拥有版本:1.0.0.0

自己的邮票:5003c932

即使在调试结束并且两个应用程序都不再运行后,此错误也会发生多次。应用程序 B 本身发生的错误示例:

找不到文件或程序集名称“OpenNETCF.Drawing,Version=2.2.0.0,Culture=neutral,PublicKeyToken=...”或其依赖项之一。

程序集名称会不时更改(也可以是 CF 3.5 程序集)。错误发生在模拟器中(总是),但从不在真实设备上。如果应用程序 A 正在下载文件而不是将工作委托给 B,则不会发生错误。

我怀疑模拟器的存储卡驱动程序会导致此错误,但我不知道如何进一步调试该问题。

注意:应用程序 A 使用以下 API 调用加载本地部署的 SQL CE 库(sqlceoledb35.dll、sqlcese35.dll、sqlceqp35.dll、sqlceme35.dll、sqlceca35.dll、sqlcecompact35.dll):


更新

在我为测试删除 OpenNETCF 引用后,我得到了这个异常:

无法读取配置文件 '...\some.config':UnauthorizedAccessException

这是我们的配置管理器包装的异常(我无法调试它,因为它发生在 B 中)。应用程序 A 读取该文件,但在反序列化后立即关闭并释放它。

0 投票
1 回答
776 浏览

sql-server - 合并和触发 - 主键违规

我有那些桌子

在测试表上,我有一个更新触发器:

表 test_2 为空,测试有此记录

当我运行此更新时

我有这种错误

消息 2627,级别 14,状态 1,过程 Test_TriggerUpdate,第 12 行违反主键“PK_Test_2”。无法将值为 (1) 的重复键插入“Test_2”。

当使用多行调用合并操作时可能会发生这种情况,而不是在 INSERT 和下一个 UPDATE 操作之前调用,它为记录 1 和 2 运行两个 INSERT。可以做什么?

0 投票
0 回答
241 浏览

android - 适用于 Android 和 iOS 的 Microsoft 合并复制

Microsoft Sync Toolkit 在设计上具有可扩展性,允许您连接 Android 和 iOS 客户端上的数据库以进行同步。

你能让合并复制在 iOS 和 Android 上工作吗?

0 投票
1 回答
635 浏览

sql-server-2008 - 一个错误停止了复制代理的运行

'正在两个数据库之间运行合并复制,一切都很好。从昨天开始,我在运行作业步骤从复制作业中收到此错误消息:

什么原因会导致这个错误信息?

请帮忙。

0 投票
2 回答
2466 浏览

sql-server - 合并复制 - 无法创建快照 - 超时 - sql server 2008

我有一个 SQL Server 2008 数据库,我需要一个合并复制,因为我想在之后与移动设备同步。

所以我创建了一个复制,但是在启动快照代理时,代理尝试启动大约 20 分钟,然后显示消息

复制代理在 10 分钟内未记录进度消息。这可能表示代理无响应或系统活动频繁。验证记录是否正在复制到目标,并且与订阅者、发布者和分发者的连接仍然处于活动状态。

在快照代理状态窗口和代理日志窗口中都没有任何其他错误消息。

我没有域的管理员,但有本地管理员和具有 admin-privilegs 的域用户。两者都拥有数据库的所有权限,都在复制的访问列表中。

服务器代理在本地管理员帐户上运行,服务器上有 3 个 MergeReplications,正在工作

该作业也在本地管理员下运行。

谢谢你的帮助,卡尔

0 投票
0 回答
1452 浏览

sql - 首选 SQL Server 数据库同步方法

多年来,我一直在使用 SQL Server 合并复制来复制带有多个 SQL Server Compact 数据库的 SQL Server,我一直在想,我应该升级/切换到 Microsoft Sync Framework .

我决定今天开始研究它,看起来它的代码自 2010 年以来还没有真正更新过: http ://services.community.microsoft.com/feeds/feed/sync_downloads 。

现在有没有更新、更受欢迎的方法来在成熟的 SQL Server 和多个 SQL Server Compact 数据库之间同步数据?我现在能找到的最接近的是SQL Data Sync,但这似乎适用于 Azure,我还没有准备好。

0 投票
0 回答
122 浏览

alert - SQL Server 2005 - 如何延迟第一个复制警报?

我设置了 SQL Server 2005 合并复制,并且设置了一个订阅者作为请求订阅。它按每分钟一次的计划运行。

如果 SQL Server 复制代理失败了一段时间或尝试了一定次数,我想收到警报。例如,如果它失败了,然后很快又开始工作,那很好——我不想被提醒。

但是,如果 5 分钟或 5 次后仍然失败,那么我希望收到警报。

我查看了“响应之间的延迟”设置,但似乎这将始终发送初始警报,并且延迟仅对任何后续警报生效。

此外,我想知道单个合并是否需要超过 5 分钟。因此,如果它已经运行了 5 分钟或更长时间,我们就会收到警报。