{"id":1174,"date":"2007-10-02T17:20:27","date_gmt":"2007-10-02T17:20:27","guid":{"rendered":"\/blogs\/paul\/post\/Search-Engine-QA-4-Using-EMERGENCY-mode-to-access-a-RECOVERY-PENDING-or-SUSPECT-database.aspx"},"modified":"2017-04-13T09:54:41","modified_gmt":"2017-04-13T16:54:41","slug":"search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/","title":{"rendered":"Search Engine Q&#038;A #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database"},"content":{"rendered":"<p>(Check out my online training courses: <a href=\"http:\/\/www.pluralsight.com\/courses\/sqlserver-database-corruption\" target=\"_blank\">SQL Server: Detecting and Correcting Database Corruption<\/a>\u00a0and <a href=\"http:\/\/www.pluralsight.com\/courses\/sqlserver-advanced-corruption-recovery-techniques\" target=\"_blank\">SQL Server: Advanced Corruption Recovery Techniques<\/a>. We can also <a href=\"https:\/\/www.sqlskills.com\/services\/sql-server-disaster-recovery\/\" target=\"_blank\">help you<\/a> with disaster recovery.)<\/p>\n<p>By far the most common search engine query leading to the blog is about fixing a suspect or unrecovered database. The very best way to do this is to use your backups, and to have a backup strategy that allows you to recover in the smallest amount of time and with no data loss. But what if you don&#8217;t have a backup for some reason? Well, it depends what&#8217;s damaged in the database and when the damage is noticed.<\/p>\n<p>There are three states the database can be in when its damaged:<\/p>\n<ol>\n<li><em>ONLINE<\/em>\n<ul>\n<li>If it&#8217;s one of the data files that is damaged and the damage is hit during a query or some other operation then the database will remain online and accessible.<\/li>\n<\/ul>\n<\/li>\n<li><em>RECOVERY PENDING<\/em>\n<ul>\n<li>The database will be in this state if SQL Server knows that recovery needs to be run on the database but something is preventing recovery from starting. This is different from <em>SUSPECT<\/em> because there&#8217;s nothing to say that recovery is going to fail &#8211; it just hasn&#8217;t started yet.<\/li>\n<li>An example of this is when the database wasn&#8217;t cleanly shut down (i.e. there was at least one uncommitted transaction active at the time the database was shut down) and the log file has been deleted.<\/li>\n<\/ul>\n<\/li>\n<li><em>SUSPECT<\/em>\n<ul>\n<li>The database will be in this state if the transaction log is damaged and it prevents recovery or a transaction rollback from completing.<\/li>\n<li>Some examples of this are:\n<ul>\n<li>When the database wasn&#8217;t cleanly shut down and recovery tries to read a corrupt data page or comes across a corrupt log record.<\/li>\n<li>A regular transaction rolls back and tries to read a corrupt data page or comes across a corrupt log record.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>You can check the state of a database in the<em> sys.databases<\/em> catalog view:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSELECT &#x5B;state_desc] FROM &#x5B;sys].&#x5B;databases] WHERE &#x5B;name] = N'master';\r\nGO\r\n<\/pre>\n<p>or by using the <em>DATABASEPROPERTYEX<\/em> function:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSELECT DATABASEPROPERTYEX (N'master', N'STATUS');\r\nGO\r\n<\/pre>\n<p>Beware however, as <em>DATABASEPROPERTYEX<\/em> returns <em>SUSPECT<\/em> when the database is <em>RECOVERY PENDING<\/em>, as I&#8217;ll show you below.<\/p>\n<p>So the state the database is in determines what you can do if you don&#8217;t have a backup. The easiest case is when it&#8217;s still <em>ONLINE<\/em>. In this case\u00a0you can probably run repair to remove the damage, most likely with some data loss (see my <a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/corruption-last-resorts-that-people-try-first\/\">previous post<\/a> on <em>REPAIR_ALLOW_DATA_LOSS<\/em> for more details), and then take steps to prevent the damage occurring again. If repair can&#8217;t fix all the errors then your only option without a backup is to extract as much data as you can into a new database.<\/p>\n<p>The other two database states are more difficult and are what&#8217;s causing people to search for help. In this case the database isn&#8217;t accessible at all, because recovery hasn&#8217;t run or completed and so the database is in an inconsistent state. It could just be logically inconsistent (e.g. a transaction modifying data hasn&#8217;t recovered) or worse it could structurally inconsistent (e.g. a system transaction modifying index linkages has&#8217;t recovered). Either way, SQL Server wants to prevent you from getting into the database because it doesn&#8217;t know what state the data and structures in the database are in. But if you don&#8217;t have a backup, you need to get into the database, no matter what state things are in.<\/p>\n<p>You can do this using <em>EMERGENCY<\/em> mode. In versions prior to SQL Server 2005, <em>EMERGENCY<\/em> mode wasn&#8217;t documented and you had to hack the <em>sysdatabases<\/em> table to get a database into it (worse still, the exact hack to use was changed from version to version in a bid to obfuscate things). In 2005 though, <em>EMERGENCY<\/em> mode was documented and proper syntax added to support it. Members of the sysadmin role can put the database into <em>EMERGENCY<\/em> mode using:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nALTER DATABASE &#x5B;foo] SET EMERGENCY;\r\n&gt;GO\r\n<\/pre>\n<p>Once in <em>EMERGENCY<\/em> mode, the database is accessible only by members of the sysadmin role. The database is also read-only as nothing can be written to the transaction log.<\/p>\n<p>Let&#8217;s see an example of this. I&#8217;m going to create a database and a sample table:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nCREATE DATABASE &#x5B;emergencydemo];\r\nGO\r\nUSE &#x5B;emergencydemo];\r\nGO\r\n\r\nCREATE TABLE &#x5B;salaries] (\r\n    &#x5B;FirstName]    CHAR (20),\r\n    &#x5B;LastName]     CHAR (20),\r\n    &#x5B;Salary]       INT);\r\nGO\r\n\r\nINSERT INTO &#x5B;salaries] VALUES ('John', 'Williamson', 10000);\r\nINSERT INTO &#x5B;salaries] VALUES ('Stephen', 'Brown', 12000);\r\nINSERT INTO &#x5B;salaries] VALUES ('Jack', 'Bauer', 10000);\r\nGO\r\n<\/pre>\n<p>I&#8217;m going to start an explicit user transaction and update a row in the table:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nBEGIN TRANSACTION;\r\nGO\r\n\r\nUPDATE &#x5B;salaries] SET &#x5B;Salary] = 0 WHERE LastName = 'Brown';\r\nGO\r\n<\/pre>\n<p>Now I&#8217;m going to force the data page holding the updated row to be written to disk:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nCHECKPOINT;\r\nGO\r\n<\/pre>\n<p>So we have an active, uncommitted transaction that&#8217;s modified the table, and the table modification has been written to disk. If the power failed at this point, crash recovery would run and the transaction would be rolled back. I&#8217;m going to simulate this by shutting down SQL Server. In another connection:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSHUTDOWN WITH NOWAIT;\r\nGO\r\n&#x5B;sourcecode language=&quot;text&quot; gutter=&quot;false&quot; toolbar=&quot;true&quot; wraplines=&quot;true&quot;]\r\nServer shut down by NOWAIT request from login ROADRUNNERPR\\paul.\r\nSQL Server is terminating this process.\r\n<\/pre>\n<p>I&#8217;m also going to simulate damage to the transaction log by just deleting the log file.<\/p>\n<p>Now when I start up SQL Server again, we see the following in the error log:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\n2007-10-02 11:39:47.14 spid18s\u00a0\u00a0\u00a0\u00a0 Starting up database 'emergencydemo'.\r\n2007-10-02 11:39:47.46 spid18s\u00a0\u00a0\u00a0\u00a0 Error: 17207, Severity: 16, State: 1.\r\n2007-10-02 11:39:47.46 spid18s\u00a0\u00a0\u00a0\u00a0 FileMgr::StartLogFiles: Operating system error 2(The system cannot find the file specified.) occurred while creating or opening file 'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\DATA\\emergencydemo_log.LDF'. Diagnose and correct the operating system error, and retry the operation.\r\n2007-10-02 11:39:47.60 spid18s\u00a0\u00a0\u00a0\u00a0 File activation failure. The physical file name &quot;C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\DATA\\emergencydemo_log.LDF&quot; may be incorrect.\r\n2007-10-02 11:39:47.60 spid18s\u00a0\u00a0\u00a0\u00a0 The log cannot be rebuilt because the database was not cleanly shut down.\r\n<\/pre>\n<p>The database wasn&#8217;t cleanly shut down and the transaction log isn&#8217;t available so recovery couldn&#8217;t run. The final message is interesting &#8211; there&#8217;s a feature in SQL Server 2005 that if you attach or start up a database without a transaction log file, and the database was cleanly shut down, SQL Server will create a new log file automatically. In our case that can&#8217;t happen though.<\/p>\n<p>What happens if I try to get into the database?<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nUSE &#x5B;emergencydemo];\r\nGO\r\n<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nMsg 945, Level 14, State 2, Line 1\r\nDatabase 'emergencydemo' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.\r\n<\/pre>\n<p>So what state is the database in?<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSELECT DATABASEPROPERTYEX (N'emergencydemo', N'STATUS');\r\nGO\r\n<\/pre>\n<p>returns<em> SUSPECT<\/em>. But checking the sys.databases table using<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSELECT &#x5B;state_desc] FROM &#x5B;sys].&#x5B;databases] WHERE &#x5B;name] = N'emergencydemo';\r\nGO\r\n<\/pre>\n<p>returns <em>RECOVERY PENDING<\/em>. This is what I&#8217;d expect, as recovery didn&#8217;t get a chance to even start.<\/p>\n<p>Now I&#8217;ll set the database into <em>EMERGENCY<\/em> mode so I can get in and see what state things are in:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nALTER DATABASE &#x5B;emergencydemo] SET EMERGENCY;\r\nGO\r\n<\/pre>\n<p>In the errorlog you can tell when a database has been put into <em>EMERGENCY<\/em> mode:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\n2007-10-02 11:53:52.57 spid51\u00a0\u00a0\u00a0\u00a0\u00a0 Setting database option EMERGENCY to ON for database emergencydemo.\r\n2007-10-02 11:53:52.59 spid51\u00a0\u00a0\u00a0\u00a0\u00a0 Starting up database 'emergencydemo'.\r\n2007-10-02 11:53:52.62 spid51\u00a0\u00a0\u00a0\u00a0\u00a0 The database 'emergencydemo' is marked EMERGENCY_MODE and is in a state that does not allow recovery to be run.\r\n\r\n<\/pre>\n<p>Let&#8217;s try using the database again:<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nUSE &#x5B;emergencydemo];\r\nGO\r\n<\/pre>\n<p>This time it works. What&#8217;s the state of the data?<\/p>\n<pre class=\"brush: sql; gutter: true; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nSELECT * FROM &#x5B;salaries];\r\nGO\r\n<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nFirstName            LastName             Salary\r\n-------------------- -------------------- -----------\r\nJohn                 Williamson           10000\r\nStephen              Brown                0\r\nJack                 Bauer                10000\r\n<\/pre>\n<p>It&#8217;s inconsistent, as I&#8217;d expect.<\/p>\n<p>That&#8217;s the catch with <em>EMERGENCY<\/em> mode &#8211; you can get into the database but recovery hasn&#8217;t run or completed so you don&#8217;t know whether the database is logically or structurally consistent. However, at least you can get into the database to extract data out or repair any damage.<\/p>\n<p>In the next post (later today) I&#8217;ll show you how to repair any damage using the emergency-mode repair feature of <em>DBCC CHECKDB<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Check out my online training courses: SQL Server: Detecting and Correcting Database Corruption\u00a0and SQL Server: Advanced Corruption Recovery Techniques. We can also help you with disaster recovery.) By far the most common search engine query leading to the blog is about fixing a suspect or unrecovered database. The very best way to do this is [&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,35,38,78,98],"tags":[],"class_list":["post-1174","post","type-post","status-publish","format-standard","hentry","category-corruption","category-disaster-recovery","category-example-scripts","category-search-engine-q-and-a","category-transaction-log"],"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 #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - 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-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/\" \/>\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 #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"(Check out my online training courses: SQL Server: Detecting and Correcting Database Corruption\u00a0and SQL Server: Advanced Corruption Recovery Techniques. We can also help you with disaster recovery.) By far the most common search engine query leading to the blog is about fixing a suspect or unrecovered database. The very best way to do this is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2007-10-02T17:20:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T16:54:41+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=\"8 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-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/\",\"name\":\"Search Engine Q&A #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2007-10-02T17:20:27+00:00\",\"dateModified\":\"2017-04-13T16:54:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/#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 #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database\"}]},{\"@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 #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - 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-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/","og_locale":"en_US","og_type":"article","og_title":"Search Engine Q&A #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - Paul S. Randal","og_description":"(Check out my online training courses: SQL Server: Detecting and Correcting Database Corruption\u00a0and SQL Server: Advanced Corruption Recovery Techniques. We can also help you with disaster recovery.) By far the most common search engine query leading to the blog is about fixing a suspect or unrecovered database. The very best way to do this is [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/","og_site_name":"Paul S. Randal","article_published_time":"2007-10-02T17:20:27+00:00","article_modified_time":"2017-04-13T16:54:41+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/","name":"Search Engine Q&A #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2007-10-02T17:20:27+00:00","dateModified":"2017-04-13T16:54:41+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/search-engine-qa-4-using-emergency-mode-to-access-a-recovery-pending-or-suspect-database\/#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 #4: Using EMERGENCY mode to access a RECOVERY PENDING or SUSPECT database"}]},{"@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\/1174","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=1174"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1174\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=1174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=1174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=1174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}