Основна група файлів - повна SQL Server 2008


15

У мене є велика таблиця (~ 50 мільйонів рядків) Я намагаюся масово вставити в SQL Server, і я отримую помилку:

Не вдалося виділити простір для об’єкта 'myDB' у базі даних «I 3 Stroke», оскільки група файлів «PRIMARY» заповнена. Створіть простір на диску, видаливши непотрібні файли, видаливши об’єкти у групі файлів, додавши додаткові файли до групи файлів або встановивши автоматичний ріст для існуючих файлів у групі файлів.

В базі даних є ще одна таблиця з приблизно 25 мільйонами рядків. Ця база даних буде використовуватися лише на одній машині, і вона буде розроблена для видобутку даних, які вже існують, і ні за яких обставин ніколи не перевищуватимуть її поточного розміру.

У такій ситуації, як найкращий спосіб вирішити цю проблему, щоб SQL Server не скаржився? Чи буде вирішення питання, що ця БД не буде піддана впливу декількох користувачів?


2
Вам потрібно додати більше місця в базу даних або видалити невикористані об’єкти. Яке Ваше запитання?
— Гордон Лінофф

@GordonLinoff, коли база даних була створена, група файлів була розроблена для необмеженого зростання, і все ж я стикаюся з цією проблемою. Я сподіваюсь знайти спосіб запобігти тому, щоб це повторилося.
— wootscootinboogie

1
Чи є у вас більше фізичного дискового простору? Якщо так, перевірте журнали помилок SQL Server і перевірте, чи є додаткова інформація про те, чому невдалий авторостання не вдалося.
— Кевін

Підтвердите, будь ласка, що на диску достатньо місця? Це єдина правдоподібна причина, за винятком обмеженого росту файлів (що ви сказали, що це не так).
— usr

1
Можливо, ви досягаєте обмеження розміру db експрес-видання sql.
— Бруно Мартінес

Відповіді:


17

Виконайте такі дії:

  1. Визначте, скільки місця ви хочете додати до розподілу сховища бази даних:
    1. Відкрийте Windows Explorer
    2. Клацніть правою кнопкою миші на диску, на якому існують файли вашої бази даних
    3. Виберіть властивості
    4. Перевірте, скільки місця на диску є, і вирішіть, яку частину цього ви хочете виділити для бази даних
      ( Пропозиція: Залиште принаймні 20% дискового простору, якщо ви зберігаєте файли бази даних на тому ж диску, що і ваша ОС { Sub-Suggestion : Don Зробіть це! Перебудуйте / перенесіть свої дані на власний диск; ви накручуєтесь на введення-вивід.} і залишаєте принаймні 8% для чистого диска даних; ці цифри - це оцінки, наскільки я думаю, що фактичні пропозиції відсотків є. )
  2. Оновіть розподіл пам’яті для бази даних.
    1. Відкрити SSMS
    2. Перейдіть на вкладку «Перегляд»
    3. Виберіть "Провідник об'єктів"
    4. Розгорніть папку «Бази даних»
    5. Клацніть правою кнопкою миші базу даних, у яку намагаєтеся вставити об’єкт
    6. Виберіть "Властивості"
    7. Клацніть опцію списку "Файли" в області "Вибрати сторінку" зліва від вікна властивостей
    8. Знайдіть рядок "Файли бази даних" разом із "Файловою групою" як "ПЕРВИЧНИЙ"
    9. Додайте будь-яку кількість мегабайт, яку ви хочете додати до розподілу бази даних, до номера "Початковий розмір (МБ)"
    10. Натисніть "ОК"
      ( Ви також можете врахувати значення "Автозростання", перебуваючи тут. )

Ви хочете дати вашій базі даних стільки, скільки ви можете дозволити їй надати. Якщо у вас не вистачає місця, ви отримаєте цю помилку без автоматичного зростання, і якщо автоматично зростати, ви отримуватимете показник ефективності кожного разу, коли він повинен автоматично зростати. Якщо у вас просто немає місця на диску, то це ваша відповідь, і вам потрібен більший диск.


1
Чи не всі ми хочемо більших дискотек? : P
— Санта

12

Експрес-версія 2014 має обмеження в 10 ГБ на базу даних. Якщо автоматичне зростання бази даних потрапляє в цю точку, SQL Server видає (неясне?) Повідомлення про помилку, не згадуючи ліміт ліцензії. Дискового простору може бути багато, але ви все одно бачите це повідомлення.

Усунення, якщо дизайн дозволяє: використовувати декілька баз даних за цією ліцензією.


1

Бази даних часто не мають місця, коли вони перебувають у повному режимі відновлення. Якщо ви не робите транзакцій і резервного копіювання вручну достатньо, ви можете змінити режим відновлення на простий.

Можливо, вам також знадобиться відновити простір з файлу журналу. . . його можна спорожнити, але все ж використовувати простір.

Однак вам краще задати це питання тимчасовим особам, які можуть запропонувати більше рішень.


Це не проблема невдалого зростання журналу. Не вдалося збільшити дані.
— usr

@usr. . . Вони, ймовірно, займають той самий базовий простір на диску. Проблема - нестача місця на диску.
— Гордон Лінофф

Він каже, що доступний простір на диску. Я відверто запитав, бо мені теж було підозріло.
— usr

Скільки місця на диску є вільним? Який поточний розмір усіх файлів у первинній групі файлів та яке налаштування їх росту? Можливо, приріст зростання більший, ніж наявний вільний простір.
— user9164

1

На мій досвід, це повідомлення виникає, коли в первинному файлі (.mdf) немає місця для збереження метаданих бази даних. Цей файл містить системні таблиці, і вони зберігають у ньому лише свої дані.

Зробіть трохи місця у файлі, і команди знову працюють. Ось і все, насолоджуйтесь


0

Щоб вирішити Початкову групу файлів повна помилка, перейдіть до власності бази даних -> Файли -> Файли баз даних -> Файлова група "ПРИМІТНИЙ" -> Автозростання / Максимальний розмір і зміна файлової групи баз даних Імена в Мегабайти до 1, Максимальна перевірка розміру файлу необмежена, а потім Ок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.