Добрый день.
база на ms sql.
Решил почистить базу, начал с регистра версионирования. Таблица весила около 20гб. Файл базы весил около 100гб, файл лога около 3мб.
Очистил данные по 2019 год. Запустил тестирование и исправление с режимами "Реиндексация таблиц ИБ" и "Реструктуризаия таблицы ИБ", в ходе выполнения тестирования, на диске закончилось место, тестирование выпало в ошибку. Файл базы стал весит 150гб, файл лога стал весить 343гб.
Почистили место на жестком диске, заново запустили тестирование и исправление. Оно завершилось успешно, но файлы базы и лога нисколько не уменьшились)
Подскажите что я не правильно делаю и как сделать правильно, по сколько я ожидал что база станет весить гигабайт на 20 меньше)))
(1) Из 1С объем файлов не уменьшить. Можно сделать шринк через ssms, тогда размер уменьшится, но толку от этого не много, пространство в файле будет переиспользовано
(6) Я вообщем сперва выбрал Задача - Сжатие - Файлов. Тип файла - данные, файловая группа primary. Он быстро отработал. Потом сделал Сжатие базы данных, там никаких настроек не было просто нажал далее, после этого файл лога вырос, а базы уменьшился. Я может что то не то вообще делаю?)
(5)Установите Вариант восстановления,базы в Simple (Простое) и Log файл можно удалить
и после шринка БД нужно переиндексировать. Статья про шринки Запрос в SQL
при сжатии показывает сколько доступного места, т.е. на сколько может сжать лог файл. Покажите ваш скриншот сжатия. И еще, если не ошибаюсь, то лог файл в принципе можно удалить, например есть только файл .mdf, присоединяем базу указываем путь и все, новый лог файл пустой
(14) окна уже все давно закрыл) там вот есть два варианта сжатия - файлов и БД, когда выбирал файлов и по очереди файл базы и потом лога, то ничего не произошло, когда БД выбрал, то бд сжалось, а лог вырос )
ссыкатно как то удалять лог)
(26) нет, но я наверняка что то не так делал, вот поэтому заново пытаюсь)
По советам здесь, я понял что, нужно: Сделать модель восстановления - Простая, Сделать сжатие файла базы, сделать сжатие файла лога, вернуть модель восстановления полная. Правильно ли я все понял?
(27) Лог файл сам не "сожмется", нажмите кнопку :) Боитесь, делайте на копии или делайте копию базы. Я вам скажу, что когда "летит" всё и надо восстановить базу, а у тебя только .mdf файл, то оказывается, что достаточно его одного подключить к SQL и все снова работает и нет потери данных. Так что экспериментируйте, делайте выводы и всегда имейте копию базы
(30) давай уточним, действие сжатие происходит по кнопке ОК. После нажатия ОК окно закрывается, открываем снова и смотрим на результат. Так делаешь и ничего не поменялось?
(35) а файл лога? Лучше если будешь писать что нажимаешь и последовательно, а не "смотрю на файл базы". Что на него смотреть? А вот выбрал такую-то операцию и нажал ОК, тогда понятно что делаешь
в Параметрах базы данных укажи "Модель восстановления" - Простая. После сделай сжатия файла журнала. Лог ужмется до минимума, после можешь вернуть метод восстановления и установить ограничения на размер файла журнала.
(21) вот там можно сжать БД и файл, что нужно выбрать?) сперва пробовал файлы выбирать, ничего не поменялось. Потом выбрал БД, файл БД сжался, а лог увеличился до 340гб)
Но там Модель восстановления была полная вроде.
(32) а когда мне файл базы то нужно сжать? я удалил таблицу версионирования. она ~ 20гб весила, вот мне нужно теперь таблицу сжать)
PS Выбрал реорганизовать таблицы, и указал размер, он сжал до этого размера. Но я думал при виде операции "освободить неиспользуемое место" тоже база должна сжиматься.
(34) При росте базы растет размер файла, когда данный из базы удаляются, размер файла не уменьшается, чтобы освободить из "резерва" место на диске есть процедура Shrink. В вашем случае должно помочь переключение режима с восстановления с FULL на Simple. параллельно с этим можно выгрузить базу в DT. Естественно подо все эти манипуляции желательно иметь свободное место на диске.