I have a very large table in my database and I am starting to get this error
Could not allocate a new page for
database ‘mydatabase’ because of
insufficient disk space in filegroup
‘PRIMARY’. Create the necessary space
by dropping objects in the filegroup,
adding additional files to the
filegroup, or setting autogrowth on
for existing files in the filegroup.
How do you fix this error? I don’t understand the suggestions there.
marc_s
729k174 gold badges1327 silver badges1455 bronze badges
asked Jun 7, 2010 at 7:01
If you’re using SQL Express you may be hitting the maximum database size limit (or more accurately the filegroup size limit) which is 4GB for versions up to 2005, 10GB for SQL Express 2008 onwards. That size limit excludes the log file.
answered Dec 6, 2013 at 10:57
tomRedoxtomRedox
27.7k24 gold badges117 silver badges152 bronze badges
1
There isn’t really much to add — it pretty much tells you what you need to do in the error message.
Each object (Table, SP, Index etc) you create in SQL is created on a filegroup. The default filegroup is PRIMARY. It is common to create multiple filegroups that span over many disks. For instance you could have a filegroup named INDEXES to store all of your Indexes. Or if you have one very large table you could move this on to a different filegroup.
You can allocate space to a filegroup, say 2GB. If Auto Grow is not enabled once the data in the filegroup reaches 2GB SQL Server cannot create any more objects. This will also occur is the disk that the filegroup resides on runs out of space.
I’m not really sure what else to add — as I said previously, the error message pretty much tells you what is required.
answered Jun 7, 2010 at 7:08
codingbadgercodingbadger
42.3k13 gold badges94 silver badges109 bronze badges
If you are using client tools (MSDE) then the data in the filegroup reaches 2GB, SQL Server cannot create any more objects.
answered Feb 12, 2013 at 6:28
Use DBCC shrinkfile statement to shrink file…
USE databasename ;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE databasename
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (databasename_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE databasename
SET RECOVERY FULL;
GO
mattcan
54012 silver badges30 bronze badges
answered Jun 7, 2010 at 7:20
HarendraHarendra
2493 silver badges10 bronze badges
1
Обновлено 12.11.2017
добрый день уважаемые читатели блога pyatilistnik.org, у меня на работе по исторически сложившейся ситуации, досталась в наследство одна архаичная служба СКУД Quest 2, кто не в курсе, это очень старая программа по организации системы прохода в компании, по типу СФИНКС. Все это хорошо, но в какой-то момент у меня появилась ошибка «Could not allocate space for object because the ‘PRIMARY’ filegroup is full» не дающая мне ни записывать карточки, ни что либо удалять. Давайте посмотрим как это решается и как это поправить.
Вот как выглядит данная ошибка:
При выполнении операции произошло следующее исключение: Could not allocate space for object ‘Events’ in database ‘Quest’, because the ‘PRIMARY’ filegroup is full
Через какое-то время вообще программа Quesr 2 перестала запускаться.
При выполнении операции произошло следующее исключение» Журнал событий переполнен.
Начав разбираться я обнаружил, что данная утилита, древняя как мамонт, и ее база данных построена на базе MS SQL 2000, да да, ей 17 лет. Размер базы данных оказался 1,8 ГБ.
Исправление ошибки
Если перевести первую ошибку, то видно, что забилась одна из таблиц базы данных, для того, чтобы попасть в базу нам потребуется установить, бесплатный модуль управления SQL Server Management Studio. Как он устанавливается, читаем по ссылке слева. Запускаем его, далее вам необходимо открыть все имеющиеся таблицы, в моем случае это Quest, а в ней уже Events. Щелкните по ней правым кликом и выберите пункт «Открыть таблицу». В результате чего вы увидите общее количество строк в ней.
Как очистить таблицу MS SQL
Давайте теперь вычистим таблицу и восстановим работу нашего СКУД Quest 2. Нам помогут две команды, полностью чистящие таблицу от всех записей.
либо
Если у вас объем таблицы в базе данных SQL большой, то выполнение запроса может занять некоторое время. Отличие truncate от delete, в том, что первый не ведет лог обработки. Надеюсь вам это помогло решить ошибку: Could not allocate space for object because the ‘PRIMARY’ filegroup is full.
Симптомы:
При выполнении какого-либо действия рабочее место оператора ЛЭРС УЧЁТ выдаёт следующую ошибку:
При обращении к базе данных произошла ошибка.
Could not allocate space for object ‘<object_name>’ in database ‘LERS’ 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.
Проверьте соединение сервера ЛЭРС УЧЁТ с SQL-сервером.
У этой ошибки могут быть две причины.
1. Закончилось место на диске компьютера с базой данных ЛЭРС УЧЁТ.
Проверьте, что на компьютере, на котором установлен SQL Server достаточно свободного места. Если место на диске исчерпано, удалите ненужные файлы, чтобы его освободить.
2. Исчерпан максимальный размер базы данных ЛЭРС УЧЁТ.
В этом случае место закончилось в базе данных ЛЭРС УЧЕТ. Максимальный размер базы данных зависит от используемой редакции SQL-сервра. В составе ЛЭРС УЧЕТ поставляется Microsoft SQL Express 2008 R2, максимальный размер базы в котором ограничен 10 ГБ. Используемая редакция SQL-сервера и количество свободного места в базе данных отображается в отчете о состоянии системы (см. главное меню «Отчеты»).
По умолчанию файл с базой данных ЛЭРС находится по пути
С:Program FilesMicrosoft SQL ServerMSSQL10_50.LERSMSSQLDATALERS.mdf
Если вы используете сервер, поставляющийся вместе с ЛЭРС УЧЁТ, проверьте размер этого файла. Если он превышает 10ГБ, значит максимальный размер БД для бесплатной редакции сервера превышен.
Вам нужно очистить место в базе данных, удалив, например, старые журналы (главное меню «Администрирование» —> «Системные параметры»). Уменьшите сроки хранения журналов в базе данных и сохраните изменения.
Так же можно удалить старые данные по точкам учёта, воспользовавшись операцией группового удаления. Перед удалением данных за какой-либо интервал их можно экспортировать и сохранить отдельно в виде XML-файла.
После этого выполните операцию сжатия базы данных (shrink). Для этого войдите на компьютер, на котором установлен SQL Server под административной учётной записью. В поле «Поиск» меню «Пуск» наберите cmd
и нажмите Enter
.
Выполните следующую команду.
osql -E -S (local)LERS -d LERS -Q "DBCC SHRINKDATABASE ('LERS', 1)"
Скачать скрипт для выполнения команды.
Если после этого размер файла БД всё ещё больше 10ГБ, или если требуется сохранить все данные, нужно перейти на коммерческую редакцию SQL Server. Например, Standard Edition. У него нет практических ограничений на размер базы данных.
- Remove From My Forums
-
Question
-
Hi all .,
I am getting thi s error in the version
Microsoft SQL Server 2008 R2 (RTM) — 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft
Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)Msg 1105, Level 17, State 2, Procedure USP_SCHEDULER_REPORT, Line 397
Could not allocate space for object ‘dbo.RPT_HOUR_WISE’ in database ‘sgmsdb’ 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.Please help me out how to solve this
Regards ,
Subathra.
<//span>
Answers
-
Thanks for all .
I have executed this syntax
DBCC ShrinkDatabase(tempdb,40)
Error is resolved .
But in future while adding records that time also i have to shrink this db ,
Please clarify on this
Thanks
-
Marked as answer by
Wednesday, September 18, 2013 9:22 AM
-
Marked as answer by
24.09.08 — 11:09
УТ 10.3.3. Скуль. При обновлении конфигурации БД выдает ошибку
Каталог не обнаружен ‘v8srvr://server/dbase/configsave/d27921ca-6c64-46db-a20c-e30d84e2c08b.0’
по причине:
Каталог не обнаружен ‘ConfigSaved27921ca-6c64-46db-a20c-e30d84e2c08b.0’
по причине:
Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Could not allocate space for object ‘dbo.Config’.’PK__Config__07020F21′ in database ‘Dbase’ 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.
HRESULT=80040E14, SQLSrvr: Error state=2, Severity=11, native=1105, line=3
Вроде спасает выгрузказагрузка базы. Но может кто подскажет, как еще решить проблему?
1 — 24.09.08 — 11:10
Чего тебе непонятно здесь — ‘PRIMARY’ filegroup is full ?
2 — 24.09.08 — 11:10
«because the ‘PRIMARY’ filegroup is full.»
На чистом буржуинском языке сказано, что нет места на диске или файл-группе некуда расширяться.
Берём dba, разбегаемся, пинаем его со всех сил, чтобы исправление этой ошибки стало его дембельским аккордом в твоей конторе.
3 — 24.09.08 — 11:13
(2) солдатов насмотрелся?:)
4 — 24.09.08 — 11:17
(3) Нет, админов настроился…
5 — 24.09.08 — 11:53
Извиняюсь, мало опыта работы со скульными базами.
Можно описать процесс «пинания DBA» попонятнее. типа «наведите мышку и щелкните здесь…»
6 — 24.09.08 — 11:57
(5).
1. Отходим от dba на 10 метров.
2. начинаем разбег в сторону dba
3. при подбеге вытягиваем ногу и целим в musculus gluteus
4. после вскрика «шозанах» говорим ему «настрой сервер быстранах».
5. по инерции пробегаем мимо и направляемся в сторону кабинета начальника со словами «увольняйте dba, он неадекват»
А если серьёзно, для начала проверяй место на диске.
7 — 24.09.08 — 12:19
(6) Ну, Денис, — спасибо за «описание» процесса взаимодействия с SQL :)) Я давно уже догадывался что между мной и SQL-сервером «что-то еще нехватает» — а это «что-то» оказывается админом называется :о)
8 — 24.09.08 — 14:28
Место 146 ГБ.
Можно еще рекомендаций без приколов?
9 — 24.09.08 — 14:33
«or setting autogrowth on for existing files in the filegroup»
Кроме того не озвучена версия ОС и тип файловой системы на диске с файлами базы данных.
10 — 24.09.08 — 14:38
Windows server 2003.
Скуль 2005.
11 — 24.09.08 — 14:41
Версия скуля какая?
Какая файловая система?
12 — 24.09.08 — 14:43
Файловая система NTFS.
Скуль 2005 Express Edition (With Service Pack 2)
(9)Говорю ж в настройках SQL server не силен.
Если не сложно, где ставится этот «autogrowth»?
13 — 24.09.08 — 14:44
(12) Express Edition — еще вопросы есть?
14 — 24.09.08 — 14:44
(12) менеджмент студио — база данных — свойства — файлы.
15 — 24.09.08 — 14:45
(13) Упс. Не заметил…
(12) А экспресса — ограничение на размеры бахзы данных.
16 — 24.09.08 — 14:47
хых
17 — 24.09.08 — 14:48
Вот блин. Проверил. Как раз вырасло на 4 гб.
(14) Нашел. Увеличивать здесь смысла нет? Лучше поставить полную версию?
18 — 24.09.08 — 14:48
(17) читай (15). У полного ограничений как раз нет.
J_Silver
19 — 24.09.08 — 14:51
Спасибо огромное.