|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
MSSQL 2014 (12.0.2000) На hdd только БД, занимает 600гб, сейчас свободно 5мб и запись в БД остановилась. Лог транзакций уже почищен и больше потереть на диске просто нечего. База сегментирована по месяцам, начиная с 2013 года. И эта инфа больше не нужна. Что можно экстренно придумать? Можно как то отключить от базы и перенести старые сегменты? Или хотя бы перенести старые сегменты на другой диск. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 10:48 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 Можно как то отключить от базы и перенести старые сегменты? sure2019 Или хотя бы перенести старые сегменты на другой диск. Конечно, если у вас сегменты лежат в отдельных файлах. Иначе нужно писать код переноса сегментов в отдельные файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 11:27 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
alexeyvg, перенести имею ввиду на другой диск на том же сервере. сегментировал старый администратор. в теории, должно быть сделано все правильно. сегменты разбиты по месяцам. дополнительно сейчас пришла мысль SHRINKFILE TRUNCATEONLY на те сегменты, которые ну точно не используются (к примеру, БД с 2013 года, запросы сейчас выполняются на >2019. Что скажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 11:29 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 alexeyvg, перенести имею ввиду на другой диск на том же сервере. sure2019 дополнительно сейчас пришла мысль SHRINKFILE TRUNCATEONLY на те сегменты, которые ну точно не используются (к примеру, БД с 2013 года, запросы сейчас выполняются на >2019. Что скажете? Вам нужно удалить данные из секции командой TRUNCATE TABLE ... WITH PARTITIONS (WITH PARTITIONS обязательно, иначе удалите всю таблицу!!!), потом удалить логическую секцию из таблицы, а потом удалить файл секции командой ALTER DATABASE ... REMOVE FILE Впрочем, нет, WITH PARTITIONS появилось с 2016, а у вас 2014 Тогда удалить нужно командой DELETE (что медленно, хотя можно, т.к. у вас данных мало), либо переключением секции в специальную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 11:40 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
alexeyvg, звучит опасными экспериментами :-) а разве сам по себе TRUNCATE не требует свободного места для выполнения операций? экспериментально попробовал SHRINKFILE на паре старых сегментов - выиграл 30% от их объема. Получается они не то что заполнены до отказа ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 12:19 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 экспериментально попробовал SHRINKFILE на паре старых сегментов - выиграл 30% от их объема. Получается они не то что заполнены до отказа смотри пункт 4 - там скрипт по определению свободного места в файлах https://www.mssqltips.com/sqlservertip/1805/different-ways-to-determine-free-space-for-sql-server-databases-and-database-files/ попробуй команду DBCC SHRINKFILE (N'имяфайла', 0, TRUNCATEONLY) на каждом файле с большим кол-вом свободного места https://www.mssqltips.com/sqlservertip/4368/execute-sql-server-dbcc-shrinkfile-without-causing-index-fragmentation/ не все файлы получится обрезать (вернуть пространство на диск), так как этот вариант команды удаляет пустое место только в _конце_ файла ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 13:21 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 звучит опасными экспериментами :-) Рекомендую перед началом любых действий сделать бакап. sure2019 а разве сам по себе TRUNCATE не требует свободного места для выполнения операций? sure2019 экспериментально попробовал SHRINKFILE на паре старых сегментов - выиграл 30% от их объема. Получается они не то что заполнены до отказа Тогда можно, как посоветовал komrad, пройтись по файлам командой DBCC SHRINKFILE (N'имяфайла', 0, TRUNCATEONLY), наверняка свободного места добавится, и можно будет спокойно заняться удалением/переносом в архив старых секций. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 14:52 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
какая то бедулька USE [master] GO ALTER DATABASE [имя базы] SET OFFLINE ALTER DATABASE [имя базы] MODIFY FILE ( NAME=April2011,FILENAME = 'C:\новое место\April2011.ndf' ); ALTER DATABASE [имя базы] SET ONLINE GO alter висит уже выполняется часов. это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 16:21 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 alter висит уже выполняется часов. это нормально? Код: sql 1.
ЗЫ: Ошибаетесь, если считаете, что modify file сам переместит файл в новое расположение. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 16:42 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
ЗЫ: Ошибаетесь, если считаете, что modify file сам переместит файл в новое расположение.[/quot] Дайте ЦУ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 16:45 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 Дайте ЦУ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 17:32 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
дождался alter, выполнил modify file. пытаюсь привести в online, получаю Operating system error 5: "5(Отказано в доступе.)". Первым делом пошел смотреть права у файлов, которые перенес и у тех, что оставил на месте. У оставленных есть владелец MSSQLSERVER Но новым не могу назначить такого владельца, поскольку винда говорит нет такого. Поставил "Всем пользователям" полные права. Поднялось. Как рекомендуете проверить работоспособность базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 23:53 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019 Как рекомендуете проверить работоспособность базы? - база вышла в онлайн - dbcc checkdb прошла без ошибок если диск без ошибок, то новых проблем с базой появиться не должно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 03:26 |
|
спасите БД (кончилось место)
|
|||
---|---|---|---|
#18+
sure2019, Так же рекомендую мониторить внутренние и внешние размеры файлов БД этим скриптом - крайне наглядно и понятно все показывает, и нули внутри дата-файлов, и параметры автоприращения. Можно даже раскомментировать опциональную колонку по DBCC SHRINK - будет генерить соответствующие стейтменты Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 10:43 |
|
|
start [/forum/topic.php?fid=46&msg=39940179&tid=1686305]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 147ms |
0 / 0 |