Не вдалося відновити індекс SQL Server 2008 R2 із суворістю 17


12

Іноді під час нашого обслуговування індексу завдання не вдасться з помилкою 17 SEV, коли не можна виділити достатньо місця для об'єкта, який він відновлює. База даних складається так:

Data_file1    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file2    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file3    PRIMARY    0 growth         Less than 1% free      Max Size UNLIMITED
Data_file4    PRIMARY    250 MB growth    Less than 1% free      Max Size UNLIMITED

По суті, 3 з 4 файлів даних заповнені і не дозволяють рости, четвертий - повний і дозволено рости. Файли розкинуті по різних LUN (і причина, чому це брудно). Отже, коли розпочнеться перебудова індексу в Інтернеті, я розумію, що якщо потрібен додатковий простір, він переросте в Data_file4 і буде добре, але, мабуть, намагається перерости в інший файл, де зростання не дозволений і не вдається. Я не в змозі відтворити цю помилку, але мені було цікаво, чи хтось розуміє, чому це відбувається.

Повна версія SQL Server - це 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Ми використовуємо сценарії відновлення Ola Hallengren, де ми відновлюємо роботу в Інтернеті, але не робимо ніякого роду tempdb.


Чи вказаний максимальний розмір файлу? Документи кажуть: If max_size is not specified, the file size will increase until the disk is full.Дозволено, якщо автоматичний ріст вимкнено, це не слід намагатися виділити з цих файлів ( A value of 0 indicates that automatic growth is set to off and no additional space is allowed.), але може виникнути помилка, тому не завадить спробувати його, якщо він не встановлений.
Джон Сейгель,

max_size isВ даний час встановлено НЕЗАГАЛЬНО, навіть на тих, які зростають на 0. Я зараз розслідую це у своєму тесті на запитання.
Майк Фаль,

Ви реєструєте результати? Якщо ви зберігаєте історичні записи, чи виникає помилка на одному і тому ж індексі щоразу, коли вона не працює?
Cougar9000

На скільки сторінок йдеться про індекс?
Марк Вілкінсон

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

Відповіді:


1

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

Ви повинні отримувати помилку лише тоді, коли індекс, який є занадто великим для розміщення відображень (копія), перебудовується - наприклад, один раз він може бути достатньо фрагментарним, щоб отримати право на сценарій Ola, і наступного разу він може не бути.

Є чудова стаття http://technet.microsoft.com/en-us/library/ms179542(v=sql.105).aspx, яку мені довелося прочитати кілька разів, коли наштовхувався на проблеми з дисковим простором з індексами.

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