{"id":1088,"date":"2008-02-04T06:36:34","date_gmt":"2008-02-04T06:36:34","guid":{"rendered":"\/blogs\/paul\/post\/Search-Engine-QA-14-Beware-3rd-party-file-system-drivers-with-DBCC-CHECKDB.aspx"},"modified":"2014-06-19T09:42:29","modified_gmt":"2014-06-19T16:42:29","slug":"search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/","title":{"rendered":"Search Engine Q&#038;A #14: Beware 3rd party file-system drivers with DBCC CHECKDB"},"content":{"rendered":"<p>Here&#8217;s an issue that I thought was a one-off but it just popped up again over the weekend so I want to publicize it.<\/p>\n<p>DBA runs a DBCC CHECKDB and gets output like the following:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nMsg 5172, Level 16, State 15, Line 1\r\nThe header for file 'E:\\Data\\namechanged.mdf:MSSQL_DBCC14' is not a valid database file header. The PageAudit property is incorrect.\r\nMsg 5120, Level 16, State 9, Line 1\r\nUnable to open the physical file &quot;E:\\Data\\namechanged.mdf:MSSQL_DBCC14&quot;. Operating system error 0: &quot;(null)&quot;.\r\nMsg 1823, Level 16, State 2, Line 1\r\nA database snapshot cannot be created because it failed to start.\r\nMsg 7928, Level 16, State 1, Line 1\r\nThe database snapshot for online checks could not be created. Either the reason is given in a previous error or one of the underlying volumes does not support sparse files or alternate streams. Attempting to get exclusive access to run checks offline.\r\n\r\netc\r\n<\/pre>\n<p>Wow! Looks like something&#8217;s seriously wrong with that database. Until you find that this happens on *all* the databases on the server. And on all the other servers in the data center too. What on earth&#8217;s going on? I saw a similar issue once before, back in 2004 or 2005\u00a0while customers were testing pre-RTM IDW builds of SQL Server 2005. After running a test and doing some investigation for me, the person who just hit this issue over the weekend confirmed my hypothesis that he&#8217;d hit the problem I saw a few years ago.<\/p>\n<p>The problem is a 3rd-party file encryption solution. It installs a file-system filter driver that filters all reads and writes to the database files so it can perform the encryption\/decryption.\u00a0Unfortunately it doesn&#8217;t cope with NTFS alternate streams &#8211; which is how the internal database snapshots that DBCC CHECKDB uses are created &#8211; and so returns garbage\u00a0for all reads from the database snapshot.\u00a0The simple workaround is to create your own database snapshot (whose constituent files will exist in their own right, rather than being alternate streams of the source database&#8217;s files) and then run DBCC CHECKDB against that.<\/p>\n<p>Now &#8211; I don&#8217;t want to cry &#8216;wolf&#8217; here, but be careful of attributing massive corruption problems to the real IO subsystem if there&#8217;s any kind of file-system filter driver installed.<\/p>\n<p><strong>[Edit 6\/19\/14: From SQL Server 2014 the database snapshot is not hidden and does not use NTFS alternate streams.]<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s an issue that I thought was a one-off but it just popped up again over the weekend so I want to publicize it. DBA runs a DBCC CHECKDB and gets output like the following: Msg 5172, Level 16, State 15, Line 1 The header for file &#8216;E:\\Data\\namechanged.mdf:MSSQL_DBCC14&#8217; is not a valid database file header. [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,30,33,53,78],"tags":[],"class_list":["post-1088","post","type-post","status-publish","format-standard","hentry","category-checkdb-from-every-angle","category-corruption","category-database-snapshots","category-io-subsystems","category-search-engine-q-and-a"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Search Engine Q&amp;A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Search Engine Q&amp;A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Here&#8217;s an issue that I thought was a one-off but it just popped up again over the weekend so I want to publicize it. DBA runs a DBCC CHECKDB and gets output like the following: Msg 5172, Level 16, State 15, Line 1 The header for file &#039;E:Datanamechanged.mdf:MSSQL_DBCC14&#039; is not a valid database file header. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2008-02-04T06:36:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-06-19T16:42:29+00:00\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/\",\"name\":\"Search Engine Q&A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2008-02-04T06:36:34+00:00\",\"dateModified\":\"2014-06-19T16:42:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search Engine Q&#038;A #14: Beware 3rd party file-system drivers with DBCC CHECKDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Search Engine Q&A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/","og_locale":"en_US","og_type":"article","og_title":"Search Engine Q&A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal","og_description":"Here&#8217;s an issue that I thought was a one-off but it just popped up again over the weekend so I want to publicize it. DBA runs a DBCC CHECKDB and gets output like the following: Msg 5172, Level 16, State 15, Line 1 The header for file 'E:Datanamechanged.mdf:MSSQL_DBCC14' is not a valid database file header. [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/","og_site_name":"Paul S. Randal","article_published_time":"2008-02-04T06:36:34+00:00","article_modified_time":"2014-06-19T16:42:29+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/","name":"Search Engine Q&A #14: Beware 3rd party file-system drivers with DBCC CHECKDB - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2008-02-04T06:36:34+00:00","dateModified":"2014-06-19T16:42:29+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-14-beware-3rd-party-file-system-drivers-with-dbcc-checkdb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"Search Engine Q&#038;A #14: Beware 3rd party file-system drivers with DBCC CHECKDB"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=1088"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1088\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=1088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=1088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=1088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}