SQLServer 维护计划备份无法备份到 Samba Share

SQLServer 维护计划备份无法备份到 Samba Share

我有一个 SQL 备份计划,将备份写入 SAMBA 网络共享。我有一个 T-SQL net use(带persistent:yes)脚本,它是访问共享的维护计划的第一部分。这在一段时间内有效,但现在在我的大型数据库上失败了。Samba 只是在日志中显示“write_data:写入客户端 0.0.0.0 时失败。错误:管道损坏”。在 SQL Server 中,我只会得到Operating system error 64(The specified network name is no longer available').

如果我使用 SQL Server 中的“任务”手动备份大型数据库,它就可以工作。

答案1

通常,该错误表示远程 SMB 服务器消失了。

我想知道你是否看到了这个错误。看起来尚未找到根本原因。

故障是否每次都发生在备份数据流中的相同位置?(您提到它“很大”——我想知道您是否在某处溢出了 32 位计数器。)您说的有多大(如果您不想给出大小,请给我们一个数量级)。

编辑:

我认为您需要在 smbd 端进行一些更广泛的日志记录,并且可能还需要嗅探网络流量,才能实现这一点。

我正在看Samba 列表中的某个人也在关注同样的问题并且毫无进展(主要是因为名单上的人看上去想让他去追逐野鹅)。

答案2

这个家伙也遇到了同样的管道破裂的问题;http://blog.binarystars.com/2007/08/25/samba-error-writing-75-bytes-to-client-1-broken-pipe/

他发现 Windows 服务器正在创建网络环路,因为两个网卡都插入了网络。他必须在 IPtables 中阻止其中一个 IP 才能解决此问题。

答案3

我曾见过这种情况,当运行 SQL Agent 服务的用户本身没有权限写入 Samba 共享时,就会发生这种情况,因此会出错。确定是否是这种情况的一个好方法是尝试手动运行备份。

相关内容