MSSQLSERVER_3056
适用于:SQL Server
详细信息
Attribute | 值 |
---|---|
产品名称 | SQL Server |
事件 ID | 3056 |
事件源 | MSSQLSERVER |
组件 | SQLEngine |
符号名称 | DMPDB_INVALID_FSDATA |
消息正文 | 备份操作检测到 FILESTREAM 容器中存在意外的文件。 备份操作将继续,并将包括文件 '%ls'。 |
说明
如果 FILESTREAM 容器 (文件夹) 下存在SQL Server创建的文件,则会引发错误 3056。 备份操作将包括该文件,但这将导致数据库中的文件流组件状态不一致。
警告
FILESTREAM 容器是由 SQL Server 管理的文件夹。 不要添加或删除 FILESTREAM 文件夹中的文件
用户操作
错误消息包括意外文件的名称。 调查此文件在此文件夹中的结束方式。
终止备份并确保此数据库的先前备份不会被覆盖或丢失
针对备份失败并出现错误 3056 的数据库运行完整的 DBCC CHECKB。 不要与 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,则表示除了添加外部文件无效之外,SQL Server FILESTREAM 文件夹已损坏或篡改。 无法手动修复这种情况
- 检查硬件是否有任何问题并解决
- 确保系统受到恶意软件保护。 请注意,应从防病毒软件扫描中排除 FILESTREAM 数据文件。 请参阅 有关提高 FILESTREAM 性能的建议和指南
- 然后从正常的数据库备份还原
运行 DBCC CHECKDB
如果运行 DBCC CHECKDB,它可能会报告错误 7908 或 7906,但无法修复它。
从备份还原
如果问题与硬件无关,并且有可用的已知干净备份,请从备份还原数据库
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈