更新了 3 倍
我正在使用 FILESTREAM,但在垃圾收集方面遇到了问题。当我将该列设置为空时,未清理 FILESTREAM 文件。
在事件日志中,有大量这样的错误:
Internal FILESTREAM error: failed to access the garbage collection table.
这是此页面上的错误号 5571:http: //msdn.microsoft.com/en-us/library/cc645602.aspx
使用这篇博文,我已经确认存在一个“墓碑”表,但我无法查询它(
Invalid object name 'sys.filestream_tombstone_xxxxxxx'.
)我没有删除行,而是将 FILESTREAM 列设置为 null,根据这篇msdn 文章:“当 FILESTREAM 字段设置为 NULL 时,与该字段关联的 BLOB 数据将被删除。”
数据库位于本地驱动器上。
数据库正在使用简单恢复。
CHECKPOINT
当活动非常低时,我执行了许多s。这似乎什么也没做。该错误消息似乎表明 FILESTREAM 垃圾收集器正在尝试进行垃圾收集,但无法访问该表以找出该做什么。SQL Server 2008(10.0.2531.0,SP1,企业版
我可以在 SQL Server 日志或事件日志中看到 5571 错误之前没有其他错误。
DBCC CHECKDB
检测到错误。我该怎么办?
DBCC results for 'sys.filestream_tombstone_1819153526'.
Msg 8951, Level 16, State 1, Line 1
Table error: table 'sys.filestream_tombstone_1819153526' (ID 1819153526). Data row does not have a matching index row in the index 'FSTSNCIdx' (ID 2). Possible missing or invalid keys for the index row matching:
Msg 8955, Level 16, State 1, Line 1
Data row (4:4712151:3) identified by (oplsn_fseqno = 62856 and oplsn_bOffset = 82647 and oplsn_slotid = 2) with index values 'file_id = 65537 and rowset_guid = '3F972309-9B0B-4C4F-939A-5618897050B4' and column_guid = '4A143C0D-B877-494E-B1E6-B70B0A834BB6' and oplsn_fseqno = 62856 and oplsn_bOffset = 82647 and oplsn_slotid = 2'.
There are 209624 rows in 3382 pages for object "sys.filestream_tombstone_1819153526".
问题:
应该如何设置权限才能使 FILESTREAM 工作?其他人可以访问此服务器,并且此数据库可能已在某个时候从备份中恢复。
如何检查 FILESTREAM (Windows) 共享/容器帐户权限以及运行 SQL Server 的帐户?
感谢@vgv8 提示提供更多信息和想法。