SQL Server 复制中的内存映射文件写入失败

Posted

技术标签:

【中文标题】SQL Server 复制中的内存映射文件写入失败【英文标题】:memory mapped file write failed in SQL Server Replication 【发布时间】:2021-06-28 02:56:27 【问题描述】:

我在尝试在事务复制中运行快照代理时收到错误“内存映射文件写入失败”。如果表只有几百行,快照可以正常工作。如果表包含几千行,则失败。 SQL Server 安装在 Linux 服务器上,并尝试了许多在线找到的建议。但无济于事。任何人都可以请指导我。

Screen shot of Transaction Replication Error

【问题讨论】:

也许检查您的硬盘是否有坏块和其他故障情况。 未找到坏块。 我刚才也遇到了这个问题。还在尝试配置事务复制的容器中运行 SQL Server。我没有找到任何帮助。我们可能不得不回到在 Windows 上运行 SQL SO 中的另一个线程提到这似乎是 CU9 的一个新问题(他们回滚到 CU8 并且有效)。 我有一个打开的箱子,上面有 MS。他们已经能够使用 AdventureWorks 重现它,目前仍在调查中。可能的解决方法:回滚到 CU8。 【参考方案1】:

我们在 快照复制 方面也遇到过类似问题。作为一种解决方法,我们将复制拆分为多个发布。经过几次试验,我们成功地复制了我们的数据库,该数据库包含 1000 多个表和 5 个出版物。 除了 1 个带有文本列的表(包含大 xml),在这种情况下我们可能需要另一种解决方法。

如果您只复制 1 个大表,您可以尝试使用 Filter Rows 拆分它。

我们在 Ubuntu 18.04 LTS 服务器 Linux 容器上使用 SQL Server 2019 开发人员版,具有 8GB RAM。此服务器上安装了其他数据库:mysql 8.0MariaDB 10.5PostgreSQL 12.5

【讨论】:

感谢您的回复。我正在尝试在单个出版物中使用单个表。即使应用了过滤器,表格中的行数也会很多。

以上是关于SQL Server 复制中的内存映射文件写入失败的主要内容,如果未能解决你的问题,请参考以下文章

复制数据库 SQL Server 2012 中的“作业失败”

如何首先在EF代码中映射Sql server的文本字段类型? [复制]

SQL Server CE 复制失败:内部错误:传输消息中的 HTTP 标头信息已损坏或丢失

SQL Server:将数据从一个表传输到另一个 [内存分配失败]

[SQL Server]内存缓存数据写入磁盘延迟持久性Delayed Durability(和魔鬼交易)

[SQL Server]内存缓存数据写入磁盘延迟持久性Delayed Durability(和魔鬼交易)