Почему размер резервной копии базы данных отличается при резервном копировании с Query и SSMS? - PullRequest
0 голосов
/ 15 апреля 2019

Меня смущает размер файла, который я резервирую с помощью SSMS и Query.
Если я создаю файл из SSMS в его папке по умолчанию, что-то вроде "C: \ Program Files \ Microsoft SQL Server \ MSSQL14.NAMEDINSTANCE \"MSSQL \ Backup "выходной файл говорит, что Db1.bak составляет около 198292 КБ
Та же база данных, если я выполняю резервное копирование с запросом "backup database Db1 to disk='D:\Db1.bak', размер файла просто 6256 КБ

Иногда в другой базе данных говорят, что Db2 дает одинаковый размер файла, т.е. 6256 КБ (И Db1, и Db2 имеют одинаковые (одинаковые) схемы, только данные в нем различаются.)
И резервное копирование с SSMS дает 33608 КБ , что кажется удовлетворительным.

Я также попытался проверить всю базу данных в SSMS, как это RESTORE VERIFYONLY FROM DISK = 'D:\BACKUP\Db1.bak' GO, и результат дает действительный результат при каждой проверке базы данных.

Я также попытался удалить Db1из SSMS и восстанавливая файл меньше KB и проверил некоторые данные из нескольких таблиц (не всех), и кажется, что все данные в таблицах отображаются правильно, но размер файла меня не устраивает.

Спасибо.

1 Ответ

0 голосов
/ 16 апреля 2019

Я подозреваю, что, как упоминалось ранее, у вас есть сжатие на моем по умолчанию, и с помощью графического интерфейса, с настройками не использует что (и что если вы выберете Сжать в графическом интерфейсе, вы получите аналогичный размер)

Если параметр сервера backup compression default равен on, даже если вы не упомянули его в своей команде backup, будет применяться compression. Так что в обоих случаях будет compressed backup. Но это легко увидеть, просто запустите эту команду для обоих backups:

restore headeronly
from disk = 'here_the_full_path_with_filename';

В 5-м столбце вы получите флаг, если ваш backup равен compressed.

Но причина этой разницы другая, и вы увидите это при запуске restore headeronly: вы сделали кратным backups для одного и того же файла.

Вы использовали backup команду with noinit из SSMS и тот же file name, поэтому теперь этот файл содержит более одного backup, и restore headeronly покажет их все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...