I'm onsite at a customer who's experienced a weird problem with HP PolyServe and SQL Server 2005 and I'm wondering whether anyone else has hit it.
The problem is that with default settings, a DBCC CHECKDB will fail on a database underpinned by PolyServe managed storage. This is because DBCC CHECKDB (by default) uses a hidden database snapshot which it stores in NTFS alternate streams on the existing database data files, and PolyServe by default doesn't support NTFS alternate streams.
Now - I know why this happens (I wrote DBCC CHECKDB) and I know how to work around it (create your own snapshot and check that, or restore a backup and check that, or use WITH TABLOCK as a last resort) - so I don't want answers that explain these things.
What I'd love to know is the following:
- why does PolyServe not support NTFS alternate streams by default?
- what functionality do you lose in PolyServe by enabling NTFS alternate stream support?
- has anyone else experienced this?
Edit: Btw - the last upgrade to PolyServe 3.6.1 was what turned the option OFF by default, which caused the DBCC CHECKDB failure. We're trying to figure out why it went from ON to OFF by default.
I tried to find some info on this online before asking here.
Thanks!
PS If you want background on why DBCC CHECKDB uses a snapshot, see my long blog post on CHECKDB internals at CHECKDB From Every Angle: Complete description of all CHECKDB stages.
Paul,
This guy seems to be running that version of Polyserve
http://www.lifeasbob.com/2008/12/31/SQLServer2005SP3.aspx
Rgds
I found the answer. If you install 3.6.1 then you're ok. If you upgrade from an earlier version, you need to explicitly enable alternate streams via a command they call psfscheck that enables them per volume. Their support also says that you can use this command to enable 8.3 name support - which leads me to believe they're just calling the NTFS fsutil command under the covers.
Unfortunately it needs to force dismount the PS volume to do this. Nice.
Thanks to those who responded though.
PS The link to the support doc is here
We're running 3.6.1, and haven't had any issues with SQL 2005 DBCC jobs. Do you know where this setting is modified in Polyserve, so I can see if ours had already been enabled?
Edit: Regarding your answer. Ours was a fresh 3.6.1 install, not an upgrade, so that seems to match what you found.