我在一个客户那里,他在使用 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 失败。我们试图弄清楚为什么默认情况下它会从 ON 变为 OFF。
在问这里之前,我试图在网上找到一些关于此的信息。
谢谢!
PS 如果您想了解为什么 DBCC CHECKDB 使用快照的背景知识,请参阅我在CHECKDB From Every Angle 上关于 CHECKDB 内部的长博文:所有 CHECKDB 阶段的完整描述。
保罗,
这家伙似乎在运行那个版本的 Polyserve
http://www.lifeasbob.com/2008/12/31/SQLServer2005SP3.aspx
Rgds
我找到了答案。如果您安装 3.6.1,那么您就可以了。如果您从早期版本升级,您需要通过一个名为 psfscheck 的命令显式启用备用流,该命令为每个卷启用它们。他们的支持还说您可以使用此命令启用 8.3 名称支持 - 这让我相信他们只是在幕后调用 NTFS fsutil 命令。
不幸的是,它需要强制卸载 PS 卷才能执行此操作。好的。
感谢那些做出回应的人。
PS 支持文档的链接在这里
我们正在运行 3.6.1,并且 SQL 2005 DBCC 作业没有任何问题。你知道这个设置在 Polyserve 的哪里修改,所以我可以看看我们的设置是否已经启用?
编辑:关于你的答案。我们的是全新的 3.6.1 安装,而不是升级,所以这似乎与您发现的相符。