{"id":1036,"date":"2008-07-25T14:10:50","date_gmt":"2008-07-25T14:10:50","guid":{"rendered":"\/blogs\/paul\/post\/Search-Engine-QA-21-File-header-pages-and-file-header-corruption.aspx"},"modified":"2021-12-29T14:49:23","modified_gmt":"2021-12-29T22:49:23","slug":"search-engine-qa-21-file-header-pages-and-file-header-corruption","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/","title":{"rendered":"Search Engine Q&#038;A #21: File header pages, and file header corruption"},"content":{"rendered":"<p>Following on from my previous post on <a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-20-boot-pages-and-boot-page-corruption\/\">boot pages and boot page corruption<\/a>, I&#8217;ve been asked about file header pages &#8211; and I was already planning this post as the next in the series.<\/p>\n<p>So what&#8217;s a <em>file header page<\/em>? Every data file in a database has the very first 8kb page (i.e. page 0 in the file) set aside as the place to store all the metadata info about the file. As with the boot page, you can look at the contents with <span style=\"font-family: Courier New;\">DBCC PAGE<\/span> and it will interpret all the fields for you, or you can use the <span style=\"font-family: Courier New;\">DBCC FILEHEADER<\/span> command, which does a better job. This is undocumented and unsupported, just like <span style=\"font-family: Courier New;\">DBCC DBINFO<\/span> for looking at the database boot page, but it&#8217;s been discussed and posted about on the Internet before so it&#8217;s existence is no secret.<\/p>\n<p>The command take a database name or database ID plus the file ID to dump. Here I&#8217;ve created a database called FileHeaderTest and used SSMS with results-to-text, plus a bunch of editing of the results to make it blog-able:<\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\"><p><span style=\"font-family: Courier New; font-size: small;\">DBCC<\/span><span style=\"font-family: Courier New;\"><span style=\"color: #000000;\"> FILEHEADER <\/span><span style=\"color: #808080;\">(<\/span><span style=\"color: #ff0000;\">&#8216;FileHeaderTest&#8217;<\/span><span style=\"color: #808080;\">,<\/span><span style=\"color: #000000;\"> 1<\/span><span style=\"color: #808080;\">);<br \/>\n<\/span><\/span><span style=\"font-size: x-large;\"><span style=\"font-family: Courier New; font-size: small;\">GO<\/span><\/span><\/p>\n<p><span style=\"font-size: x-large;\"><span style=\"font-family: Courier New; font-size: small;\">FileId\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 1<br \/>\nLogicalName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : FileHeaderTest<br \/>\nBindingId\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : D30AE3EF-14A6-47D5-B267-96F38238D882<br \/>\nFileGroup\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 1<br \/>\nSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 152<br \/>\nMaxSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : -1<br \/>\nMinSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 152<br \/>\nUserShrinkSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : -1<br \/>\nGrowth\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 128<br \/>\nBackupLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nRedoStartLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nFirstLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nMaxLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nFirstUpdateLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nCreateLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nSectorSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 512<br \/>\nRecoveryForkGUID\u00a0\u00a0\u00a0\u00a0\u00a0 : 00000000-0000-0000-0000-000000000000<br \/>\nRecoveryForkLSN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nDifferentialBaseLsn\u00a0\u00a0 : 19000000048800037<br \/>\nDifferentialBaseGuid\u00a0 : 279A8EF4-4431-4CA5-8939-F613E5BC3033<br \/>\nStatus\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 2<br \/>\nRestoreStatus\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nReadOnlyLsn\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nReadWriteLsn\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0<br \/>\nMaxLsnBranchId\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 00000000-0000-0000-0000-000000000000<br \/>\nRedoTargetPointLsn\u00a0\u00a0\u00a0 : 0<br \/>\nRedoTargetPointGuid\u00a0\u00a0 : 00000000-0000-0000-0000-000000000000<br \/>\nRestoreDiffBaseLsn\u00a0\u00a0\u00a0 : 0<br \/>\nRestoreDiffBaseGuid\u00a0\u00a0 : 00000000-0000-0000-0000-000000000000<br \/>\nRestorePathOriginLsn\u00a0 : 0<br \/>\nRestorePathOriginGuid : 00000000-0000-0000-0000-000000000000<br \/>\nOldestRestoredLsn\u00a0\u00a0\u00a0\u00a0 : 0<\/span><\/span><\/p><\/blockquote>\n<p dir=\"ltr\">Lots of interesting stuff in here, such as:<\/p>\n<ul dir=\"ltr\">\n<li>\n<div><span style=\"font-family: Courier New;\">BindingId<\/span>: used to make sure a file is really part of this database<\/div>\n<\/li>\n<li>\n<div><span style=\"font-family: Courier New;\">SectorSize<\/span>: the disk sector size<\/div>\n<\/li>\n<li>\n<div><span style=\"font-family: Courier New;\">Status<\/span>: what kind of file and what state is it in (e.g. 2 = regular disk file)<\/div>\n<\/li>\n<li>\n<div>Various sizes in number-of-8kb-pages (e.g. <span style=\"font-family: Courier New;\">MaxSize<\/span> of -1 means file growth is unlimited)<\/div>\n<\/li>\n<li>\n<div><span style=\"font-family: Courier New;\">Growth<\/span>: the number of pages to grow the file by if the 0x100000 bit is NOT set in the <span style=\"font-family: Courier New;\">Status<\/span> field. If it is set, the <span style=\"font-family: Courier New;\">Growth<\/span> is in percent.<\/div>\n<\/li>\n<\/ul>\n<p>And you can watch things change. For instance, if I change the file growth to 10%:<\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\"><p><span style=\"font-family: Courier New; font-size: small;\">ALTER<\/span><span style=\"font-family: Courier New;\"> <span style=\"color: #0000ff;\">DATABASE<\/span><span style=\"color: #000000;\"> FileHeaderTest <\/span><span style=\"color: #0000ff;\">MODIFY<\/span> <span style=\"color: #0000ff;\">FILE <\/span><\/span><span style=\"color: #808080;\"><span style=\"font-family: Courier New;\">(<\/span><\/span><span style=\"font-family: Courier New;\"><span style=\"color: #0000ff;\">NAME<\/span> <span style=\"color: #808080;\">=<\/span><span style=\"color: #000000;\"> FileHeaderTest<\/span><span style=\"color: #808080;\">,<\/span> <span style=\"color: #0000ff;\">FILEGROWTH<\/span> <span style=\"color: #808080;\">=<\/span><span style=\"color: #000000;\"> 10<\/span><span style=\"color: #808080;\">%);<br \/>\n<\/span><\/span><span style=\"font-family: Courier New; font-size: small;\">GO<\/span><\/p><\/blockquote>\n<p dir=\"ltr\"><span style=\"font-family: Courier New; font-size: small;\"><span style=\"color: #000000; font-family: Verdana;\">And then dump the file header page contents again, the <span style=\"font-family: Courier New;\">Status<\/span> and <span style=\"font-family: Courier New;\">Growth<\/span> fields have changed to:<\/span><\/span><\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\">\n<p dir=\"ltr\"><span style=\"font-size: small;\"><span style=\"color: #000000;\"><span style=\"color: #003300; font-family: Courier New;\">.<br \/>\n.<br \/>\n<\/span><\/span><\/span><span style=\"font-family: Courier New; font-size: small;\"><span style=\"color: #000000; font-family: Verdana;\"><span style=\"font-family: Courier New;\"><span style=\"color: #003300;\">Growth\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 10<br \/>\n<\/span>.<br \/>\n.<br \/>\n<\/span><span style=\"font-family: Courier New;\"><span style=\"color: #003300;\">Status\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 1048578<br \/>\n<\/span>.<br \/>\n.<br \/>\n<\/span><\/span><\/span><\/p>\n<\/blockquote>\n<p dir=\"ltr\"><span style=\"font-family: Courier New; font-size: small;\"><span style=\"color: #000000; font-family: Verdana;\"><span style=\"font-family: Courier New;\"><span style=\"font-family: Verdana;\">So what if a file header page is corrupt? I corrupted the file header page of my database and then started up SQL Server.<\/span><\/span><\/span><\/span><\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\"><p><span style=\"font-size: small;\">USE<\/span> FileHeaderTest<span style=\"color: #808080;\">;<br \/>\n<\/span><span style=\"font-size: x-large;\"><span style=\"font-size: small;\">GO<\/span><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><span style=\"font-size: small;\">Msg 945, Level 14, State 2, Line 1<br \/>\n<\/span><span style=\"font-size: small;\">Database &#8216;FileHeaderTest&#8217; cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.<\/span><\/span><\/p><\/blockquote>\n<p dir=\"ltr\"><span style=\"color: #000000; font-family: Verdana; font-size: small;\">Let&#8217;s try EMERGENCY mode:<\/span><\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\"><p><span style=\"font-size: small;\">ALTER<\/span><span style=\"font-size: small;\"> <span style=\"color: #0000ff;\">DATABASE<\/span> FileHeaderTest <span style=\"color: #0000ff;\">SET<\/span> <span style=\"color: #0000ff;\">EMERGENCY<\/span><span style=\"color: #808080;\">;<br \/>\n<\/span><\/span><span style=\"font-size: small;\">GO<\/span><\/p>\n<p><span style=\"color: #ff0000; font-size: small;\">Msg 5172, Level 16, State 15, Line 1<br \/>\n<\/span><span style=\"color: #ff0000; font-size: small;\">The header for file &#8216;C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\DATA\\FileHeaderTest.mdf&#8217; is not a valid database file header. The PageAudit property is incorrect.<\/span><\/p><\/blockquote>\n<p dir=\"ltr\"><span style=\"color: #000000; font-family: Verdana; font-size: small;\">In this case, there&#8217;s nothing to do except restore from backups, and the database is inaccessible because the PRIMARY filegroup could not be brought online. If the corruption were in a file in a secondary filegroup, things are a little bit different. Now I&#8217;ve added a secondary filegroup with a single file (called CorruptFile) and corrupted it&#8217;s file header page. After starting up SQL Server we get the same behavior &#8211; but this time we can set the file to be offline and access the rest of the database. This is called partial database availability and works in Enterprise (and Developer) Edition only.<\/span><\/p>\n<blockquote dir=\"ltr\" style=\"margin-right: 0px;\"><p><span style=\"font-family: Courier New; font-size: small;\">ALTER<\/span><span style=\"font-family: Courier New;\"> <span style=\"color: #0000ff;\">DATABASE<\/span> FileHeaderTest <span style=\"color: #0000ff;\">MODIFY<\/span> <span style=\"color: #0000ff;\">FILE<\/span> <span style=\"color: #808080;\">(<\/span><span style=\"color: #0000ff;\">NAME<\/span> <span style=\"color: #808080;\">=<\/span> CorruptFile<span style=\"color: #808080;\">,<\/span> <span style=\"color: #0000ff;\">OFFLINE<\/span><span style=\"color: #808080;\">);<br \/>\n<\/span><\/span><span style=\"font-family: Courier New; font-size: small;\">GO<\/span><\/p><\/blockquote>\n<p dir=\"ltr\">Note that the only way to bring an offline file back online is to restore it from a backup &#8211; see <a href=\"http:\/\/blogs.msdn.com\/b\/sqlserverstorageengine\/archive\/2007\/06\/02\/the-ins-and-outs-of-offline-files.aspx\">this post<\/a> from my old Storage Engine blog for more details. Another corruption that can only be repaired using backups&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Following on from my previous post on boot pages and boot page corruption, I&#8217;ve been asked about file header pages &#8211; and I was already planning this post as the next in the series. So what&#8217;s a file header page? Every data file in a database has the very first 8kb page (i.e. page 0 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,34,48,62,64,78,100],"tags":[],"class_list":["post-1036","post","type-post","status-publish","format-standard","hentry","category-corruption","category-dbcc","category-inside-the-storage-engine","category-on-disk-structures","category-partial-database-availability","category-search-engine-q-and-a","category-undocumented-commands"],"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 #21: File header pages, and file header corruption - 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-21-file-header-pages-and-file-header-corruption\/\" \/>\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 #21: File header pages, and file header corruption - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Following on from my previous post on boot pages and boot page corruption, I&#8217;ve been asked about file header pages &#8211; and I was already planning this post as the next in the series. So what&#8217;s a file header page? Every data file in a database has the very first 8kb page (i.e. page 0 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2008-07-25T14:10:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-29T22:49:23+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=\"3 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-21-file-header-pages-and-file-header-corruption\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/\",\"name\":\"Search Engine Q&A #21: File header pages, and file header corruption - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2008-07-25T14:10:50+00:00\",\"dateModified\":\"2021-12-29T22:49:23+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/#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 #21: File header pages, and file header corruption\"}]},{\"@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 #21: File header pages, and file header corruption - 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-21-file-header-pages-and-file-header-corruption\/","og_locale":"en_US","og_type":"article","og_title":"Search Engine Q&A #21: File header pages, and file header corruption - Paul S. Randal","og_description":"Following on from my previous post on boot pages and boot page corruption, I&#8217;ve been asked about file header pages &#8211; and I was already planning this post as the next in the series. So what&#8217;s a file header page? Every data file in a database has the very first 8kb page (i.e. page 0 [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/","og_site_name":"Paul S. Randal","article_published_time":"2008-07-25T14:10:50+00:00","article_modified_time":"2021-12-29T22:49:23+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/","name":"Search Engine Q&A #21: File header pages, and file header corruption - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2008-07-25T14:10:50+00:00","dateModified":"2021-12-29T22:49:23+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-21-file-header-pages-and-file-header-corruption\/#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 #21: File header pages, and file header corruption"}]},{"@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\/1036","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=1036"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1036\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=1036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=1036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=1036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}