Основна група файлів - повна 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.