2014-12-20 40 views
1

我在SQL Server Managment Studio中拥有数据库。我让使用这个脚本我的数据库备份:Management Studio备份后的不同文件

use mydatabase 

    BACKUP DATABASE mydatabase 
    TO DISK = 'D:\mydatabase\backup.BAK' 
    GO 

    BACKUP DATABASE mydatabase 
    TO DISK = 'E:\mydatabase\work.BAK' 
    GO 

我的问题是,文件backup.BAK和work.BAK具有相同的大小。我检查每个字节和这个文件是不一样的。有人知道为什么吗?

+1

我不知道确切的原因,但这并不奇怪。两次备份之间的时间将会发生变化,如果数据库存在,数据可能会发生一些变化。尽管一些填充可能已被数据替换,但页面的数量可能保持不变,但大小可能不会改变。 –

+0

'NOT THE SAME'是一个非常模糊的名词,你的意思是它们的大小不一样吗?如果差异的大小和数据没有改变,因为它们在不同的驱动器上,可能其中一个是压缩的而另一个不是。 –

+0

或“磁盘大小”反映了两个具有不同块大小或完全不同的底层存储体系结构的驱动器(是一个拇指驱动器?是一个SAN?是一个FAT32与NTFS?等)。同意@ M.Ali,“不一样”是什么意思?你究竟如何检查尺寸? –

回答

1

根据数据库的大小,生成备份可能需要一段时间。根据活动的不同,在此期间数据库中可能会发生很多变化。要创建备份文件的准确副本,您应该只复制第一个备份文件。您可以在SQL中执行此操作,例如:

DECLARE @SourceFile AS VARCHAR(500); 
DECLARE @DestinationFile AS VARCHAR(500); 
DECLARE @Cmd AS VARCHAR(500); 

BACKUP DATABASE mydatabase 
TO DISK = 'D:\mydatabase\backup.BAK' 
GO 

SET @SourceFile = 'D:\mydatabase\backup.BAK' 
SET @DestinationFile = 'E:\mydatabase\work.BAK' 

SET @Cmd = 'COPY ' + @SourceFile + ' ' + @DestinationFile; 
EXEC master.dbo.xp_cmdshell @Cmd; 
+0

但我的数据库是空的。任何应用程序使用我的数据这就是为什么我不明白为什么我的文件(backup.BAK,work.BAK)是不同的。 – Fotomen

相关问题