{"id":616,"date":"2011-01-31T12:29:00","date_gmt":"2011-01-31T12:29:00","guid":{"rendered":"\/blogs\/paul\/post\/Importance-of-monitoring-a-database-mirroring-session.aspx"},"modified":"2020-12-31T13:27:36","modified_gmt":"2020-12-31T21:27:36","slug":"importance-of-monitoring-a-database-mirroring-session","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/","title":{"rendered":"Importance of monitoring a database mirroring session"},"content":{"rendered":"<p>\n<font face=\"verdana,geneva\" size=\"2\">Last week I kicked off a survey about how you monitor your database mirroring sessions. See <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/survey-monitoring-database-mirroring\/\"><font face=\"verdana,geneva\" size=\"2\">here<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> for the original post. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Here are the results of the survey: <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">&nbsp;<img decoding=\"async\" src=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg\" alt=\"\" \/> <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The &quot;Other&quot; values were: <\/font>\n<\/p>\n<ul>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">6 people monitor mirroring session state changes <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">One uses a 3rd-party product to do monitoring <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">One monitors response time for the application <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">One made a sheep joke &#8211; very good <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">8 people don&#39;t use mirroring, which isn&#39;t relevant here <\/font>\n\t<\/div>\n<\/li>\n<\/ul>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">In my opinion, the only people who are monitoring mirroring correctly are those who picked: <\/font>\n<\/p>\n<ul>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">All of the above metrics <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">SEND and REDO queue sizes <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">Comprehensive monitoring <\/font>\n\t<\/div>\n<\/li>\n<\/ul>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The problem with database mirroring is the hype around it providing instant failure detection and instant failover. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">These properties are mythical. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">In reality, the time it takes to detect a failure depends. The time it takes to failover depends. I&#39;ve written about these in the past: <\/font>\n<\/p>\n<ul>\n<li>\n<div>\n\t<a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/a-sql-server-dba-myth-a-day-1030-database-mirroring-detects-failures-immediately\/\"><font face=\"verdana,geneva\" size=\"2\">A SQL Server DBA myth a day: (10\/30) database mirroring detects failures immediately<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/a-sql-server-dba-myth-a-day-1130-database-mirroring-failover-is-instantaneous\/\"><font face=\"verdana,geneva\" size=\"2\">A SQL Server DBA myth a day: (11\/30) database mirroring failover is instantaneous<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> <\/font>\n\t<\/div>\n<\/li>\n<\/ul>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">It is absolutely essential that you monitor at least the SEND queue size and the REDO queue size of a mirroring session. <\/font>\n<\/p>\n<ul>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">The SEND queue size shows how much transaction log has been generated on the principal server but has not yet been sent to the mirror server.&nbsp;If it is&nbsp;non-zero, means the mirroring state is not SYNCHRONIZED, meaning that an automatic failover cannot occur. Furthermore, the SEND queue size is an indication of the data loss that will occur if the principal database were to suffer a disaster. You need to monitor this to ensure the size of the SEND queue does not exceed your maximum allowable data loss SLA (or RPO) for the database being mirrored. <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">The REDO queue size shows how much transaction log exists in the mirror database that has not yet been replayed on the mirror database. (Remember that log records just have to be hardened on the mirror database&#39;s log drive, not replayed &#8211; that is done as an ongoing process on the mirror server.) If a mirroring failover occurs, the mirror database cannot be accessed until all transaction log records in the REDO queue have been replayed on the mirror database &#8211; essentially crash recovery has to occur. The larger the REDO queue, the longer a failover will take. (Remember that in Enterprise Edition, fast recovery comes into play and the database becomes available after the REDO phase of recovery has completed and before the UNDO phase begins.) You need to monitor this to ensure the size of the REDO queue does not exceed your maximum allowable downtime SLA (or RTO) for the database being mirrored. <\/font>\n\t<\/div>\n<\/li>\n<\/ul>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The oldest unsent transaction is another way to monitor the instantaneous amount of data loss you would suffer if the principal database suffered a disaster. It applies in all modes of database mirroring, because even if you are using synchronous mirroring, the principal and mirror can become disconnected, or you may pause mirroring. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The mirror commit threshold is good to monitor to see what kind of delay is being added to transactions waiting to commit on the principal because their log records have not been acknowledged as written to disk on the mirror. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Books Online discusses all of these <\/font><a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/database-engine\/database-mirroring\/database-mirroring-monitor-warnings-page\"><font face=\"verdana,geneva\" size=\"2\">here<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">There are a bunch of performance counters for database mirroring but unfortunately the Books Online entry for them is very sparse. The best place these are documented online that I know if is a blog post of mine from 2008 (which the KB article about configuring database mirroring actually references too). See <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-new-performance-counters-for-database-mirroring\/\"><font face=\"verdana,geneva\" size=\"2\">SQL Server 2008: New Performance Counters for Database Mirroring<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For those of you who don&#39;t know how to monitor database mirroring, there is a half-decent tool in SSMS called the Database Mirroring Monitor. It allows you to easily configure alert thresholds the four metrics I discuss above. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Here&#39;s a picture of it running inside the VPC I use to demo mirroring for the <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/all-mcm-free-training-videos-now-available\/\"><font face=\"verdana,geneva\" size=\"2\">MCM prep videos<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">&nbsp;<img decoding=\"async\" src=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitor.jpg\" alt=\"\" \/><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">It&#39;s very easy to use and you can read more about it in Books Online <\/font><a href=\"https:\/\/msdn.microsoft.com\/Areas\/Epx\/Content\/500.htm?aspxerrorpath=\/en-us\/library\/ms365809.aspx\"><font face=\"verdana,geneva\" size=\"2\">here<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">.<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">MCM Robert Davis (<\/font><a href=\"http:\/\/www.sqlsoldier.com\/wp\/\"><font face=\"verdana,geneva\" size=\"2\">blog <\/font><\/a><font face=\"verdana,geneva\" size=\"2\">| <\/font><a href=\"https:\/\/mobile.twitter.com\/signup#!\/SQLSoldier\/\"><font face=\"verdana,geneva\" size=\"2\">twitter<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">) also covers monitor database mirroring in his excellent book &#8211; see <\/font><a href=\"https:\/\/www.amazon.com\/Server-2008-Mirroring-Experts-Voice\/dp\/1430224231\/ref=sr_1_3?ie=UTF8&amp;qid=1296507716&amp;sr=8-3\"><font face=\"verdana,geneva\" size=\"2\">here<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">.<\/font>\n<\/p>\n<p>\n<font size=\"2\">Bottom line: you must monitor database mirroring to ensure the mirroring session is preserving your downtime and data-loss SLAs.<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Happy monitoring!<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week I kicked off a survey about how you monitor your database mirroring sessions. See here for the original post. Here are the results of the survey: &nbsp; The &quot;Other&quot; values were: 6 people monitor mirroring session state changes One uses a 3rd-party product to do monitoring One monitors response time for the application [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,46,91],"tags":[],"class_list":["post-616","post","type-post","status-publish","format-standard","hentry","category-database-mirroring","category-high-availability","category-surveys"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Importance of monitoring a database mirroring session - 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\/importance-of-monitoring-a-database-mirroring-session\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Importance of monitoring a database mirroring session - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Last week I kicked off a survey about how you monitor your database mirroring sessions. See here for the original post. Here are the results of the survey: &nbsp; The &quot;Other&quot; values were: 6 people monitor mirroring session state changes One uses a 3rd-party product to do monitoring One monitors response time for the application [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2011-01-31T12:29:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-31T21:27:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg\" \/>\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=\"4 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\/importance-of-monitoring-a-database-mirroring-session\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/\",\"name\":\"Importance of monitoring a database mirroring session - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg\",\"datePublished\":\"2011-01-31T12:29:00+00:00\",\"dateModified\":\"2020-12-31T21:27:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg\",\"contentUrl\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Importance of monitoring a database mirroring session\"}]},{\"@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":"Importance of monitoring a database mirroring session - 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\/importance-of-monitoring-a-database-mirroring-session\/","og_locale":"en_US","og_type":"article","og_title":"Importance of monitoring a database mirroring session - Paul S. Randal","og_description":"Last week I kicked off a survey about how you monitor your database mirroring sessions. See here for the original post. Here are the results of the survey: &nbsp; The &quot;Other&quot; values were: 6 people monitor mirroring session state changes One uses a 3rd-party product to do monitoring One monitors response time for the application [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/","og_site_name":"Paul S. Randal","article_published_time":"2011-01-31T12:29:00+00:00","article_modified_time":"2020-12-31T21:27:36+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg","type":"","width":"","height":""}],"author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/","name":"Importance of monitoring a database mirroring session - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg","datePublished":"2011-01-31T12:29:00+00:00","dateModified":"2020-12-31T21:27:36+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#primaryimage","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg","contentUrl":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2011\/1\/dbmmonitoring.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/importance-of-monitoring-a-database-mirroring-session\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"Importance of monitoring a database mirroring session"}]},{"@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\/616","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=616"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/616\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}