【问题标题】:Management Studio Diffrent files after backupManagement Studio 备份后文件不同
【发布时间】:2014-12-20 19:59:27
【问题描述】:

我在 SQL Server 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 具有相同的大小。我检查每个字节,这些文件不一样。有人知道为什么吗?

【问题讨论】:

  • 我不知道确切的原因,但这并不奇怪。两次备份之间的时间会发生变化,如果数据库处于活动状态,数据可能会发生一些变化。尽管某些填充可能已被数据替换,但大小可能不会改变,因为页数可能保持不变。
  • NOT THE SAME 是一个非常模糊的术语,你的意思是它们的大小不一样吗?如果差异在于大小并且数据没有改变,因为它们位于不同的驱动器上,可能其中一个被压缩而另一个没有。
  • 或“磁盘大小”反映了两个具有不同块大小或完全不同的底层存储架构的驱动器(一个是拇指驱动器吗?一个是 SAN?一个是 FAT32 还是 NTFS?等等)。同意@M.Ali,“不一样”是什么意思?您究竟是如何检查尺寸的?

标签: sql-server tsql database-backups


【解决方案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; 

【讨论】:

  • 但是我的数据库是空的。任何应用程序都使用我的数据库。这就是为什么我不明白为什么我的文件(backup.BAK、work.BAK)不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多