Как изменить размер базы данных SQL Server?

#sql-server #azure #azure-vm

Вопрос:

Перемещение SQL Server в Azure на виртуальной машине.

Текущий SQL Server имеет общий размер базы данных 1,8 ТБ и 1,2 ТБ нераспределенного пространства.

Как мне изменить общий размер базы данных, чтобы он больше соответствовал тому, что было использовано?

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

Любая зацепка будет оценена по достоинству.

Комментарии:

1. Вы бы сократили его, хотя это редко бывает хорошей идеей, так как это может серьезно фрагментировать ваши данные.

2. Предположительно, это одноразовая операция, и я бы попытался сначала сжать базу данных, а затем создать ее резервную копию перед восстановлением в Azure. Обычно лучшим способом было бы переместить таблицы в новые файловые группы, затем удалить пустые или затем уменьшить основную файловую группу, если она ранее содержала все данные, установить простое восстановление и уменьшить журнал до разумного размера, конечно, существуют различные предостережения и крайние случаи.

3. Вы ищете подход к сегментированию базы данных? Или лучше перейти на Azure SQL, где вы можете достичь этого очень легко.

4. Вы можете обнаружить, что файлы снова увеличиваются до того же размера после перехода в Azure. Базе данных требуется место в файлах данных и журналов для поддержки нормальной работы, и для базы данных объемом 1,8 ТБ может потребоваться 600 ГБ. Например, если у вас есть таблица размером более 400 ГБ и вы перестроите индекс — файл данных будет расти.

Ответ №1:

Чтобы устранить это дополнительное пространство в файлах данных и журналов, используется процесс сжатия файла. Его можно найти в среде SQL Server Management Studio, щелкнув правой кнопкой мыши базу данных в обозревателе объектов и перейдя к Задачам gt; Сжатие gt;gt; Файлы, а затем выбрав опцию «Реорганизовать страницы перед освобождением неиспользуемого пространства». Но для действительно больших баз данных, как в вашем случае, это может занять несколько дней. Я видел, как некоторые базы данных воссоздавались, затем все данные переносились, затем все индексы воссоздавались, просто чтобы пропустить процесс сжатия файлов, который длился целую вечность.