Full备份一个46G的数据库,备份到80%时报错:10 percent processed.
20 percent processed.
30 percent processed.
40 percent processed.
50 percent processed.
60 percent processed.
70 percent processed.
80 percent processed.
Msg 3202, Level 16, State 2, Line 1
Write on "F:\MSSQL\Backup\DW_20121211.bak" failed: 33(The process cannot access the file because another process has locked a portion of the file.)
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.这个文件是没有被别的进程访问的,因为是新建的文件,而且服务器上没有别人登录。
备份脚本:
BACKUP DATABASE [DW] TO DISK = N'F:\MSSQL\Backup\DW_20121211.bak' WITH RETAINDAYS = 3, NOFORMAT, NOINIT, NAME = N'DW-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
20 percent processed.
30 percent processed.
40 percent processed.
50 percent processed.
60 percent processed.
70 percent processed.
80 percent processed.
Msg 3202, Level 16, State 2, Line 1
Write on "F:\MSSQL\Backup\DW_20121211.bak" failed: 33(The process cannot access the file because another process has locked a portion of the file.)
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.这个文件是没有被别的进程访问的,因为是新建的文件,而且服务器上没有别人登录。
备份脚本:
BACKUP DATABASE [DW] TO DISK = N'F:\MSSQL\Backup\DW_20121211.bak' WITH RETAINDAYS = 3, NOFORMAT, NOINIT, NAME = N'DW-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
换过几次了,都是一样的错误,难道是数据库大了?但是46G对SQLServer来说小意思的
select * from sys.sysprocesses where blocked<>0查查有没有数据,有的话证明有会话也在引用这个东西。然后用
sp_who spid来看看这个是干嘛的,如果不重要就kill spid46G的确不是什么问题。
现在执行了备份脚本,select * from sys.sysprocesses where blocked<>0 没查到数据,不过DW这个数据库的确可能会有人访问,因为是生产系统的库,但不过DW_20121211.bak这个文件不会有人访问
BACKUP DATABASE [DW] TO DISK = N'F:\MSSQL\Backup\DW_20121211_175200.bak'
怀疑是服务器分区设置的问题,启用了NTFS分区的压缩和索引属性,刚才把这2个取消后可以备份,但是速度很慢,看晚上的作业能不能成功