我在 64 位 WS2k8 上运行 64 位 SQL2k8,并将数据库备份到 UNC 文件。备份创建文件、复制数据,完成后崩溃。
将数据库 Infovest 备份到磁盘 = '\riscsrv-dcm04\riscsrv-sql01_backups\dvc_Infovest_Z.bak',使用 INIT,STATS=1 ... 已处理 98%。已处理 99%。已处理数据库“Infovest”、文件 1 上的文件“InfoVest_Data”的 3422232 页。已处理 100%。已处理数据库“Infovest”、文件 1 上的文件“InfoVest_Log”的 14383 页。消息 3634,级别 16,状态 2,第 1 行 操作系统在尝试对“\riscsrv-dcm04\riscsrv-sql01_backups\dvc_Infovest_Z.bak”执行“FlushFileBuffers”时返回错误“64(无法检索此错误的文本。原因:15105)”。消息 3013,级别 16,状态 1,第 1 行备份数据库正在异常终止。
有人能给我一些建议,告诉我如何避免出现此错误,并且仍然能够通过网络备份吗?两台服务器都是 64 位(源和目标),有足够的空间,并共享同一个千兆交换机。数据库是 27gb,其他数据库备份正常,尽管它们更小。大小重要吗?当备份到定义到类似文件的设备时,此备份也会失败,这些文件也位于同一个目录中。
我被困在这里,希望得到支持以解决这个操作系统错误。
哈比卜
答案1
向 Microsoft 记录支持案例,这可能是一个错误!
以下是一些需要检查/尝试的事项:
SQL Server 服务帐户是否对 \riscsrv-dcm04\riscsrv-sql01_backups\ 文件夹具有完全共享和 NTFS 权限?
禁用删除服务器上的所有防病毒软件或其他任何可能干扰将文件保存到磁盘的程序。
尝试将备份拆分为多个文件并查看错误是否仍然发生。为此,请使用多个 to disk= 命令,例如:
Backup database Infovest
to disk = '\\riscsrv-dcm04\riscsrv-sql01_backups\dvc_Infovest_Z_01.bak'
, disk = '\\riscsrv-dcm04\riscsrv-sql01_backups\dvc_Infovest_Z_02.bak'
, disk = '\\riscsrv-dcm04\riscsrv-sql01_backups\dvc_Infovest_Z_03.bak'
如果服务器不是生产服务器(或者您有一个维护窗口),请在执行备份之前尝试将最大并行度更改为 1,并在完成后将其改回:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO