Устранение ошибок, 17204 и 17207 в SQL Server

Переводы статьи Переводы статьи
Закрыть Закрыть
Код статьи: 2015754 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

При могут появиться следующие сообщения об ошибках в журнал ошибок SQL Server или событий приложений Windows SQL Server не удалось запустить базу данных, поскольку его не удается открыть файлы журнала транзакций и базы данных:
2010-03-27 14:21:34.58 spid52 ошибка: 17204, уровень серьезности: 16, состояние: 1.
2010-03-27 14:21:34.58 spid52 FCB::Open ошибка: не удалось открыть файл c:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\data\MyDB_Prm.mdf для файла под номером 1. Ошибки операционной системы: 5 (доступ запрещен.).
2010-03-27 14:21:34.65 spid52 ошибка: 17207, уровень серьезности: 16, состояние: 1.
2010-03-27 14:21:34.65 spid52 FileMgr::StartSecondaryDataFiles: произошла ошибка операционной системы 2 (система не может найти указанный файл.) при создании или открытии файла "F:\MSSQL\DATA\MyDB_FG1_1.ndf". Диагностика и исправление ошибки операционной системы и повторите операцию.
Эти ошибки могут возникнуть во время процесса запуска экземпляра SQL Server или любой операции базы данных, которая пытается запустить базу данных [например инструкции ALTER DATABASE]. В некоторых случаях могут возникнуть ошибки и 17204 и 17207 и в других случаях можно просто столкнуться один из них.
Если пользовательская база данных обнаруживает эти ошибки, эта база данных остается в состоянии RECOVERY_PENDING и приложения не могут получить доступ к этой базы данных. Если системная база данных обнаруживает эти ошибки, экземпляр SQL Server не будет запущен и не может подключиться к этому экземпляру SQL Server. Это может также привести ресурсу отказоустойчивого кластера SQL Server для переходят в автономный режим.

Причина

Перед использованием любой базы данных SQL Server, база данных должна быть запущена. Время запуска базы данных заключается в инициализации различных структур данных, представляющие базу данных и файлы базы данных, открывать все файлы, относящиеся к базе данных и наконец выполнение восстановления базы данных. SQL Server использует Windows API CreateFile для открытия файлов, которые принадлежат к базе данных.
Сообщения об ошибках 17204 и 17207 показывают, что произошла ошибка при попытке открыть файл базы данных во время запуска SQL Server.
Эти сообщения об ошибках содержат следующие сведения:
  1. Имя функции SQL Server, который пытается открыть файл
    • Сведения о состоянии отличает несколько мест внутри функции, которая может генерировать данное сообщение об ошибке
  2. Полный физический путь к файлу
  3. Идентификатор файла, соответствующий файл
  4. ОС Код и ошибку описание ошибки. В некоторых случаях будет предоставляться только коду ошибки.
Сведения об ошибках операционной системы, в сообщении об ошибке является обычной вызвать, результаты в сообщении об ошибке. Наиболее распространенные причины возникновения этих эти сообщения об ошибках являются проблемы с правами или неправильное расположение или путь проблему.

Решение

  1. Устранение этих ошибок, связанных с кодом ошибки операционной системы и диагностике ошибок, 17207 и 17204. После разрешения ошибки операционной системы может попытаться перезапустить базу данных (например с помощью инструкции ALTER базы данных SET ONLINE) или экземпляр SQL Server для подключения через Интернет затронутые базы данных. Возможны ситуации, где не может устранить ошибку операционной системы. В этих случаях необходимо предпринять определенные действия по исправлению. Будут обсуждаться более об этих действий в этом разделе.
  2. Если сообщение об ошибке 17204 или 17207 содержит только код ошибки, а не описание ошибки, то можно попробовать решить код ошибки, с помощью команды оболочки операционной системы: net helpmsg < код_ошибки >. Если вы получаете код состояния из 8, код ошибки, можно обращаться к источникам данных, таких как http://support.microsoft.com/kb/186063 и http://blogs.msdn.com/oldnewthing/archive/2006/11/03/942851.aspx для декодирования эти коды состояния подразумевают.
  3. Если вы получаете «доступ запрещен» операционной системной ошибки рассмотрим эти методы:
    • Проверьте разрешения, устанавливаемые файла при просмотре свойств файла в проводнике Windows. SQL Server использует группы Windows для управления доступом в различных файловых ресурсов выделения ресурсов. Убедитесь, что соответствующие группы [с именами вроде SQLServerMSSQLUser$имя_компьютера$MSSQLSERVER илиимя_компьютера$ SQLServerMSSQLUser $имя_экземпляра] имеет необходимые разрешения на файл базы данных, указанное в сообщении об ошибке. Просмотрите раздел электронной документации «Параметр настройки учетных записей Windows» для получения дополнительных сведений. Убедитесь в том, что группа Windows фактически включает стартовой учетной записи службы SQL Server или идентификатор безопасности службы.
    • Просмотрите учетную запись пользователя, под которой выполняется служба SQL Server. Диспетчер задач можно использовать для получения этой информации. Найдите значение «User Name» для исполняемого файла «файл». Также была изменена учетная запись службы SQL Server, имейте в виду, единственный поддерживаемый способ выполнения этой операции является использование служебной программы диспетчера конфигурации SQL Server. Дополнительные сведения об этом в «Диспетчер конфигурации SQL Server».
    • В зависимости от типа операции [Открытие баз данных во время запуска сервера базы данных присоединения, восстановления, и т.д] учетной записи пользователя, которая используется для олицетворения и доступа к файлу базы данных будут отличаться. Просмотрите раздел «Защита данных и файлов журналов"понять, какие операции задает какое разрешение и на какие счета. Понять, если доступ к файлам происходит в контексте безопасности стартовая учетная запись SQL Server экземпляра службы [или идентификатор безопасности службы] или олицетворенную учетную запись с помощью средства вроде Windows SysInternals монитор «процесс».
  4. Если вы получаете сообщение об ошибке «системе не удается найти указанный файл»
    • Ознакомьтесь с полным путем из сообщения об ошибке
    • Убедитесь, что жесткий диск и путь к папке видимы и доступны из проводника Windows
    • Просмотрите журнал событий Windows, чтобы узнать, если существуют проблемы с этого диска
    • Если путь неверен, и эта база данных уже существует в системе, можно изменить пути к файлам базы данных, используя методы, изложенные в разделе «Перемещение файлов базы данных». Может потребоваться использовать эту процедуру для базы данных имеются системные файлы 17204 или 17207, при работе через ситуации аварийного восстановления, где указанный дисков недоступны. В этом разделе также объясняется, как определить текущее расположение различных системных баз данных [master, модель, базы данных tempdb, msdb и mssqlsystemresource].
    • При возникновении этой ошибки, из-за отсутствия файлов базы данных, необходимо восстановить базу данных из правильной архивной копии.
      • Если файл базы данных, который встречает ошибку принадлежит вторичную файловую группу, а затем при необходимости можно пометить этой автономной файловой группе, перевести базу данных в оперативный режим, а затем выполните восстановление этой файловой группе отдельно. Для получения дополнительных сведений обратитесь к АВТОНОМНОЙ области раздела «Параметры файловой группы (Transact-SQL) и ИЗМЕНЯТЬ файл базы данных».
      • Если файл, который столкнуться с проблемами файла журнала транзакций, просмотрите сведения в разделах «Для ПРИСОЕДИНЕНИЯ» и «FOR ATTACH_REBUILD_LOG» раздела «CREATE DATABASE (Transact-sql)», понять, каким образом можно восстановить отсутствующие файлы журнала транзакций.
    • Убедитесь, что любой диск или в сетевую папку [как диск iSCSI] доступен до SQL Server пытается получить доступ к файлам базы данных в этих местах. При необходимости создать обязательные зависимости в администратор кластеров» или «диспетчер управления службами.
  5. Если вы получаете сообщение об ошибке «Нет доступа к файлу, так как он используется другим процессом»
    • Использовать средство вроде «Process Explorer» из Windows SysInternals для поиска, если другой процесс или служба получила монопольную блокировку для этого файла базы данных
    • Остановить этот процесс от доступа к файлам базы данных SQL Server
    • В среде кластера убедитесь, что процесс sqlservr.exe из предыдущего владельца узла фактически выпустила дескрипторы файлов базы данных.

Дополнительная информация

Имена функций, обычно вы увидите в сообщении об ошибке будет одним из следующих:
  • FCB::Open
  • FileMgr::StartPrimaryDataFiles
  • FileMgr::StartSecondaryDataFiles
  • FileMgr::StartLogFiles
  • STREAMFCB::Startup
  • FCB::RemoveAlternateStreams
Эти имена могут помочь определить, если встречает hat файл, произошла ошибка при выполнении SQL Server пытается открыть, является файлом базы данных [первичный файл данных, файлов, принадлежащих к первичной файловой группы, файлы, относящиеся к группе дополнительного файла, файл журнала транзакций] или контейнера SQL FileStream.
Если проблема связана с вашей файловая группа SQL Server FileStream, затем можно будет заметить, вместо имени файла указан только полный путь каталога. Ниже приведен пример.
2010-03-27 15:25:14.32 spid52 ошибка: 17207, уровень серьезности: 16, состояние: 1.
2010-03-27 15:25:14.32 spid52 STREAMFCB::Startup: произошла ошибка операционной системы 2 (система не может найти указанный файл.) при создании или открытии файла "C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\bpa_files_test_fs_1\bpa_files_test_fs_1 ". Диагностика и исправление ошибки операционной системы и повторите операцию.
Если сообщение об ошибке ссылается на FCB::RemoveAlternateStreams, на известную проблему, можно создать это сообщение:
Может появиться "FCB::RemoveAlternateStreams: ошибка операционной системы < номер ошибки >» при запуске базы данных на экземпляре SQL Server 2005 или SQL Server 2008
При возникновении этих проблем связи с антивирусное программное обеспечение, сканирование файлов базы данных, ознакомьтесь с рекомендациями из
Рекомендации по выбору антивирусного программного обеспечения на компьютерах, работающих под управлением SQL Server
Если SQL Server олицетворяет учетные данные входа, которая выполняет операции CREATE DATABASE или ALTER DATABASE, то можно заметить следующие сведения в программе Process Monitor от компании SysInternals Windows:
Дата и время: 8:26:08 3/27/2010 PM
Класс событий: файловой системы
Операция: CreateFile
Результат: ОТКАЗАНО в доступе
Путь: C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\attach_test.mdf
TID:                   4288
Длительность: 0.0000366
Требуемый доступ: универсальный чтения/записи
Диспозиция: открыть
Параметры: синхронного ввода-ВЫВОДА не оповещение не каталог файл открыть не отзывов
Атрибуты: n
ShareMode: чтения
AllocationSize: н/д
Олицетворения: : Имя_домена\имя_пользователя
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 2015754 - Последний отзыв: 30 мая 2011 г. - Revision: 8.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Ключевые слова: 
kbmt KB2015754 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2015754

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com