Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
Добрый день.
Microsoft SQL Server 2008 R2 (SP3-GDR) (KB4057113) - 10.50.6560.0 (X64)

Возникла необходимость сжать базу - освободить место на диске. Объем базы 892 Гб, используемый объем 677 Гб, начальный размер файла 892 Гб (см.приложенный файл).

1. При уменьшении базы (файла) даже на немного (а хотелось бы до 677 Гб) из SSMS или скриптом:
USE [Reports]
DBCC SHRINKFILE (N'Reports' , 892000)

Возникает ошибка:
"Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы."


2. И при изменении начального размера тоже возникает ошибка:
------------------------------
ЗАГОЛОВОК: Microsoft SQL Server Management Studio
Действие Сжатие завершилось неудачно для объекта "DataFile" "Reports". (Microsoft.SqlServer.Smo)
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы. (Microsoft SQL Server, ошибка: 0)

------------------------------
Лог-файл уменьшается, но начальный размер лог-файла нет - та же ошибка.
Сама база доступна, обновляется статистика, реиндекс. Что-то не так, есть ли возможность её все-таки сжать Гб на 200?

К сообщению приложен файл. Размер - 91Kb
2 июл 18, 13:29    [21536568]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
1. В логе сервера что?
2. Зачем лог уменьшать? Чтобы при следующем реиндексе или в процессе рабобты он постоянно рос обратно? Типа, сервере железный, ему все равно?

З.Ы. Беспрблемно свободное место из файлов очищается только если оно находится в конце файлов. В остальных случаях данные из конца файлов придется перемещать. Вы точно готовы к перемещению 200+ Гб данных?
2 июл 18, 13:37    [21536588]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
Лог попробовал уменьшить, чтобы убедиться, что это работает.
Чтобы решиться на перемещение, хотелось бы узнать насколько это сложно, безопасно, и т.д. ?
2 июл 18, 13:44    [21536618]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
А можно ли убедиться, что свободное пространство находится не в конце?
И если можно еще вопрос, может ли причиной этих ошибок быть нехватка места на диске (около 100 Гб)?
2 июл 18, 14:14    [21536736]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
В логе сервера SQL ничего об SHRINKFILE или SHRINKDATABASE нет... $O$
2 июл 18, 17:05    [21537229]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
Проверено, причина ошибки сжатия базы не в нехватке места на диске (временно перенесли файл .mdf на большой диск - ошибка та же). Помогите найти решение, необходимо периодически удалять из базы старые таблицы, но после удаления размер базы не уменьшается, и приходится шринковать, но именно эта база при шринковании дает ошибку...
3 июл 18, 10:52    [21538602]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
londinium
Member

Откуда: Киев
Сообщений: 1170
keepermode
Помогите найти решение, необходимо периодически удалять из базы старые таблицы, но после удаления размер базы не уменьшается

Ну пусть себе не уменьшается. Сервер на место, освободившееся при удалении старых таблиц, запишет что-то новое, интересное и полезное
3 июл 18, 11:04    [21538625]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
База растёт, место на диске не бесконечно. Должна же база сжиматься (свободное пространство есть), начальный размер уменьшаться, куда копать?
3 июл 18, 11:21    [21538665]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
keepermode
База растёт, место на диске не бесконечно. Должна же база сжиматься (свободное пространство есть), начальный размер уменьшаться, куда копать?

никуда, в базе свободно 200 заполнится продолжет расти
3 июл 18, 11:23    [21538674]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
Вопрос очень важный: почему нет технической возможности сжать и уменьшить нач.размер данной базы? Ошибки в первом посте описаны. Помогите, пожалуйста, разобраться, ведь базы должны иметь право сжиматься в критических хотя бы случаях.
4 июл 18, 09:51    [21541452]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
keepermode
Вопрос очень важный: почему нет технической возможности сжать и уменьшить нач.размер данной базы? Ошибки в первом посте описаны. Помогите, пожалуйста, разобраться, ведь базы должны иметь право сжиматься в критических хотя бы случаях.

Изучайте: https://www.google.ru/search?newwindow=1&rlz=1C1CHZL_ruRU758RU758&ei=pnI8W9WsDoKE6QTe1o2wCQ&q=dbcc shrinkfile results should be discarded&oq=DBCC SHRINKFILE results should be disc&gs_l=psy-ab.3.0.33i21k1j33i160k1l2.119927.134233.0.135264.23.22.0.1.1.0.139.1740.19j3.22.0....0...1c.1.64.psy-ab..0.20.1523...0j35i39k1j0i203k1j0i20i263k1j0i67k1j0i22i30k1j33i22i29i30k1.0.q_-PX-Htse0

Основная мысль -- проверяйте базу через DBCC CHECKDB
4 июл 18, 10:16    [21541563]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Авторасширение в 1 MB, прикольно :)
4 июл 18, 11:00    [21541768]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
keepermode
Member

Откуда:
Сообщений: 67
aleksrov, что-то не так с авторасширением? Как его оптимально настроить?
9 июл 18, 12:19    [21555677]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
keepermode
aleksrov, что-то не так с авторасширением? Как его оптимально настроить?
Для базы в почти террабайт расширение по 1 мегабайте выглядит странно - будет слишком большая нагрузка на сервер, если нужно будет добавить десяток гигов. Плюс будет большая фрагментация - террабайтная база будет состоять из миллиона распиханных по всему диску отрезочков.
Обычно делают расширение процентов 10, для данной базы - 100 гигов. Ну, можно поменьше, это зависит от прогноза размеров и свободного объёма на диске. Скажем, 10 гигов.
9 июл 18, 19:14    [21557493]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
komrad
Member

Откуда:
Сообщений: 5245
alexeyvg
Обычно делают расширение процентов 10, для данной базы - 100 гигов. Ну, можно поменьше, это зависит от прогноза размеров и свободного объёма на диске. Скажем, 10 гигов.

лучше делать в абсолютных величинах - так вы контролируете как размер прироста, так и длительность самой операции по приращению файла
иначе, каждый последующий прирост будет длиться всё дольше и дольше
10 июл 18, 11:20    [21558662]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при уменьшении базы (файла) и при изменении начального размера  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
komrad
alexeyvg
Обычно делают расширение процентов 10, для данной базы - 100 гигов. Ну, можно поменьше, это зависит от прогноза размеров и свободного объёма на диске. Скажем, 10 гигов.

лучше делать в абсолютных величинах - так вы контролируете как размер прироста, так и длительность самой операции по приращению файла
иначе, каждый последующий прирост будет длиться всё дольше и дольше
Да, согласен, я и написал в абсолютных величинах. А про 10% написал как рекомендацию расчёта этой абсолютной величины для неопытного админа.
10 июл 18, 11:48    [21558769]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить