{"id":677,"date":"2024-08-27T08:00:00","date_gmt":"2024-08-27T13:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=677"},"modified":"2024-08-23T11:32:28","modified_gmt":"2024-08-23T16:32:28","slug":"sql-server-alwayson-database-health-detection","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=677","title":{"rendered":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection"},"content":{"rendered":"<h2>Understanding AlwaysOn Database-Level Health Detection<\/h2>\n<p>AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.<\/p>\n<h2>Benefits of Database-Level Health Detection<\/h2>\n<p>Enabling database-level health detection increases the reliability of your applications by reducing downtime. If SQL Server encounters an I\/O request failure while processing a transaction, this feature detects the failure and can initiate a failover process. The AlwaysOn framework also allows for fine-tuning failover policies through parameters like <code>DB_FAILOVER<\/code> for database health detection and <code>FAILURE_CONDITION_LEVEL<\/code> for process health detection, providing flexibility in configuration.<\/p>\n<h2>How Database-Level Health Detection Works<\/h2>\n<p>Database-level health detection operates by monitoring transaction rollbacks within availability group databases, which can occur due to I\/O failures during interactions with log and data files.<\/p>\n<h2>Triggering Events During I\/O Operations with Database Log Files<\/h2>\n<p>SQL Server uses a write-ahead logging mechanism, where log records are written to the database log file whenever a transaction is committed. If an I\/O request to the log file fails, SQL Server initiates a rollback. If the rollback encounters further I\/O failures, the database-level health detection system reports a failure to the availability group resource in the Windows Cluster.<\/p>\n<h2>Triggering Events with Database Data Files<\/h2>\n<p>SQL Server\u2019s interactions with data files typically occur during checkpoint processes and lazy writer activities, which write dirty pages from the buffer pool to disk. I\/O failures during these processes can lead to database errors, but not all I\/O failures will trigger a failover. For instance, if a failure occurs during a SELECT query, which is read-only and does not involve a transaction rollback, database-level health detection may not trigger a failover.<\/p>\n<h2>Demonstrating Database-Level Health Detection<\/h2>\n<pre><code>CREATE DATABASE [agdb]\nON PRIMARY\n( NAME = N\u2019agdb\u2019, FILENAME = N\u2019E:\\DATA\\agdb.mdf\u2019, SIZE = 8192KB, MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )\nLOG ON\n( NAME = N\u2019agdb_log\u2019, FILENAME = N\u2019F:\\LOG\\agdb_log.ldf\u2019, SIZE = 8192KB, MAXSIZE = 2048GB, FILEGROWTH = 65536KB )\nGO\n\nCREATE AVAILABILITY GROUP [ag_dbfault]\nWITH (DB_FAILOVER = ON)\nFOR DATABASE [agdb]\nREPLICA ON N\u2019SQL16N1\u2019 WITH (ENDPOINT_URL = N\u2019TCP:\/\/SQL16N1.AGDC.COM:5022\u2019, FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT),\n    N\u2019SQL16N2\u2019 WITH (ENDPOINT_URL = N\u2019TCP:\/\/SQL16N2.AGDC.COM:5022\u2019, FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);<\/code><\/pre>\n<p>A transaction is then started on a table within <code>agdb<\/code> without committing it. An I\/O issue is simulated by deleting the F: drive on the primary replica. When the transaction is attempted to be committed, SQL Server throws an error, and the availability group fails over to the secondary replica.<\/p>\n<h2>Limitations of Database-Level Health Detection<\/h2>\n<p>While database-level health detection is a powerful tool, it does have limitations. Certain scenarios may go undetected, such as when a database is idle with no active transactions or physical writes. In such cases, I\/O issues might only be detected during a checkpoint or physical read\/write operation, which could delay the failover process.<\/p>\n<h2>Events Monitored by Database-Level Health Detection<\/h2>\n<table>\n<thead>\n<tr>\n<th>Event ID<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>605<\/td>\n<td>Database or page corruption<\/td>\n<\/tr>\n<tr>\n<td>823<\/td>\n<td>Database checkpoint failure<\/td>\n<\/tr>\n<tr>\n<td>829<\/td>\n<td>Disk corruption issues<\/td>\n<\/tr>\n<tr>\n<td>832<\/td>\n<td>Hardware or memory-related issues<\/td>\n<\/tr>\n<tr>\n<td>1101, 1105<\/td>\n<td>Disk space issues in the filegroup (SQL Server unable to allocate a new page in the filegroup)<\/td>\n<\/tr>\n<tr>\n<td>5102<\/td>\n<td>Missing filegroup ID requests<\/td>\n<\/tr>\n<tr>\n<td>5180<\/td>\n<td>Wrong file ID requests<\/td>\n<\/tr>\n<tr>\n<td>5515<\/td>\n<td>SQL Filestream container issues<\/td>\n<\/tr>\n<tr>\n<td>5534<\/td>\n<td>Filestream log corruption<\/td>\n<\/tr>\n<tr>\n<td>5535<\/td>\n<td>Filestream data container corruption<\/td>\n<\/tr>\n<tr>\n<td>9004<\/td>\n<td>Transaction log corruption<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion<\/h2>\n<p>SQL Server\u2019s AlwaysOn Database-Level Health Detection enhances the availability and reliability of applications by automatically handling transaction failures and initiating failovers in response to significant issues. By understanding how this feature works and recognizing its limitations, you can configure your availability groups to maximize uptime and ensure applications remain accessible, even in the face of hardware or I\/O failures.<\/p>\n<p>This feature is an essential tool for maintaining a resilient high-availability environment, providing confidence in the system&#8217;s ability to manage unexpected challenges.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.<\/p>\n","protected":false},"author":2,"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":[36,35,82,219],"tags":[38,245,247,42,131,246],"class_list":["post-677","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-data-integrity","category-database-configuration","category-windows-failover-cluster","tag-availability-groups","tag-database-level-health-detection","tag-disaster-recovery","tag-high-availability","tag-sql-server","tag-sql-server-failover"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.\" \/>\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=677\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=677\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-27T13:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Yvonne Vanslageren\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yvonne Vanslageren\" \/>\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=677#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=677\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection\",\"datePublished\":\"2024-08-27T13:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=677\"},\"wordCount\":577,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"availability groups\",\"Database-Level Health Detection\",\"Disaster Recovery\",\"High Availability\",\"SQL Server\",\"SQL Server Failover\"],\"articleSection\":[\"Availability Groups\",\"Data Integrity\",\"Database Configuration\",\"Windows Failover Cluster\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=677#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=677\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=677\",\"name\":\"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-08-27T13:00:00+00:00\",\"description\":\"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=677#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=677\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=677#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection\"}]},{\"@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\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\",\"name\":\"Yvonne Vanslageren\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"caption\":\"Yvonne Vanslageren\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk","description":"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.","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=677","og_locale":"en_US","og_type":"article","og_title":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk","og_description":"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.","og_url":"https:\/\/www.sqltabletalk.com\/?p=677","og_site_name":"SQL Table Talk","article_published_time":"2024-08-27T13:00:00+00:00","author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=677#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=677"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection","datePublished":"2024-08-27T13:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=677"},"wordCount":577,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["availability groups","Database-Level Health Detection","Disaster Recovery","High Availability","SQL Server","SQL Server Failover"],"articleSection":["Availability Groups","Data Integrity","Database Configuration","Windows Failover Cluster"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=677#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=677","url":"https:\/\/www.sqltabletalk.com\/?p=677","name":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-08-27T13:00:00+00:00","description":"AlwaysOn Database-Level Health Detection is an optional configuration that enhances the resilience of availability group databases. It monitors database transactions and, if an issue is detected, can automatically trigger a failover to another replica. This proactive measure helps maintain application availability even in the event of hardware or I\/O failures.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=677#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=677"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=677#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Enhancing Availability with SQL Server AlwaysOn Database-Level Health Detection"}]},{"@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"]},{"@type":"Person","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082","name":"Yvonne Vanslageren","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","caption":"Yvonne Vanslageren"},"url":"https:\/\/www.sqltabletalk.com\/?author=2"}]}},"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\/677","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\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=677"}],"version-history":[{"count":4,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/677\/revisions"}],"predecessor-version":[{"id":732,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/677\/revisions\/732"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}