MSSQLSERVER_3056
Область применения: SQL Server
Сведения
Атрибут | Значение |
---|---|
Название продукта | SQL Server |
ИД события | 3056 |
Источник событий | MSSQLSERVER |
Компонент | SQLEngine |
Символическое имя | DMPDB_INVALID_FSDATA |
Текст сообщения | При резервном копировании в контейнере FILESTREAM обнаружен непредвиденный файл. Операция резервного копирования будет продолжена, копия будет содержать файл "%ls". |
Описание
Ошибка 3056 возникает, если файлы существуют в контейнере FILESTREAM (папка), не созданном SQL Server. Операция резервного копирования будет включать этот файл, но это приведет к несогласованности состояния компонентов файлового потока в базе данных.
Предупреждение
Контейнер FILESTREAM — это папка, управляемая SQL Server. Не добавляйте или не удаляйте файлы в папке FILESTREAM
Действие пользователя
Сообщение об ошибке содержит имя неожиданного файла. Узнайте, как этот файл оказался в этой папке.
Завершение резервного копирования и обеспечение того, чтобы предыдущие резервные копии для этой базы данных не были перезаписаны или потеряны.
Запустите полную проверку DBCC для базы данных, для которой сбой резервной копии с ошибкой 3056. Не используйте physical_only
Тщательно просмотрите выходные данные DBCC CHECKB; Ошибки могут обнаруживаться на разных этапах и быть сотнями строк для одних и того же объекта
- Последние строки выходных данных CHECKDB дают сводное количество ошибок. Убедитесь, что вы нашли отдельное сообщение для каждой из подсчитаемых ошибок.
- Вы найдете ошибку, аналогичную этой, в нижней части:
CHECKDB found 1 allocation errors and 1 consistency errors in database 'AG_Filestream'.
Если сообщается только об ошибках 7908 или 7906, можно найти фактические файлы, сообщаемые в ошибке. Ошибки могут выглядеть следующим образом:
Msg 7906, Level 16, State 1, Line 8 Database error: The file "\782fc3bb-dc63-4ab8-9de6-e9dfa36454d2\NO_USER_FILE_SHOULD_BE_HERE.txt" is not a valid FILESTREAM file in container ID 65537. Msg 7908, Level 16, State 1, Line 8 Table error: The file "\782fc3bb-dc63-4ab8-9de6-e9dfa36454d2\NO_USER_FILE_SHOULD_BE_HERE.txt" in the rowset directory ID 3068163f-7398-4ae7-843c-67672e29c37e is not a valid FILESTREAM file in container ID 65537.
Примечание.
Рекомендуется протестировать эти действия в резервной копии или тестовой копии базы данных, прежде чем пытаться выполнить их в рабочей системе.
Чтобы найти файлы, выполните следующую команду, чтобы найти физическую папку группы FILESTREAM.
SELECT name, physical_name, state_desc, type_desc FROM sys.database_files WHERE type_desc = 'FILESTREAM'
В проводнике Windows откройте вложенную папку, указанную в ошибке 7906 или 7908 (например, \782fc3bb-dc63-4ab8-9de6-e9dfa36454d2)
Затем найдите файл, указанный в сообщении об ошибке (например, NO_USER_FILE_SHOULD_BE_HERE.txt), и создайте копию этого файла во временный каталог в качестве резервной копии.
Убедившись, что у вас есть копия, вы можете удалить файл из папки.
Выполните действия, чтобы понять, почему и как этот файл был добавлен в эту системную папку и предпринять шаги, чтобы предотвратить дальнейшее вхождение
- Убедитесь, что необходимые разрешения доступны для доступа пользователей к этой папке FILESTREAM.
- Понимание и проверка того, что приложения не создают файлы в папках FILESTREAM.
Запустите новую базу данных DBCC CHECKDB и убедитесь, что она не вызывает никаких ошибок.
Если существуют другие ошибки CHECKDB, включая 7903 7904 7905 7907, то произошла ошибка или изменение папки FILESTREAM SQL Server за пределами простого недопустимого добавления внешних файлов. Эта ситуация недоступна вручную
- Проверьте оборудование для любых проблем и устраните их
- Убедитесь, что система защищена от вредоносных программ. Обратите внимание, что файлы данных FILESTREAM должны быть исключены из антивирусного сканирования программного обеспечения. Рекомендации и рекомендации по улучшению производительности FILESTREAM
- Затем восстановление из работоспособной резервной копии базы данных
Запуск DBCC CHECKDB
Если вы запускаете DBCC CHECKDB, он может сообщить об ошибке 7908 или 7906, но не удается восстановить ее.
Восстановление из резервной копии
Если проблема не связана с оборудованием, а известная чистая резервная копия доступна, восстановите базу данных из резервной копии.