Не срабатывает автоувеличение размера файла mdf на MS SQL Server

1. efin 19.02.23 14:10 Сейчас в теме
Windows 2016 Server. Файловая система NTFS.
MS SQL Server 2019 Enterprise (проапгрейдил с 2016 Ent) со всеми обновлениямими CU
База, модель восстановления SIMPLE состоит из одного mdf и одного ldf файла.
Места на дисках сервера много (сотня гигабайт). Квот нет.
Для файловой группы PRIMARY стоит галка "Автоматическое увеличение всех файлов".
Для файлов БД стоят настройки "Автоувеличение 512 МБ, без ограничений".

Проблема. Когда MDF дорастает (заполняется) до 141 216 МБ (цифра в SSMS), в файловой системе файл 137 ГБ (138 ГБ "на диске"),
скуль считает, что больше не может увеличить размер файла MDF.

"Could not allocate space for object 'dbo._InfoRg3863'.'_InfoRg3863_1' in database 'TEST' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

1) место на диске есть
2) autogrowth включен, безлимитно
3) помогает добавить второй файл в файловую группу Primary, на диске появляется файл ndf и начинает заполняться.


Почему не расширяется существующий файл MDF? Может кто сталкивался?
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 19.02.23 15:03 Сейчас в теме
(1) попробовать дефрагментацию диска выполнить.
3. efin 19.02.23 15:34 Сейчас в теме
(2) Дефрагментация и проверка (и исправление) дисков делаются регулярно раз в неделю. Причем для диска C - с перезагрузкой сервера. Для D - там где база - на лету.

Проблема же возникла пару месяцев назад, и все это время я с ней боролся сам, сегодня отчаялся и написал на форум.
6. spacecraft 19.02.23 19:12 Сейчас в теме
(3) файл подкачки на диске есть? Он может резервировать себе место и неправильно отображаться.

Ну и все же попробовать остановить сервер и использовать сторонний дефрагментатор.
7. efin 19.02.23 21:11 Сейчас в теме
(6) Файла подкачки на диске Д, на котором файлы БД - нет. Через LiveCD диски так же пытался обслуживать и вирусы и все такое искать. За месяц было много чего.
4. RustamZz 19.02.23 15:45 Сейчас в теме
(1) А размер кластера на этом диске какой?
5. efin 19.02.23 16:23 Сейчас в теме
8. RustamZz 20.02.23 00:05 Сейчас в теме
(5) 137 ГБ это 2^35 байт, что меньше 16 ТБ для такого размера кластера. А вообще
While a 4K cluster size is the default setting for NTFS, there are many scenarios where 64K cluster sizes make sense, such as: Hyper-V, SQL
рискнете попробовать?
15. efin 20.02.23 15:22 Сейчас в теме
(8) попробовать увеличить размер кластера ФС до 64К, я правильно понял?
10. sssss_aaaaa_2011 20.02.23 09:08 Сейчас в теме
(1)Что в параметрах файла в самом SQL?
Прикрепленные файлы:
14. efin 20.02.23 15:20 Сейчас в теме
(10)
Прикрепленные файлы:
11. minarenko 20.02.23 10:10 Сейчас в теме
(1) аналогичная проблема решилась у меня отсоединением и обратно монтированием файлов базы данных. Незнаю что было причиной, и почему повторное монтирование помогло, но факт остается фактом. Дальше не стал разбираться, т.к. проблема ушла
9. muskul 20.02.23 02:33 Сейчас в теме
В порядке эксперементов если создатьь новую бд и сразу ей указать 200гб?
12. klom 20.02.23 11:50 Сейчас в теме
В первую очередь я бы посмотрел таблицу, на которую у Вас ругается SQL, 'dbo._InfoRg3863'.'_InfoRg3863_1'. Исходя из ошибки "Could not allocate space for object", SQL не может добавить данные именно в эту таблицу, а не увеличить .mdf.
13. efin 20.02.23 15:19 Сейчас в теме
(12) оно там на разные таблицы ругается, это я проверял
16. booksfill 20.02.23 17:26 Сейчас в теме
1. Проверьте права аккаунта MS SQL на "Perform Volume Maintenance Tasks"
2. Выполните sp_spaceused и проверьте , что allocated space не имеет отрицательной величины (был такой глюк, в старых версиях)

А вообще-то странно, попробуйте руками увеличить mdf файл, если ошибка останется, что-то все же настроено не так.

Синтаксис точно не помню, как-то так:
USE master;
GO

ALT ER DATABASE HERE_IS_YOU_BASE_NAME
MODIFY FILE
(NAME = test1dat3,
SIZE = 200GB);
GO
18. efin 21.02.23 00:50 Сейчас в теме
(16)
Perform Volume Maintenance Tasks

Имелось
Прикрепленные файлы:
17. XAKEP 20.02.23 20:26 Сейчас в теме
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-ver16

модель восстановления SIMPLE
Автоматически освобождает место на диске,
занятое журналами,
устраняя таким образом необходимость в управлении размером журналов транзакций.
19. XAKEP 23.02.23 22:06 Сейчас в теме
а что за глупое расположение ?
Все базы и журналы на одном диске ...


Скл резервирует место под свои задачи и он предполагает,что ваше увеличение размера задевает и остальных участников дискового пространства ... и он не может позволить себе и вам проводить такие эксперименты.

У вас в случае проблем с Д диском только бекапы непонятной работоспособности могут помочь восстановится.
20. XAKEP 23.02.23 22:53 Сейчас в теме
(19)
P.s установите автоувеличение размера 128мб для всех баз и журналов и убедитесь, так ли я предполагал.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот