powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Could not allocate space
25 сообщений из 30, страница 1 из 2
Could not allocate space
    #40120144
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день уважаемые.

Периодически происходит событие

DESCRIPTION: Could not allocate space for object 'INDEX_NAME' in database 'DBNAME' 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.

Предполагаю во время выполнения задания по перестройки индексов.

В файловой группе PRIMARY несколько файлов на одном из них выставлен AutoGrow.
Места на диске достаточно.

Подскажите пожалуйста в чем может быть дело.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120152
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

В виндовом Event Viewer на эту тему ничего нет?

Дисковые квоты - ?

Ну и print @@version в студию.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120164
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alHaos,
достаточное место не в момент события может быть следствием модели восстановления simple, автошринка на базах или шринка в регламентных заданиях (варианты, когда одмин удаляет по одному фильму из коллекции на этом сервере по факту окончания места и аналогичные, я пропускаю)
имеет смысл настроить мониторинг свободного места на диске с небольшим интервалом сбора и смотреть наличие места на время появления ошибки. тот же xp_fixeddrives в табличку раз в минуту наверное проканает.
это если с квотами всё норм и автоприращение на правильном файле включено
...
Рейтинг: 0 / 0
Could not allocate space
    #40120190
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael,

Посмотрел Application и System журналы, ничего подозрительного нет.

Код: plaintext
1.
2.
3.
4.
Microsoft SQL Server 2014 (SP3) (KB4022619) - 12.0.6024.0 (X64) 
	Sep  7 2018 01:37:51 
	Copyright (c) Microsoft Corporation
	Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
...
Рейтинг: 0 / 0
Could not allocate space
    #40120192
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st, Модель sample, автошринк отключен, место тут исчисляется терабайтами... сомневаюсь что свободных четыре терабайта есть возможность забить и освободить за короткое время.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120194
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ли как то autogrow влиять?, не хватило место в файле данных во время переиндексации
возникла ошибка, место добавилось.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120268
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

чудес не бывает, 'PRIMARY' filegroup is full.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120281
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alHaos
andy st, Модель sample, автошринк отключен, место тут исчисляется терабайтами... сомневаюсь что свободных четыре терабайта есть возможность забить и освободить за короткое время.

Модель sample - имеет смысл почитать как там лог работает, и как усекается... врдуг что есть интересное.

Быстро забить терабайты под tempdb или под лог транзакций на пересборках больших индексов в том числе и онлайн или тривиальным рукоблудием программистов - это вопрос только быстродействия дисковой подсистемы.

Засрать tempdb, при окончании места рестартануть службу mssql, чтобы "почистить" место - это тоже частая success story.
А еще видел скрипт на планировщике, который детачил базу с чрезвычайно разросшимся логом, убивал лог, присоединял базу с пересозданием лога...
Так что вариантов того, что у вас там творится - тьма.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120284
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще одмины дисковой подсистемы могут изредка бдить наличие отсутствия свободного места и по прилёту сообщения "ой всё" тупо добавлять место на разделах.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120297
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
Может ли как то autogrow влиять?
Кстати может. Например, у вас на диске свободны 4 Тб, как вы говорите, но при этом автоприращение может быть настроено так, что ему нужно 5 Тб.
...
Рейтинг: 0 / 0
Could not allocate space
    #40120307
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

предоставьте вывод:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
use <имя вашей бд>;


select
     [file_id],
     [type_desc],
     [size],
     [max_size],
     [growth],
     [is_percent_growth],
     fileproperty([name], 'SpaceUsed') as [used_pages]
from sys.database_files;

exec xp_fixeddrives;
...
Рейтинг: 0 / 0
Could not allocate space
    #40132152
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, случился рецидив.

ОшибкаDESCRIPTION: Could not allocate space for object 'dbo.table'.'Idx' in database 'database' 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.

felix_ff,
file_idtype_descsizemax_sizegrowthis_percent_growthused_pages1ROWS553879200-1005538789682LOG31713744-11016767943ROWS265606176-1002656061524ROWS262233304-1002622331765ROWS280625152-1002803415206ROWS146669568-11310720143640784


driveMB freeC61904E10485130G4288857H5693234I7477990
...
Рейтинг: 0 / 0
Could not allocate space
    #40132167
Фотография programmator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

Добрый день.
чему равен MAXSIZE?
...
Рейтинг: 0 / 0
Could not allocate space
    #40132172
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

а этот скрипт что покажет?

Код: 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.
SELECT db_name() [DB]
	,isnull(ds.name, 'Not Applicable') AS [FileGroup]
	,df.file_id
	,df.name AS [FileName]
	,df.type_desc AS [Type]
	,left(df.physical_name, 3) [Drive]
	,convert(INT, size / 128.) [Size (MB)]
	,convert(INT, FILEPROPERTY(df.name, 'SpaceUsed') / 128.) [Used Space (MB)]
	,convert(INT, size / 128.0 - FILEPROPERTY(df.name, 'SpaceUsed') / 128.) AS [Available Space (MB)]
	,df.state_desc AS [Status]
	,CASE 
		WHEN df.max_size = - 1
			THEN 'Unlimited'
		ELSE convert(VARCHAR(50), ceiling(df.max_size / 128.))
		END AS [Max Size (MB)]
	,CASE 
		WHEN df.is_percent_growth = 1
			THEN convert(VARCHAR(20), df.growth) + '%'
		ELSE convert(VARCHAR(20), convert(INT, df.growth / 128.)) + ' MB'
		END AS [Growth]
	,df.is_read_only
	,df.is_media_read_only
	,df.is_sparse
FROM sys.database_files df
LEFT JOIN sys.data_spaces ds ON df.data_space_id = ds.data_space_id
ORDER BY df.file_id
...
Рейтинг: 0 / 0
Could not allocate space
    #40132179
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
programmator,

- 1

file_idtype_descsizemax_sizegrowthis_percent_growthused_pagesmax_size1ROWS553879200-100553878720-12LOG31713744-1101208960-13ROWS265606176-100265606104-14ROWS262233304-100262232976-15ROWS280625152-100280393464-16ROWS146669568-11310720144386552-1
...
Рейтинг: 0 / 0
Could not allocate space
    #40132180
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

DBFileGroupfile_idFileNameTypeDriveSize (MB)Used Space (MB)Available Space (MB)StatusMax Size (MB)Growthis_read_onlyis_media_read_onlyis_sparse[database]PRIMARY1DataROWSG:\432718143271773ONLINEUnlimited0 MB000[database]Not Applicable2LogLOGG:\2477631778245985ONLINEUnlimited10%000[database]PRIMARY3Data_01ROWSG:\207504820750470ONLINEUnlimited0 MB000[database]PRIMARY4Data_02ROWSG:\204869720486952ONLINEUnlimited0 MB000[database]PRIMARY5Data_03ROWSG:\219238421905771806ONLINEUnlimited0 MB000[database]PRIMARY6Data_04ROWSG:\1145856112804517811ONLINEUnlimited1024 MB000
...
Рейтинг: 0 / 0
Could not allocate space
    #40132191
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

у вас для четырех файлов автоприращение выключено, при этом в трех из них свободно менее 5 mb свободного пространства.

начните с того что для каждого файла данных установите автоприращение в 1024 mb
...
Рейтинг: 0 / 0
Could not allocate space
    #40132200
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff, это намеренно, стараемся на допускать увеличения фала более 2 тб, становится затруднительно то же копирование, когда крайний приблизится к 2тб, добавим новый, у текущего аутогроу выключим.
...
Рейтинг: 0 / 0
Could not allocate space
    #40132201
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
alHaos,

у вас для четырех файлов автоприращение выключено, при этом в трех из них свободно менее 5 mb свободного пространства.

начните с того что для каждого файла данных установите автоприращение в 1024 mb

у него файл Data_04 должен расти, да и в нем 17ГБ свободно ещё

alHaos, а на папку с файлами БД нет ограничения (квота) на размер?
...
Рейтинг: 0 / 0
Could not allocate space
    #40132209
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
если был бы отказ со стороны файловой системы, то база бы упала в "подозрение". Емнип сервер это считает неисправимой ошибкой.
...
Рейтинг: 0 / 0
Could not allocate space
    #40132211
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сервер пишет в несколько файлов базы? Разве он не пытается их заполнять равномерно?
...
Рейтинг: 0 / 0
Could not allocate space
    #40132213
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
А как сервер пишет в несколько файлов базы? Разве он не пытается их заполнять равномерно?

зависит от свободного места в файле - Proportional Fill Algorithm

https://www.sqlshack.com/understanding-sql-server-proportional-fill-algorithm/
...
Рейтинг: 0 / 0
Could not allocate space
    #40132223
alHaos,

dbcc shrinkfile точно не работает на базе? приходилось сталкиваться с таким поведением при одновременной работе alter index reorganize и dbcc shrinkfile. при этом в моем случае об autogrowth даже речи не могло быть, т.к. свободного места в бд было с изрядным запасом.
...
Рейтинг: 0 / 0
Could not allocate space
    #40132230
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

а, сорри я чет не обратил внимания что все файлы к одной ФГ принадлежат
...
Рейтинг: 0 / 0
Could not allocate space
    #40132250
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РядомСтоял
alHaos,

dbcc shrinkfile точно не работает на базе? приходилось сталкиваться с таким поведением при одновременной работе alter index reorganize и dbcc shrinkfile. при этом в моем случае об autogrowth даже речи не могло быть, т.к. свободного места в бд было с изрядным запасом.


alHaos,
проверьте дефолтный трейс на предмет dbcc shrink*

DBCC
Код: 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.
WITH trc
AS (
	SELECT reverse(stuff(reverse(path), 1, charindex('_', reverse(path)), '')) + '.trc' [fpath]
		,max_files
	FROM sys.traces
	WHERE is_default = 1
		AND STATUS = 1
	)
SELECT TOP 100 te.name
	,ft.SPID
	,ft.LoginName
	,ft.Hostname
	,ft.ClientProcessID
	,ft.DatabaseName
	,ft.FileName
	,ft.StartTime
	,dateadd(ms, ft.Duration / 1000, ft.StartTime) [FinishTime]
	,ft.ApplicationName
	,ft.ObjectID
	,ft.Duration / 1000 / 1000 [Duration (s)]
	,ft.TextData
	,ft.RoleName
	,ft.TargetUserName
	,ft.TargetLoginName
FROM trc st
CROSS APPLY::fn_trace_gettable(st.fpath, st.max_files) AS ft
INNER JOIN sys.trace_events AS te ON ft.EventClass = te.trace_event_id
WHERE te.name LIKE '%DBCC%'
ORDER BY ft.StartTime DESC;



+ события роста файлов базы

Growth
Код: 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.
WITH trc
AS (
	SELECT reverse(stuff(reverse(path), 1, charindex('_', reverse(path)), '')) + '.trc' [fpath]
		,max_files
	FROM sys.traces
	WHERE is_default = 1
		AND STATUS = 1
	)
SELECT TOP 100 te.name
	,ft.SPID
	,ft.LoginName
	,ft.Hostname
	,ft.ClientProcessID
	,ft.DatabaseName
	,ft.FileName
	,ft.StartTime
	,dateadd(ms, ft.Duration / 1000, ft.StartTime) [FinishTime]
	,ft.ApplicationName
	,ft.ObjectID
	,ft.Duration / 1000 / 1000 [Duration (s)]
	,ft.TextData
	,ft.RoleName
	,ft.TargetUserName
	,ft.TargetLoginName
FROM trc st
CROSS APPLY::fn_trace_gettable(st.fpath, st.max_files) AS ft
INNER JOIN sys.trace_events AS te ON ft.EventClass = te.trace_event_id
WHERE te.name LIKE '%Growth'
ORDER BY ft.StartTime DESC;

...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Could not allocate space
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]