2014-12-20 2 views
1

У меня есть база данных в SQL Server Managment Studio. Я сделать резервную копию моей базы данных, используя этот скрипт:Management Studio Diffrent файлы после резервного копирования

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

«НЕ ТАКИЕ» - очень неопределенный термин, вы имеете в виду, что они не одинаковы по размеру? Если разница в размере и данных не изменилась, поскольку они находятся на разных дисках, возможно, один из них сжат, а другой нет. –

+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

Смежные вопросы