{"id":4738,"date":"2017-06-20T10:10:44","date_gmt":"2017-06-20T17:10:44","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/paul\/?p=4738"},"modified":"2017-06-20T10:10:44","modified_gmt":"2017-06-20T17:10:44","slug":"sqlskills-sql101-practicing-disaster-recovery","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/","title":{"rendered":"SQLskills SQL101: Practicing disaster recovery"},"content":{"rendered":"<p style=\"text-align: justify;\"><em>As <a href=\"https:\/\/www.sqlskills.com\/blogs\/kimberly\/sqlskills-sql101-stored-procedures\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kimberly blogged about earlier this year<\/a>, SQLskills has an ongoing\u00a0initiative to\u00a0blog about basic topics, which we\u2019re calling SQL101. We\u2019re all blogging about\u00a0things\u00a0that we often see done incorrectly, technologies used the wrong way,\u00a0or where there are many misunderstandings that lead to serious problems. If you want to find all of our <strong>SQLskills SQL101<\/strong> blog posts, check out\u00a0<a href=\"https:\/\/www.sqlskills.com\/help\/SQL101\" target=\"_blank\" rel=\"noopener noreferrer\">SQLskills.com\/help\/SQL101<\/a>.<\/em><\/p>\n<p style=\"text-align: justify;\">At the weekend Kimberly and I attended our first ever SQLSaturday (in Dublin) and as well as a workshop on wait stats, I presented a session on\u00a0<em>Advanced Data Recovery Techniques<\/em>. The contents of that session are way too advanced for a 101-level post\u00a0(you can watch a video of it from the PASS Summit 2014 <a href=\"http:\/\/youtu.be\/umsDy4ZNAzM\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>\u00a0if you&#8217;re interested) but one of the things I stressed at the start\u00a0was that practicing disaster recovery techniques is crucial for success when a disaster happens for real.<\/p>\n<p style=\"text-align: justify;\">It doesn&#8217;t matter how experienced you are with SQL Server, if you&#8217;re responsible for a SQL Server instance, you have to know the basics of how to recover when a disaster strikes (I touched on that earlier in the series in the post\u00a0<em><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-dealing-with-sql-server-corruption\/\" target=\"_blank\" rel=\"noopener noreferrer\">SQLskills SQL101: Dealing with SQL Server corruption<\/a><\/em>) and you have to have practiced.<\/p>\n<p style=\"text-align: justify;\">In this post I want to\u00a0pose a short (by no means exhaustive) series of questions to you\u00a0about what practicing you have (or haven&#8217;t) done, and make you think about an honest answer to each one.<\/p>\n<p style=\"text-align: justify;\"><strong>Part 1: Information<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify;\">Do you know where the latest copy of the disaster recovery\u00a0handbook\/run book is? Does everyone else know? (Here&#8217;s an <a href=\"http:\/\/searchdisasterrecovery.techtarget.com\/feature\/IT-disaster-recovery-DR-plan-template-A-free-download-and-guide\" target=\"_blank\" rel=\"noopener noreferrer\">example template<\/a>.)<\/li>\n<li style=\"text-align: justify;\">Do you know where the scripts are for automating restores of your backups?<\/li>\n<li style=\"text-align: justify;\">Do you know where the installation media for Windows and SQL Server are kept in your environment?<\/li>\n<li style=\"text-align: justify;\">Do you know where the Windows and SQL Server product keys are?<\/li>\n<li style=\"text-align: justify;\">Do you know how you\u2019ll be able to get new servers if your data center is destroyed?<\/li>\n<li style=\"text-align: justify;\">And do you know where they will be installed? What about network? Power? HVAC?<\/li>\n<li style=\"text-align: justify;\">Do you know who to\u00a0call when\/if you get stuck during the disaster recovery process?<\/li>\n<li style=\"text-align: justify;\">Do you know\u00a0the priority order for restoring databases\/instances in your environment?<\/li>\n<li style=\"text-align: justify;\">Do you know where the various SQL Server passwords and encryption keys are stored?<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>Part 2: Techniques<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify;\">When was the last time you performed a full restore sequence, including tail-of-the-log backups?<\/li>\n<li style=\"text-align: justify;\">When was the last time you performed a failover to your secondary servers\/data center?<\/li>\n<li style=\"text-align: justify;\">When was the last time you performed a bare-metal install?<\/li>\n<li style=\"text-align: justify;\">When was the last time you rebuilt or restored master on a server?<\/li>\n<li style=\"text-align: justify;\">When was the last time you practiced a recovery as if your main server was completely dead? (And did you successfully recover?)<\/li>\n<li style=\"text-align: justify;\">When was the last time you practiced a recovery as if your main SAN was completely dead? (And did you successfully recover?)<\/li>\n<li style=\"text-align: justify;\">When was the last time you practiced a recovery as if you didn\u2019t have onsite backups and the SAN was dead? (And did you successfully recover?)<\/li>\n<\/ul>\n<p><strong>Summary<\/strong><\/p>\n<p style=\"text-align: justify;\">Think through the answers to the questions above and consider whether you\u2019re comfortable with your responses. Now,think whether you\u2019d be comfortable if someone\u00a0responsible for some of your data (e.g. your bank, 401-k\/retirement account holder, doctor\u2019s office, favorite airline, credit-card companies) made those same answers about their disaster-recovery preparedness. My feeling is that you should be able to answer \u2018yes\u2019 for all the Part 1 questions, and answer \u2018within the last 3 months\u2019 for all the Part 2 questions, to feel fully comfortable that\u00a0you\u2019re practicing enough.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As Kimberly blogged about earlier this year, SQLskills has an ongoing\u00a0initiative to\u00a0blog about basic topics, which we\u2019re calling SQL101. We\u2019re all blogging about\u00a0things\u00a0that we often see done incorrectly, technologies used the wrong way,\u00a0or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,108],"tags":[],"class_list":["post-4738","post","type-post","status-publish","format-standard","hentry","category-disaster-recovery","category-sql101"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQLskills SQL101: Practicing disaster recovery - 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\/sqlskills-sql101-practicing-disaster-recovery\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQLskills SQL101: Practicing disaster recovery - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"As Kimberly blogged about earlier this year, SQLskills has an ongoing\u00a0initiative to\u00a0blog about basic topics, which we\u2019re calling SQL101. We\u2019re all blogging about\u00a0things\u00a0that we often see done incorrectly, technologies used the wrong way,\u00a0or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-20T17:10:44+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\/sqlskills-sql101-practicing-disaster-recovery\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/\",\"name\":\"SQLskills SQL101: Practicing disaster recovery - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2017-06-20T17:10:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQLskills SQL101: Practicing disaster recovery\"}]},{\"@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":"SQLskills SQL101: Practicing disaster recovery - 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\/sqlskills-sql101-practicing-disaster-recovery\/","og_locale":"en_US","og_type":"article","og_title":"SQLskills SQL101: Practicing disaster recovery - Paul S. Randal","og_description":"As Kimberly blogged about earlier this year, SQLskills has an ongoing\u00a0initiative to\u00a0blog about basic topics, which we\u2019re calling SQL101. We\u2019re all blogging about\u00a0things\u00a0that we often see done incorrectly, technologies used the wrong way,\u00a0or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/","og_site_name":"Paul S. Randal","article_published_time":"2017-06-20T17:10:44+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\/sqlskills-sql101-practicing-disaster-recovery\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/","name":"SQLskills SQL101: Practicing disaster recovery - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2017-06-20T17:10:44+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/sqlskills-sql101-practicing-disaster-recovery\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"SQLskills SQL101: Practicing disaster recovery"}]},{"@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\/4738","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=4738"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/4738\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=4738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=4738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=4738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}