{"id":1005,"date":"2025-04-22T09:00:00","date_gmt":"2025-04-22T14:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=1005"},"modified":"2025-04-18T23:01:04","modified_gmt":"2025-04-19T04:01:04","slug":"sql-server-page-level-restore-guide","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=1005","title":{"rendered":"Restoring a Single Data Page in SQL Server: A DBAs Guide"},"content":{"rendered":"<h2>Introduction<\/h2>\n<h3>Why page\u2011level restore belongs in every DBA\u2019s toolbox<\/h3>\n<p>Most of the time, corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system.<\/p>\n<p>That is precisely why Microsoft built <strong>RESTORE\u00a0\u2026\u00a0PAGE<\/strong>. When you meet a short list of prerequisites (FULL or BULK_LOGGED recovery model, an unbroken backup chain, and a page that is not allocation metadata), you can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.<\/p>\n<h3>A practical scenario<\/h3>\n<p>Imagine the last integrity check finished cleanly at 01:00. At 09:13, the monitoring system flags error\u00a0824\u2014\u201clogical consistency\u2011based I\/O error\u201d\u2014coming from page\u00a0<strong>1:11337<\/strong> of <em>SalesDB<\/em>. Every application call that touches that row now fails, but other queries run fine.<\/p>\n<pre><code>SELECT file_id, page_id, event_type, error_count\nFROM msdb.dbo.suspect_pages\nWHERE database_id = DB_ID('SalesDB');<\/code><\/pre>\n<p>The query confirms two rows in <code>suspect_pages<\/code> with <strong>event_type\u00a0=\u00a01<\/strong> (I\/O corruption detected). Because the database uses the FULL recovery model and you take log backups every fifteen minutes, you have everything needed for a page restore.<\/p>\n<h3>Double\u2011checking your safety net<\/h3>\n<ol>\n<li><strong>Verify the full backup<\/strong> that will provide the clean page image:\n<pre><code>RESTORE VERIFYONLY\n  FROM DISK = 'X:\\Backups\\SalesDB_Full_0100.bak';<\/code><\/pre>\n<\/li>\n<li><strong>Verify the differential (if any) and all subsequent log backups.<\/strong><br \/>\nIf any file fails <code>VERIFYONLY<\/code>, stop\u2014page restore cannot proceed.<\/li>\n<li><strong>Take a tail\u2011log backup<\/strong> to freeze the log chain and capture the last few minutes of work:\n<pre><code>BACKUP LOG SalesDB\n  TO DISK = 'X:\\Backups\\SalesDB_Tail_0915.trn'\n  WITH NO_TRUNCATE;<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Executing the restore\u2014step\u00a0by\u00a0step<\/h3>\n<ol>\n<li><strong>Restore the page image from the full backup.<\/strong>\n<pre><code>RESTORE DATABASE SalesDB\n    PAGE = '1:11337, 1:11338'\n    FROM DISK = 'X:\\Backups\\SalesDB_Full_0100.bak'\n    WITH NORECOVERY;<\/code><\/pre>\n<\/li>\n<li><strong>Apply the differential<\/strong> (if present).\n<pre><code>RESTORE DATABASE SalesDB\n    PAGE = '1:11337, 1:11338'\n    FROM DISK = 'X:\\Backups\\SalesDB_Diff_0500.bak'\n    WITH NORECOVERY;<\/code><\/pre>\n<\/li>\n<li><strong>Roll forward every transaction\u2011log backup in order.<\/strong>\n<pre><code>RESTORE LOG SalesDB\n    FROM DISK = 'X:\\Backups\\SalesDB_Log1.trn'\n    WITH NORECOVERY;\n\nRESTORE LOG SalesDB\n    FROM DISK = 'X:\\Backups\\SalesDB_Log2.trn'\n    WITH NORECOVERY;\n-- repeat for each log file<\/code><\/pre>\n<\/li>\n<li><strong>Restore the tail\u2011log backup WITH\u00a0RECOVERY.<\/strong>\n<pre><code>RESTORE LOG SalesDB\n    FROM DISK = 'X:\\Backups\\SalesDB_Tail_0915.trn'\n    WITH RECOVERY;<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>What SQL\u00a0Server does behind the curtain<\/h3>\n<p>During each step SQL\u00a0Server:<\/p>\n<ul>\n<li>Validates the page checksum before writing it to the data file.<\/li>\n<li>Ensures the page\u2019s <code>pageLSN<\/code> is not newer than the first log record to be applied.<\/li>\n<li>Replays only the log records that reference those pages, advancing <code>pageLSN<\/code> to the database\u2011wide recovery point.<\/li>\n<li>Updates <code>msdb.dbo.suspect_pages<\/code> from event\u00a0type\u00a01 (corrupt) to\u00a04 (restored) after <code>WITH RECOVERY<\/code>.<\/li>\n<\/ul>\n<p>On Enterprise Edition, locks are scoped to the individual pages; Standard Edition keeps the database offline until recovery completes. In either edition the entire operation is fully logged, so crash recovery can finish the work if the server fails mid\u2011restore.<\/p>\n<h3>Post\u2011restore validation<\/h3>\n<p>Even after a textbook restore, always run a quick integrity check:<\/p>\n<pre><code>DBCC CHECKDB ('SalesDB') WITH PHYSICAL_ONLY;<\/code><\/pre>\n<p>If that passes, schedule a full <code>DBCC CHECKDB<\/code> in your next maintenance window and take a fresh full backup to establish a clean baseline.<\/p>\n<h3>Situations where page restore is <em>not<\/em> the right tool<\/h3>\n<ul>\n<li>Corruption involves allocation pages (GAM, SGAM, PFS) or system catalogs.<\/li>\n<li>Hundreds of pages are corrupt\u2014it\u2019s faster to restore the entire file.<\/li>\n<li>The database is in SIMPLE recovery and lacks a usable log chain.<\/li>\n<li>Any backup in the required chain is missing or fails verification.<\/li>\n<\/ul>\n<h3>Operational tips from the field<\/h3>\n<ul>\n<li><strong>Automate detection.<\/strong> Poll <code>suspect_pages<\/code> and alert when new rows appear.<\/li>\n<li><strong>Rehearse.<\/strong> Corrupt a page in a sandbox and practice the full sequence.<\/li>\n<li><strong>Keep backup retention practical.<\/strong> Page restore needs the oldest backup that contains a clean page image.<\/li>\n<li><strong>Monitor progress.<\/strong> Query <code>sys.dm_exec_requests<\/code> for <code>percent_complete<\/code> on the restore session.<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>Page\u2011level restore seldom makes headlines, yet when a single bad sector flips a bit it can save hours of downtime. Instead of rolling back half a day\u2019s work, you overwrite sixteen kilobytes, replay a handful of logs, and move on. By rehearsing the procedure and keeping backups healthy, you turn single\u2011page corruption from a crisis into a routine fix\u2014one more reason disciplined DBAs sleep better at night.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That&#8217;s precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[35,12,13,18,21],"tags":[526,231,486,528,524,525,131,119,527],"class_list":["post-1005","post","type-post","status-publish","format-standard","hentry","category-data-integrity","category-internals","category-storage-engine","category-transaction-logs","category-tutorial","tag-backup-and-restore","tag-database-corruption","tag-dbcc-checkdb","tag-full-recovery-model","tag-page-restore","tag-restore-page","tag-sql-server","tag-sql-server-2022","tag-taillog-backup"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That&#039;s precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.\" \/>\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.sqltabletalk.com\/?p=1005\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That&#039;s precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=1005\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-22T14:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Stephen Planck\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stephen Planck\" \/>\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\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005\"},\"author\":{\"name\":\"Stephen Planck\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"headline\":\"Restoring a Single Data Page in SQL Server: A DBAs Guide\",\"datePublished\":\"2025-04-22T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005\"},\"wordCount\":643,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"Backup and Restore\",\"Database Corruption\",\"DBCC CHECKDB\",\"FULL Recovery Model\",\"Page Restore\",\"RESTORE PAGE\",\"SQL Server\",\"SQL Server 2022\",\"Tail\u2011log Backup\"],\"articleSection\":[\"Data Integrity\",\"Internals\",\"Storage Engine\",\"Transaction Logs\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=1005#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=1005\",\"name\":\"Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2025-04-22T14:00:00+00:00\",\"description\":\"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That's precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=1005\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1005#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Restoring a Single Data Page in SQL Server: A DBAs Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"],\"url\":\"https:\/\/www.sqltabletalk.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk","description":"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That's precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.","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.sqltabletalk.com\/?p=1005","og_locale":"en_US","og_type":"article","og_title":"Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk","og_description":"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That's precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.","og_url":"https:\/\/www.sqltabletalk.com\/?p=1005","og_site_name":"SQL Table Talk","article_published_time":"2025-04-22T14:00:00+00:00","author":"Stephen Planck","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stephen Planck","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=1005#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1005"},"author":{"name":"Stephen Planck","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"headline":"Restoring a Single Data Page in SQL Server: A DBAs Guide","datePublished":"2025-04-22T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1005"},"wordCount":643,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["Backup and Restore","Database Corruption","DBCC CHECKDB","FULL Recovery Model","Page Restore","RESTORE PAGE","SQL Server","SQL Server 2022","Tail\u2011log Backup"],"articleSection":["Data Integrity","Internals","Storage Engine","Transaction Logs","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=1005#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=1005","url":"https:\/\/www.sqltabletalk.com\/?p=1005","name":"Restoring a Single Data Page in SQL Server: A DBAs Guide - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2025-04-22T14:00:00+00:00","description":"Usually corruption in SQL\u00a0Server is either nonexistent or so widespread that you have no choice but to perform a file or full\u2011database restore. Yet an awkward middle ground exists: a handful of pages\u2014perhaps only one\u2014become unreadable while the rest of the database remains perfectly healthy. A full restore would repair the damage, but at the cost of rolling back hours of work and locking users out of an otherwise functional system. That's precisely why Microsoft built RESTORE\u00a0\u2026\u00a0PAGE. You can surgically overwrite just the bad 8\u2011KB chunks, roll them forward with transaction\u2011log backups, and return the database to service in minutes rather than hours.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1005#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=1005"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=1005#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Restoring a Single Data Page in SQL Server: A DBAs Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"],"url":"https:\/\/www.sqltabletalk.com\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/1005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1005"}],"version-history":[{"count":2,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/1005\/revisions"}],"predecessor-version":[{"id":1007,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/1005\/revisions\/1007"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}