Прерывание процесса сжатия файла базы данных в SSMS 2008 - PullRequest
0 голосов
/ 23 марта 2012

Я недавно удалил данные таблиц из пакета производственных баз данных и сокращал файлы базы данных, используя функцию «Сокращенный файл» в SSMS.Некоторые базы данных будут сжаты более чем на 50 ГБ.Я заметил, что этот процесс занимает очень много времени и что нет кнопки отмены во время выполнения этого процесса.Я подключаюсь ко всем серверам баз данных удаленно через RDP и не могу гарантировать, что они не будут зацикливаться при включении питания во время процесса усечения.

Если процесс сжатия запущен, а сервер выключен, яопыт повреждения базы данных?

1 Ответ

2 голосов
/ 23 марта 2012

Я думаю, что это полностью зависит от того, какие страницы были в движении во время отключения электроэнергии.Вы могли бы выйти хорошо, но я, конечно, не хотел бы бросать кости здесь, если бы это были мои данные.

Вместо того, чтобы просто выполнять одну операцию сжатия (и особенно вместо использованияпользовательский интерфейс для этого), вы можете использовать команду DBCC SHRINKFILE, чтобы уменьшить размер файла за один раз.Поскольку эта опция позволяет вам установить целевой размер, вы можете многократно запускать команду короткими пакетами.

Хотя это снижает риск коррупции, однако, он может причинить другой вред, например, усилить фрагментацию.Вначале вы можете добиться большего от перестроения индексов, а , а затем , запустив сжатый файл с усечением только.Это очистит «конец» файла после того, как перестройки предположительно переместят все данные вместе к началу файла.

Еще лучшим решением может быть добавление второго файла данных в его файл.собственной файловой группы, перестройте все ваши индексы в новой файловой группе, затем уменьшите основной файл, уменьшив его до размера только тех объектов системы / метаданных, которые там живут.

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