我正在客户现场,他遇到了 HP PolyServe 和 SQL Server 2005 的一个奇怪问题,我想知道是否有其他人也遇到过这个问题。
问题在于,在默认设置下,DBCC CHECKDB 将在由 PolyServe 管理存储支持的数据库上失败。这是因为 DBCC CHECKDB(默认情况下)使用隐藏的数据库快照,并将其存储在现有数据库数据文件的 NTFS 备用流中,而默认情况下 PolyServe 不支持 NTFS 备用流。
现在 - 我知道为什么会发生这种情况(我写了 DBCC CHECKDB)并且我知道如何解决它(创建自己的快照并检查,或恢复备份并检查,或使用 WITH TABLOCK 作为最后的手段) - 所以我不想要解释这些事情的答案。
我想知道的是以下内容:
- 为什么 PolyServe 默认不支持 NTFS 备用流?
- 启用 NTFS 备用流支持后,PolyServe 中会失去哪些功能?
- 还有其他人经历过这种情况吗?
编辑:顺便说一句 - 上次升级到 PolyServe 3.6.1 时默认关闭了该选项,这导致 DBCC CHECKDB 失败。我们正在尝试找出为什么它默认从开启变为关闭。
在这里提问之前,我尝试在网上查找一些有关此问题的信息。
谢谢!
PS:如果你想了解 DBCC CHECKDB 使用快照的原因,请参阅我关于 CHECKDB 内部原理的长篇博客文章:CHECKDB 从各个角度:CHECKDB 所有阶段的完整描述。
答案1
答案2
我找到了答案。如果你安装 3.6.1,那么就没问题了。如果你从早期版本升级,则需要通过他们称为 psfscheck 的命令明确启用备用流,该命令按卷启用它们。他们的支持还说你可以使用此命令启用 8.3 名称支持 - 这让我相信他们只是在幕后调用 NTFS fsutil 命令。
不幸的是,需要强制卸载 PS 卷才能执行此操作。很好。
不过还是感谢那些回复的人。
PS 支持文档的链接是这里
答案3
我们运行的是 3.6.1,SQL 2005 DBCC 作业没有出现任何问题。您知道在 Polyserve 中修改此设置的位置吗?这样我就可以知道我们的设置是否已启用?
编辑:关于您的回答。我们的安装是全新 3.6.1,而非升级,因此这似乎与您的发现相符。