我们有一台 SQL2K8 服务器,它有一个 100GB 以上的数据库,主要存储图像 BLOBS,但无法备份到通过 NFS 连接的 SAN。SQL2K8 服务器在我们的 VMWare Host 上运行,当备份发生时,它会失去网络连接。我倾向于认为这是由多种因素造成的,但我正在研究数据库的大小以及我们试图通过 NFS 备份该大小的数据库这一事实。我做了一些调查,没有发现任何证据表明这是坏事,也没有发现任何证据表明这是好事。
我们正在对数据库进行压缩,但由于它主要是压缩图像,因此就大小而言,它实际上没有什么区别。有人遇到过类似的事情吗?
答案1
我发现了问题所在,我从 SQL 中得到的错误表明网络路径不再可用。与此同时,我刚刚发现运行 SATA 磁盘的 QNAP 设备上的接口设置为 100Mbps(http://www.wdc.com/global/products/specs/?driveID=610&language=1) 在 RAID5 中,从我所读的内容来看,SQL Server 似乎对备份到网络驱动器非常敏感。以下是我收集的一些信息,可能对遇到此问题的其他人有用。
错误信息
BackupIoRequest::ReportIoError: 备份设备 '' 上的写入失败。操作系统错误 64(无法检索此错误的文本。原因:15105)。操作系统在 '' 上尝试 'SetEndOfFile' 时返回错误 '64(无法检索此错误的文本。原因:15105)'。操作系统在 '' 上尝试 'FlushFileBuffers' 时返回错误 '64(无法检索此错误的文本。原因:15105)'。
系统错误 64 = 指定的网络名称不再可用 http://msdn.microsoft.com/en-us/library/ms681382(v=vs.85).aspx
这是另一个表单的链接,其中有人在讨论此类问题,有人发布了一个完整的注册,我将尝试解决此问题并将接口设置为 1000Mbps http://www.sqlservercentral.com/Forums/Topic768429-391-1.aspx
我已经就此问题致电微软,发现以下方法有效:kgerde 打开 regedit 导航至:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters 创建一个名为 SessTimeout 的新 DWORD 值,设置值:360,保留十六进制(此值可能不适用于您的备份,但对我的备份来说已经足够高了。如果此方法无效,请增加该值并重试。)希望对您有所帮助。谢谢,kgerde