Не удалось выполнить оператор modify file файл не существует
Используя мастер импорта и экспорта SQL Server, я получаю эту ошибку:
Ошибка 0xc0202009: Поток данных Задача 1: Код ошибки служб SSIS DTS_E_OLEDBERROR.
Произошла ошибка OLE DB. Код ошибки: 0x80004005.
Не удалось выделить новую страницу для базы данных 'database' из-за недостатка места на диске в файловой группе 'PRIMARY'. Создайте необходимое пространство, удалив объекты в файловой группе, добавив дополнительные файлы в файловую группу или установив автоматический рост для существующих файлов в файловой группе.
Какой лучший обходной путь? Эти данные в конечном итоге займет около 60-80 ГБ.
Какую версию SQL Server вы используете? Сколько свободного места доступно на диске (дисках), где хранятся файлы данных для «базы данных»?
Брэндон, SQL SERVER 2012. 760 ГБ свободного места на диске, где хранятся файлы данных для базы данных. Кен, у меня включено автоматическое увеличение, автоматическое увеличение увеличивается на 2500 МБ, а максимальный размер неограничен. Должен ли я все еще сталкиваться с этой проблемой? Возможно ли, что есть несколько автостров, которые необходимо включить?
Может ли быть так, что autogrow работает только между элементами, а ОДНА вставка превышает лимит? Я бы поспорил - если 20000-гигабайтная вставка не срабатывает на 2500-гигабайтном автограве . может быть, есть 900 МБ свободной, и вставка не удалась.
Однажды я столкнулся с этой проблемой у клиента, и мне потребовалось время, чтобы разобраться.
какую версию sql вы используете?
Вы уверены, что это
Не удалось выделить новую страницу для базы данных 'database' из-за недостатка места на диске в файловой группе 'PRIMARY'.
Не удалось выделить новую страницу для базы данных «tempdb» из-за недостатка места на диске в файловой группе «PRIMARY».
Если он [tempdb] находится на отдельном диске, и вы уверены, что у вас достаточно места, я бы пошел дальше и размер файла данных соответствовал ожидаемому размеру конечного состояния:
Также убедитесь, что файл журнала базы данных отделен от файла данных. Если нет, то вы вернулись с конкурирующими событиями роста. Если они находятся на отдельных дисках, то я бы тоже прошел их по размеру.
пока вы не получите желаемый размер файла журнала. Давайте назовем это 80GB, где вы установите свой рост до определенного размера. Я использую значения, рекомендованные Полом Рэндалом и Кимберли Трипп
Что делать?? Подобная ошибка возникает и при других выгрузках.
(1) Ruslan-Proff,
Вам нужно вписать "Истина" вместо "Ложь"
ПолучитьФайлы(ПолучаемыеФайлы, ПолученныеФайлы, , Ложь )
И будет вам счастье =))
У Вас же файловая база, а не серверная. А так, наверное, платформенный механизм глобального контекста пытается работать с файлами по шаблонам серверных путей хранения временных файлов.Но сервера же нет)
Длинный какой-то у вас путь. Может создать на компе юзера папку и подключить диск на удаленке к этой папке. и когда надо будет выгружать - юзер просто выбирает эту папку?
Дело в правах доступа сервера к компьютеру пользователя. т.к. версия БП 3 то скорее всего запущена тонким клиентом. Попытайтесь с сервера попасть на комп пользователя и создать любой файл или папку по указанному пути.
А читать синтаксис-помощник не пробовали? =)))
Глобальный контекст (Global context)
ПолучитьФайлы (GetFiles)
Синтаксис:
(обязательный)
Тип: Массив.
Массив объектов типа ОписаниеПередаваемогоФайла.
Каждый объект описывает получаемый файл:
Хранение - расположение данных во временном хранилище или в информационной базе;
Имя - это локальный путь, по которому должен быть расположен получаемый файл. Это может быть либо полный путь, либо часть пути, которая будет объединена со значением параметра . Это также может быть имя файла или имя каталога (каталогов) + имя файла.
(необязательный)
Тип: Массив.
Массив объектов типа ОписаниеПереданногоФайла.
Каждый объект описывает получаемый файл:
Хранение - расположение данных во временном хранилище или в информационной базе;
Имя - это локальный путь, по которому должен быть расположен получаемый файл. Это может быть либо полный путь, либо часть пути, которая будет объединена со значением параметра . Это также может быть имя файла или имя каталога (каталогов) + имя файла.
(необязательный)
Тип: ДиалогВыбораФайла; Строка.
Определяет общее расположение помещаемых файлов в локальной файловой системе.
Может быть задан строкой, либо, заранее подготовленным, диалогом выбора файлов в режиме выбора каталога или сохранения файлов.
Тип: Булево.
Истина - задан интерактивный режим, в котором пользователю показывается диалог, в котором он может выбрать локальное расположение файлов.
Ложь - на сервер передается список файлов, описанный в параметре .
В интерактивном режиме строка, переданная в параметре рассматривается как начальное значения для выбора пути.
Значение по умолчанию: Истина
Возвращаемое значение:
Тип: Булево.
Истина - получен хотя бы один файл; Ложь - получение всех файлов отменено пользователем.
Описание:
Получает набор файлов и сохраняет их в локальную файловую систему пользователя.
Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
В веб-клиенте при работе в Firefox при выполнении метода до окончания загрузки выводится модальное окно с отображением процента получения файла. Выполнение метода заканчивается после окончания получения файла.
SQL Server не удалось открыть указанный файл из-за указанной ошибки ОС.
Если SQL Server не удается открыть базу данных и (или) файлы журнала транзакций, в событии приложения Windows или в журнале ошибок SQL Server может отобразиться ошибка 17204. Ниже приведен пример такой ошибки:
Эти ошибки могут возникнуть во время запуска экземпляра SQL Server или любой операции с базой данных, при которой выполняется попытка запустить базу данных (например, ALTER DATABASE). В некоторых сценариях могут возникать ошибки 17204 и 17207, а в некоторых — лишь одна из них.
Если такие ошибки происходят в пользовательской базе данных, она остается в состоянии RECOVERY_PENDING, а приложения не могут получить доступ к базе данных. Если такие ошибки происходят в системной базе данных, экземпляр SQL Server не запускается и вы не можете подключиться к SQL Server. Сбой системной базы данных может привести к переходу ресурса отказоустойчивого кластера SQL Server в автономный режим.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Сведения об исправлении
Исправление для SQL Server 2008 с пакетом обновления 3
Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.
Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.
Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.
Информация о накопительном пакете обновления
Накопительное обновление для SQL Server 2008 R2 Пакет обновления 2 8
Исправление этой уязвимости первого выпуска накопительного обновления 8. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 Пакет обновления 2 щелкните следующий номер статьи базы знаний Майкрософт:
2871401 накопительного обновления 8 для SQL Server 2008 R2 Пакет обновления 2Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 R2 Пакет обновления 2 выпуска исправлений. Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
2730301 SQL Server 2008 R2 выполняет построение, выпущенных после выпуска SQL Server 2008 R2 Пакет обновления 2
Временное решение
Чтобы обойти эту проблему, используйте file_id в инструкции dbcc shrinkfile . Для получения идентификатора файла используйте функцию FILE_IDEX системы или запрос к представлению каталога sys.database_files текущей базы данных.
Похожие вопросы
Пакет обновления информации
Чтобы решить эту проблему, примените SP4 Microsoft SQL Server 2008. Дополнительные сведения о получении SQL Server SP4 2008 щелкните следующий номер статьи базы знаний Майкрософт:
Информация о выпуске 2979596 Пакет обновления 4 для SQL Server 2008
Действие пользователя
Для устранения ошибки 17204 необходимо узнать соответствующий код ошибки операционной системы. А затем выполнить диагностику этой ошибки. После устранения ошибки операционной системы можно попытаться перезапустить базу данных (например, с помощью инструкции ALTER DATABASE SET ONLINE) или экземпляр SQL Server, чтобы перевести затронутую базу данных в режим "в сети". Иногда устранить ошибку операционной системы не удается. В таком случае необходимо выполнить определенные корректирующие действия. Мы обсудим их в этом разделе.
В случае возникновения ошибки операционной системы 5 ( Access is Denied ), рассмотрите следующие методы устранения:
Проверьте учетную запись пользователя, от имени которой сейчас запущена служба SQL Server. Для получения этих сведений можно использовать диспетчер задач Windows. Найдите значение "Имя пользователя" для исполняемого файла "sqlservr.exe". Если вы недавно изменили учетную запись службы SQL Server, поддерживаемым способом выполнения этой операции является использование служебной программы "Диспетчер конфигурации SQL Server". Дополнительные сведения см. в статье Диспетчер конфигурации SQL Server.
В зависимости от типа операции — открытие баз данных во время запуска сервера, присоединение базы данных, восстановление базы данных и т. д. — учетная запись, используемая для олицетворения и получения доступа к файлу базы данных, может варьироваться. Сведения о том, какая операция позволяет задавать разрешения к каким учетным записям, см. в статье Защита данных и файлов журналов. Используйте такие средства, как Process Monitor, чтобы узнать, каким образом предоставляется доступ к файлу: в контексте безопасности учетной записи запуска службы экземпляра SQL Server (или идентификатора безопасности службы) либо олицетворенной учетной записи.
Если SQL Server олицетворяет учетные данные пользователя, выполняющего операцию ALTER DATABASE или CREATE DATABASE, в средстве Process Monitor отобразятся следующие сведения (пример):
Если вы получаете ошибку ОС The system cannot find the file specified = 3
Если возникает ошибка операционной системы The process cannot access the file because it is being used by another process = 32
Популярные теги
Причина
Прежде чем можно будет использовать базу данных SQL Server, ее необходимо запустить. Процесс запуска базы данных включает в себя следующее:
- инициализацию различных структур данных, представляющих базу данных и ее файлы;
- открытие всех файлов, принадлежащих к базе данных;
- выполнение восстановления базы данных.
SQL Server использует функцию API CreateFile в Windows для открытия файлов, принадлежащих базе данных.
- В FCB::Open — произошла ошибка при попытке SQL Server открыть файл.
- FileMgr::StartPrimaryDataFiles — первичный файл данных или файл, принадлежащий первичной файловой группе.
- FileMgr::StartSecondaryDataFiles — файл, принадлежащий вторичной файловой группе.
- FileMgr::StartLogFiles — файл журнала транзакций.
- STREAMFCB::Startup — контейнер SQL FileStream.
- FCB::RemoveAlternateStreams
Полный физический путь к файлу.
Идентификатор файла, соответствующий файлу.
Код ошибки операционной системы и описание ошибки. В некоторых экземплярах вы увидите только код ошибки.
Решение
Дополнительные сведения
Дополнительные сведения об использовании инструкции dbcc shrinkfile посетите следующий веб-узел TechNet:
Как использовать «инструкция dbcc SHRINKFILE»Дополнительные сведения о том, как используется функция FILE_IDEX системы, перейдите на следующий веб-узел TechNet:
Author: troymoen; jannaw
Writer: v-shysun
Технический редактор: troymoen; bfong; ajayj; jannaw
Editor: v-mordew
Я пытаюсь сжать файл базы данных, но я запутался в ошибках.
Использование file_id из sys.database_files работает, но использование логического имени файла приводит к ошибке.
В обоих утверждениях логическое имя файла одинаково, поэтому это не может быть проблемой. Кроме того, база данных, к которой подключается, одинакова. Следующее работает как ожидалось:
. приведет к ошибке 8985:
Msg 8985, уровень 16, состояние 1, строка 1
Не удалось найти файл «XY» для базы данных «» в sys.database_files. Файл либо не существует, либо был удален.
Пересмотренный мой ответ, тестирование не показало, что это действительная причина, по которой он не работает.
Несколько вещей, чтобы проверить
- Есть ли в имени файла ведущие или конечные пробелы?
- Вы недавно обновились до SP3?
Попробуйте переключить модель восстановления с полной, на простое, обратно до полной. При обновлении до SP3 появляется явная ошибка. Изменение модели восстановления приведет к сбросу номера последовательности журналов и по какой-либо причине устраняет проблему, по крайней мере временно.
Посмотрев на ответ и ссылку, предоставленную @ Cougar9000: Да, мы недавно обновились до SP3! Затем я переключил модель восстановления от простого к полному и обратно к простому. И тогда утверждение
Кто-нибудь знает, что здесь происходит? Это ошибка?
Вам нужно проверить, совпадает ли логическое имя файла в обоих местах sys.master_files и sys.database_files. В этом случае это будет по-другому. Затем просто измените базу данных, дающую файлу новое логическое имя, которое вам нравится. Обе таблицы будут обновляться, а затем вы можете сжимать графический интерфейс или использовать логическое имя файла. У меня была такая же ошибка в SQL Server 2012, это исправило проблему.
, используя вашу базу данных, а затем мастер db. Файлы журнала и базы данных вашего db будут отображаться только тогда, когда вы используете свой db.
оба работают до тех пор, пока вы используете одну и ту же базу данных.
Я попробовал все вышеперечисленное и все еще имел проблему. База данных называлась clientdatabase , а файл журнала clientdatabase_log .
Мне удалось решить эту проблему, переименовав логическое имя файла журнала:
Теперь запущен скрипт для сокращения журнала транзакций (с новым логическим именем).
Я писал об этом здесь:
Читайте также: