SQL Server 2005 Checkdb - нет места для файлов снимков
У меня есть база данных 2Tb+ SAP с 8 файлами данных, первые файлы увеличились, чтобы заполнить доступное дисковое пространство на нашем HP EVA5000, и теперь рост новых файлов. Мы обновили SQL с SQL Server 2000 до 2005, и Checkdb работает по-другому, и теперь не удается создать моментальный снимок. Мы добавили 50Gb к каждому файлу в качестве временной меры, пока мы создаем новую подсистему ввода / вывода. Вопрос: как мы можем отслеживать использование снимков? Что произойдет, если Checkdb запустится, теперь у него будет больше места, а затем заполнится? и вы можете отменить CheckDb, если вы видите, что он будет исчерпан?
2 ответа
Ох, я только что прочитал эту последнюю ночь в книге по внутренним компонентам SQL Server 2008 (спасибо Полу Рэндалу). Если места не хватает, снимок удаляется. Я имею в виду, что в SQL 2005+ внутренний движок фактически создает закадровый снимок и запускает checkdb для этого. Вы не можете получить доступ к этому снимку, так как он невидим для вас, но он все еще занимает место в файловой системе, в которой находятся файлы. Если у него недостаточно места для создания этого системного снимка, он выдаст ошибку и откат этого снимка.
Что вы можете сделать, это вручную создать снимок базы данных на другом томе, на котором достаточно места, и запустить checkdb для этого. Ваши результаты должны быть действительными, так как снимок - это просто набор различий в изменениях страниц по отношению к базовым данным. Я уверен, что Пол мог бы ответить на это более красноречиво, но это основная суть этого.
Также да, вы можете отменить запущенный запрос checkdb.
Посмотрите на эту статью в блоге Пола, которая отвечает на ваши вопросы: