Не удалось выделить место для объекта. Основная файловая группа заполнена
Обновлено: 21.11.2024
Не удалось выделить место для объекта «имя_объекта» в базе данных «имя_базы_данных», поскольку файловая группа «ПЕРВИЧНАЯ» заполнена. Освободите место на диске, удалив ненужные файлы, отбросив объекты в файловой группе, добавив дополнительные файлы в файловую группу или включив автоматический рост для существующих файлов в файловой группе.
Как удалить файлы из основной файловой группы?
4 ответа 4
Вам нужно сделать одно или несколько из трех действий:
- Увеличить максимальный размер файла
- Увеличьте место на диске, где бы ни хранились файлы .mdf и .ndf
- Удалите данные из базы данных, чтобы освободить место для нового объекта.
Щелкните правой кнопкой мыши базу данных > Свойства > Файлы.
Здесь вы увидите имена файлов, группы файлов, путь и, что важно, Autogrowth/Maxsize. Если для него задано значение Ограничено ., он не может выйти за пределы этого ограничения. Если файл заполнен, вам нужно либо изменить максимальный размер, либо удалить данные из базы данных. Если файл не заполнен, то ваш диск почти наверняка заполнен, и вам нужно добавить туда место.
Кроме того, не сжимайте базу данных, пытаясь исправить это.
Вы можете удалить данные из таблиц и т. д., но, скорее всего, если ваши данные выросли до такого размера, им потребуется место сейчас или в ближайшем будущем.
Если у вас есть место на диске, где находится файл, увеличьте размер файла для этой БД и рассмотрите возможность включения автоматического увеличения (проверьте, что параметры увеличения и максимального размера подходят для вашей установки), если это еще не сделано. р>
Если на диске недостаточно места, его необходимо увеличить, иначе это почти наверняка скоро станет проблемой.
Как дополнение к другим ответам.
Это может быть причиной ошибки, или ваши системные накопители переполнены!
Как удалить файлы из основной файловой группы.
это не означает удаление файлов, ПЕРВИЧНАЯ файловая группа — это то, что содержит полные объекты базы данных и их данные вместе с индексами. ошибка указывает, что вы можете удалить «объекты» или «индексы» или данные из таблиц в базе данных.
Если системный диск переполнен, вы можете освободить место, удалив ненужные файлы из системы.
Как действовать в таких случаях:
Шаг 1. Проверьте место на диске, где находятся файлы данных. Если у вас закончилось место на диске. Вот проблема. Вам придется либо увеличить дисковое пространство на этом диске, либо вам придется создать вторичный файл на диске с достаточным пространством, ограничивая рост в mdf. Добавление файла ndf и отключение автоматического роста на первичном mdf решит проблему на данный момент.
Если вы видите достаточно места на диске, это связано с настройками базы данных.
Шаг 2. Щелкните правой кнопкой мыши базу данных, чтобы проверить свойства. Перейти на страницу файлов:
Проверьте, включен ли авторост. Если автоувеличение не включено, а файл данных достиг предела, вы получите сообщение об ошибке заполнения основной файловой группы.
Если вы обнаружите, что для него установлено значение «Ограничено», то либо увеличьте лимит, который вы можете позволить увеличить базе данных, либо сделайте его неограниченным.
Подробнее о Autogrowth нажмите здесь
Удалить данные из таблиц можно после устранения основной проблемы. Кроме того, удаление данных не является вариантом, когда вы заботитесь о производственных системах. Удаление заполнения данных не уменьшает сам файл данных, вам нужно будет повторно проиндексировать и уменьшить его вручную, если это необходимо.
В этой статье мы рассмотрим ошибку SQL Server: основная файловая группа заполнена и как мы можем исправить эту ошибку.
Администраторы базы данных должны отслеживать рост базы данных. Кроме того, они должны выполнять планирование емкости и управление пространством в соответствии с ростом и использованием базы данных. Когда мы создаем новую базу данных, мы устанавливаем значение параметра максимального размера в UNLIMITED большую часть времени. Однако иногда из-за бизнес-требований и аппаратных ограничений мы вынуждены сохранять для параметра MAXSIZE определенное значение.
Когда мы устанавливаем значение параметра MAXSIZE, ограниченное определенным значением, мы можем столкнуться с ошибкой Основная файловая группа заполнена. Эта ошибка также возникает, когда мы используем экспресс-выпуск SQL Server. Максимально допустимый размер базы данных в выпуске SQL Server Express составляет 10 ГБ. Когда размер базы данных попытается превысить 10 ГБ, пользователь увидит ошибку "Первичная файловая группа заполнена".
Чтобы понять концепцию и понять ошибку, мы должны создать демонстрационную установку с определенной конфигурацией. Я создал базу данных с именем DemoDatabase, и размер базы данных составляет 40 МБ. Выполните следующий запрос, чтобы создать базу данных.
( NAME = N 'DemoDatabase', FILENAME = N 'C:\MS_SQL\Data\DemoDatabase.mdf', SIZE = 2048 КБ, MAXSIZE = 20480 КБ)
( NAME = N 'DemoDatabase_log', FILENAME = N 'C:\MS_SQL\Log\DemoDatabase_log.ldf', SIZE = 2048 КБ, MAXSIZE = 20480 КБ)
В базе данных мы создаем таблицу с именем tblFilgroup в базе данных DemoDatabase. Таблица содержит два столбца с именами first_name и address. Тип данных столбца first_name — varchar(500), а тип данных столбца адреса — char(8000). Выполните следующий запрос, чтобы создать таблицу tblFilgroup.
После создания таблицы мы вставляем несколько демонстрационных записей в таблицу tblFilgroup. Мы вставляем 5000 строк в таблицу. Чтобы вставить 5000 записей, мы можем использовать ключевые слова GO 5000 в конце запроса на вставку. Выполните следующий запрос, чтобы вставить записи.
Во время выполнения запроса INSERT возникает следующая ошибка.
Сообщение 1105, уровень 17, состояние 2, строка 18
Не удалось выделить место для объекта «dbo.tblFilegroup» в базе данных «DemoDatabase», поскольку файловая группа «PRIMARY» заполнена.
Освободите место на диске, удалив ненужные файлы, объекты в файловой группе, добавив дополнительные файлы в файловую группу или включив автоматический рост для существующих файлов в файловой группе.
Скриншот:
Чтобы определить основную причину, сначала давайте проверим доступное дисковое пространство на рабочей станции. Выполните следующую команду в PowerShell.
Как видно на изображении выше, на рабочей станции достаточно места. Теперь давайте посмотрим на значение параметра MAXSIZE в DemoDatabase. Мы можем запросить DMV sys.master_files, чтобы просмотреть значения Autogrowth и max size базы данных DemoDatabase. Выполните следующий запрос.
Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.
Вопрос:
Вопрос
Я видел эту ошибку в ERRORLOG§:
Не удалось выделить место для объекта «dbo.DocsToStreams». «DocsToStreams_NCI_BSN» в базе данных «MyDatabase_name», поскольку файловая группа «PRIMARY» заполнена. Освободите место на диске, удалив ненужные файлы, объекты в файловой группе, добавив дополнительные файлы в файловую группу или включив автоматический рост для существующих файлов в файловой группе.
я не понимаю, что для этой базы данных ПЕРВИЧНАЯ файловая группа состоит из 3 файлов данных:
file_1 -> 80 МБ, автоматическое увеличение не включено
file_2 -> 700 МБ с включенным автоматическим увеличением
file_3 -> 300 МБ с включенным автоматическим увеличением
file_2 и file_3 находятся на томах с большим количеством свободного места.
Я думал, что файловая группа может увеличивать файлы независимо друг от друга, я что-то упустил?
Все ответы
Возможно, некластеризованный индекс создан для файловой группы, которая указывает на основной файл file_1
Отметьте это как ответ, если оно решило вашу проблему
Проголосуйте за это как за полезное, если оно помогло решить вашу проблему
Visakh
------------ ----------------
Моя страница пользователя Wiki
Моя страница MSDN
Мой личный блог
Моя страница Facebook
< /p>
Тома принадлежат кластеру Windows Server 2012R2, задание автоматического обслуживания, запланированное операционной системой, выполняется нормально, текущий статус в диалоговом окне «Оптимизация дисков» показывает «ОК (эффективность использования пространства 98%)
Тома принадлежат кластеру Windows Server 2012R2, задание автоматического обслуживания, запланированное ОС, выполняется нормально, текущий статус в диалоговом окне "Оптимизация дисков" показывает "ОК (эффективность использования пространства 98%)
Что такое параметр автоматического увеличения для файлов? Надеюсь, он не в процентах. Иногда вы получаете это сообщение, когда для автоматического увеличения требуется довольно много времени, при условии, что у вас достаточно свободного места
Отметьте этот ответ как ответ, если он решил вашу проблему, или проголосуйте как полезный, если он помог другим участникам форума.
file_1 -> автоувеличение отключает
file_2 -> автоматическое увеличение на 50 МБ
file_3 -> автоматическое увеличение на 50 МБ
мгновенная инициализация файла включена из ОС
Я всегда записываю это как то, что поток, выполняющий рост, недостаточно быстр для потока, которому требуется место, и в этих случаях вам придется увеличиваться вручную. Возможно, MS считает это ошибкой, но я был бы удивлен, если бы мы могли точно определить, когда мы получим такой случай с точной репродукцией, которую мы можем предоставить MS.
Тибор Караси, MVP SQL Server (веб-блог)
file_1 -> автоматическое увеличение отключает
file_2 -> автоматическое увеличение на 50 МБ
file_3 -> автоматическое увеличение на 50 МБ
включена мгновенная инициализация файла из ОС
Я понятия не имею, почему SQL-сервер сообщает, что FG заполнен, когда у него достаточно места, но можете ли вы изменить значение автоматического роста на 300-500 и предварительно выделить некоторое пространство для файлов и попробовать запустить транзакцию, которую вы выполняли?
Отметьте этот ответ как ответ, если он решил вашу проблему, или проголосуйте как полезный, если он помог другим участникам форума.
не могли бы вы вставить результат для
С уважением, JakDBA. Отметьте это как отвеченное, если это решит вашу проблему или вы удовлетворены ответом.
groupname groupid число_файлов
PRIMARY 1 3
RBSFilestreamProvider 2 0
Спасибо за данные, Кэл,
Вот несколько проверок, которые вы, вероятно, могли бы сделать еще раз, чтобы убедиться, что то, что вы говорите, является окончательным (Я В ВАС НЕ СОМНЕВАЮСЬ)
Если это останавливает рост базы данных, вы всегда можете добавить еще один файл данных в файловую группу и не устанавливать никаких ограничений на автоматический рост. Это автоматически позаботится о росте.
<р>1. В файле базы данных, связанном с файловой группой «PRYMARY», установите параметр «Включить автоувеличение с неограниченным ростом файлов» (это значение по умолчанию при установке SQL). <р>2. Бесплатное использование диска сервера базы данных за счет удаления ненужных объектов базы данных.3. Освободить место на диске, удалив ненужные файлы или увеличив место на диске (если возможно).
4. Переместите файл базы данных, связанный с файловой группой «PRYMARY», на том с большим пространством.
С уважением, JakDBA. Отметьте это как отвеченное, если это решит вашу проблему или вы удовлетворены ответом.
Симптомы
Сообщение об ошибке говорит о том, что файловая группа «PRIMARY» заполнена. В этой статье объясняется, как решить эту ошибку, возникающую при работе с приложением. Эта ошибка не позволит хранить данные аудита или мониторинга в базе данных центрального репозитория
Затронутые версии:
Аудит ApexSQL 2015.04.1254 и новее
Монитор ApexSQL 2016.01.0109 и новее
Причина 1
SQL Server 2008 Express или новее используется для размещения базы данных центрального репозитория. SQL Server 2008 Express имеет ограничение на размер базы данных 4 ГБ, в то время как размер базы данных SQL Server 2008R2 Express или более поздней версии ограничен 10 ГБ, поэтому возможно, что автоматическое увеличение не может быть выполнено, поскольку максимальный размер файловой группы «PRIMARY» достиг своего максимума.
Решение 1
Аудит ApexSQL
Выполнить архивирование базы данных репозитория
Выберите Главная -> Архивировать базу данных
Нажмите кнопку "Архивировать"
Подождите, пока не появится сообщение об успешном завершении процесса архивации
В процессе архивации база данных ApexSQLCrd будет переименована в ArchiveCrd_ГГГГММДД_ччммсс, и будет создана новая пустая база данных ApexSQLCrd
Монитор ApexSQL
Выполните очистку базы данных репозитория, чтобы освободить место в файловой группе PRIMARY.
Выберите Администрирование -> Очистка репозитория
В разделе "Очистить данные вручную" выберите количество дней, которое должно храниться в базе данных (данные старше указанного количества дней будут удалены), и нажмите "Очистить данные"
Подождите, пока не появится информационная панель с сообщением об успешном удалении данных
Чтобы предотвратить появление этой ошибки в будущем, установите политику хранения данных в разделе Автоматически очищать данные
Установите флажок Автоматически очищать данные и установите количество дней, в течение которых вы хотите хранить данные в базе данных репозитория.
Нажмите OK, и с этого момента приложение будет регулярно проверять наличие данных старше указанного количества дней и удалять их, тем самым предотвращая увеличение файловой группы «PRIMARY» базы данных репозитория
Причина 2
Указано искусственное ограничение максимального размера базы данных репозитория
Решение 2
Аудит ApexSQL и монитор ApexSQL
- Откройте Microsoft SQL Server Management Studio.
- Щелкните правой кнопкой мыши базу данных ApexSQLCrd/ApexSQLMonitor и выберите «Свойства».
- На левой панели диалогового окна свойств базы данных выберите "Файлы".
В столбце Autogrowth/Maxsize выберите кнопку «…», отмеченную на изображении ниже
Теперь максимальный размер должен показывать Unlimited
Причина 3
Том NTFS, на котором размещены файлы данных файловой группы «PRIMARY» базы данных центрального репозитория (ApexSQLCrd), сильно фрагментирован, что не позволяет SQL Server найти и выделить достаточно большого свободного пространства в одном фрагменте для выполнения процесса автоматического увеличения.
Решение 3
Аудит ApexSQL и монитор ApexSQL
Чтобы решить эту проблему
- Остановить SQL Server
- Дефрагментация целевого жесткого диска с помощью встроенного в Windows инструмента дефрагментации или любого стороннего инструмента для этой цели.
- Запустите SQL Server
Причина 4
На жестком диске достаточно свободного места, но дисковая квота, установленная на уровне ОС, достигла предела, что предотвратило автоматическое увеличение файловой группы «PRIMARY» базы данных центрального репозитория (ApexSQLCrd)
Решение 4
Аудит ApexSQL и монитор ApexSQL
Отключить ограничения дисковой квоты для жесткого диска
Это отключит ограничения на использование квоты дискового пространства на выбранном жестком диске NTFS для всех пользователей
- Откройте окно "Компьютер", затем щелкните правой кнопкой мыши соответствующий том жесткого диска, например C:, где все ограничения квот для всех пользователей будут отключены, и выберите "Свойства" в контекстном меню.
- По запросу UAC выберите Да
В диалоговом окне "Свойства" снимите флажок "Включить управление квотами" и нажмите "Применить" (ОК)
В этой статье объясняется, как устранить ошибку "Не удалось выделить место для объекта "имя-объекта" в базе данных "имя-базы-данных", поскольку файловая группа "ПЕРВИЧНАЯ" заполнена. Освободите место на диске, удалив ненужные файлы, отбросив объекты в файловой группе или включив автоматический рост для существующих файлов в файловой группе. Оператор был завершен.", когда пользователь пытается изменить существующую таблицу ICM.
Симптом
Эта ошибка возникает, когда пользователь добавляет или удаляет существующий столбец в существующей таблице ICM. Предпосылкой для этой ошибки является размер таблицы: в ней уже много столбцов и много данных.
Причина
Это ошибка SQL Server. Каждая база данных SQL Server имеет основную файловую группу. Внутри этой основной файловой группы находится основной файл данных (оканчивающийся на .mdf). Эта ошибка возникает из-за того, что на диске, на котором находится первичный файл данных, недостаточно места для обработки переданного ему запроса.
Окружающая среда
Решение проблемы
Чтобы устранить эту ошибку, администратор базы данных должен увеличить размер базы данных ICM с помощью диспетчера SQL Server, а также увеличить пространство, отведенное для TempDB. Как уже упоминается в тексте ошибки, это можно решить, добавив дополнительные файлы в файловую группу или включив авторост для существующих файловых групп.
Любое изменение в таблице, например добавление нового столбца, помимо добавления столбца в таблицу, выполняет ряд дополнительных действий за кулисами. Если в таблице включено отслеживание истории, добавление нового столбца приведет к дате окончания существующей таблицы истории и созданию новой. Учитывая, что в рассматриваемой таблице много столбцов и много записей, этот процесс может занять много времени и использовать значительные ресурсы сервера, что приведет к увеличению основной файловой группы.
Читайте также: