{"id":470,"date":"2012-09-27T07:55:00","date_gmt":"2012-09-27T07:55:00","guid":{"rendered":"\/blogs\/jonathan\/post\/Announcing-the-SQLskills-Availability-Group-Demonstrator.aspx"},"modified":"2017-04-13T13:05:50","modified_gmt":"2017-04-13T17:05:50","slug":"announcing-the-sqlskills-availability-group-demonstrator","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/","title":{"rendered":"Announcing the SQLskills Availability Group Demonstrator"},"content":{"rendered":"<p>\nThis spring at SQL Connections, I presented a pre-conference seminar with Kimberly on the new features in SQL Server 2012, including Availability Groups.&nbsp; While on my flight to Las Vegas, I was working on an application in C# that motivated me to write a new demonstrator application for use with Availability Groups.&nbsp; I spent a little time putting together a small application that I have used for every Availability Group demonstration since, and I&rsquo;ve been asked a few times if I would make the application publicly available.&nbsp; Paul and I discussed this and agreed that we&rsquo;d offer the application as a free download.\n<\/p>\n<p>\nThe application is really simple in its design and usage, so I am going to use this post to show how to configure the application as well as how to use it for demonstrations of Availability Groups, or just to play with all the features provided by Availability Groups during your own testing.\n<\/p>\n<h2>Application Configuration Options<\/h2>\n<p>\nThe application uses a basic application configuration file that most .NET applications use.&nbsp; The configuration file is really simple and provides the ability to customize the defaults that are available in the New Connection window to simplify demonstrations based on your own environment setup.\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/141d655a\/image.png\"><img fetchpriority=\"high\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png\" border=\"0\" alt=\"image\" title=\"image\" width=\"613\" height=\"197\" \/><\/a>\n<\/p>\n<p>\nThe settings in the configuration file provide the default values for the following options in the New Connection window.\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/68006868\/image.png\"><img decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/07af4231\/image_thumb.png\" border=\"0\" alt=\"image\" title=\"image\" width=\"467\" height=\"513\" \/><\/a>\n<\/p>\n<h2>Using the application<\/h2>\n<p>\nI usually start out with a simple Availability Group (hereafter referred to as an AG) configuration where a SQL Server login is used and the AG was created through the UI.&nbsp; I use the application to connect directly to the primary server using a SQL Server login without using the Availability Group Listener to show how you can connect directly to the primary server with its name.&nbsp; Then I perform a failover to the synchronous replica that is configured for high availability, and open a new connection to show that the connectivity will fail since the SQL Server login wasn&rsquo;t created on the secondary.&nbsp; Then I use DDL to create the login and show that even though I&rsquo;ve created the login on the secondary, it will fail because the SID for the new login isn&rsquo;t the same as the SID that existed on the original primary server.&nbsp; At this point I explain that you could use sp_help_revlogin to transfer the login with the SID intact, but then show that Partially Contained Databases with database authentication can prevent having to manually migrate every login, so I failover to the original primary and setup partial containment on all the nodes and migrate the server level login to being a contained database login.&nbsp; Then I close all of the connection windows and create a new connection that uses the Availability Group Listener for the connection so that I can then failover between the primary replica and the high availability synchronous successfully. A single New Connection in the application can support this.\n<\/p>\n<p>\nThen I configure ReadOnly routing for the AG and show two connections, one configured for the Read\/Write workload, and another configured as a ReadOnly connection to the listener using a ReadOnly workload.\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/6e473ef6\/image.png\"><img decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/06d6dc47\/image_thumb.png\" border=\"0\" alt=\"image\" title=\"image\" width=\"701\" height=\"417\" \/><\/a>\n<\/p>\n<p>\nAfter setting up ReadOnly routing, and then specifying that the connection is for ReadOnly operation in the application, it will automatically redirect the connections to the first readable secondary in the routing configuration as expected.&nbsp; Performing a failover will allow the application to show the expected failover error messages and then redirect the applications connections based on the configuration of the ApplicationConnection windows to the desired hosts in the AG.\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4d53cc4f\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/50f1e72c\/image_thumb.png\" border=\"0\" alt=\"image\" title=\"image\" width=\"701\" height=\"419\" \/><\/a>\n<\/p>\n<p>\nAn example of the failover messages returned is below:\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/5085b437\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/7e06d3fa\/image_thumb.png\" border=\"0\" alt=\"image\" title=\"image\" width=\"701\" height=\"418\" \/><\/a>&nbsp;\n<\/p>\n<p>\nOnce the failover completes, the application will reconnect to the appropriate nodes based on the ReadOnly routing configuration for the AG.\n<\/p>\n<h2>Requirements<\/h2>\n<p>\nThe application requires .NET 4.0 and the SQL Server 2012 Native Client be installed to make use of the new <strong>ApplicationIntent<\/strong> connection string option.&nbsp;\n<\/p>\n<p>\n<strong><u>UPDATE:<\/u><\/strong>\n<\/p>\n<p>\nYou also need to create the following table in whatever database you are using for the demonstration:\n<\/p>\n<p>\nUSE [DBNAME]<br \/>\nGO<br \/>\nCREATE TABLE InsertCount (RowID int identity primary key)<br \/>\nGO<br \/>\nINSERT INTO InsertCount DEFAULT VALUES;<br \/>\nGO\n<\/p>\n<p>\nThe application can be downloaded from:\n<\/p>\n<p>\n<a href=\"https:\/\/www.sqlskills.com\/free-tools\/availability-group-demonstrator\/\">https:\/\/www.sqlskills.com\/free-tools\/availability-group-demonstrator\/<\/a>&nbsp;\n<\/p>\n<p>\nIf you have any questions, feel free to email me at <a href=\"mailto:jonathan@sqlskills.com\">jonathan@sqlskills.com<\/a> or through the contact form on this blog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This spring at SQL Connections, I presented a pre-conference seminar with Kimberly on the new features in SQL Server 2012, including Availability Groups.&nbsp; While on my flight to Las Vegas, I was working on an application in C# that motivated me to write a new demonstrator application for use with Availability Groups.&nbsp; I spent a [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,19,25,39],"tags":[],"class_list":["post-470","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-database-administration","category-general","category-sql-server-2012"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias<\/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\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias\" \/>\n<meta property=\"og:description\" content=\"This spring at SQL Connections, I presented a pre-conference seminar with Kimberly on the new features in SQL Server 2012, including Availability Groups.&nbsp; While on my flight to Las Vegas, I was working on an application in C# that motivated me to write a new demonstrator application for use with Availability Groups.&nbsp; I spent a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/\" \/>\n<meta property=\"og:site_name\" content=\"Jonathan Kehayias\" \/>\n<meta property=\"article:published_time\" content=\"2012-09-27T07:55:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T17:05:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png\" \/>\n<meta name=\"author\" content=\"Jonathan Kehayias\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Kehayias\" \/>\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\":\"Article\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/\"},\"author\":{\"name\":\"Jonathan Kehayias\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"headline\":\"Announcing the SQLskills Availability Group Demonstrator\",\"datePublished\":\"2012-09-27T07:55:00+00:00\",\"dateModified\":\"2017-04-13T17:05:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/\"},\"wordCount\":739,\"commentCount\":5,\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/windows-live-writer\\\/announcing-the-sqlskills-availability-gr\\\/4f70cb18\\\/image_thumb.png\",\"articleSection\":[\"Availability Groups\",\"Database Administration\",\"General\",\"SQL Server 2012\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/\",\"name\":\"Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/windows-live-writer\\\/announcing-the-sqlskills-availability-gr\\\/4f70cb18\\\/image_thumb.png\",\"datePublished\":\"2012-09-27T07:55:00+00:00\",\"dateModified\":\"2017-04-13T17:05:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/windows-live-writer\\\/announcing-the-sqlskills-availability-gr\\\/4f70cb18\\\/image_thumb.png\",\"contentUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/windows-live-writer\\\/announcing-the-sqlskills-availability-gr\\\/4f70cb18\\\/image_thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/announcing-the-sqlskills-availability-group-demonstrator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Availability Groups\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/category\\\/availability-groups\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Announcing the SQLskills Availability Group Demonstrator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\",\"name\":\"Jonathan Kehayias - The Rambling DBA\",\"description\":\"The Rambling DBA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/?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\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\",\"name\":\"Jonathan Kehayias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"caption\":\"Jonathan Kehayias\"},\"sameAs\":[\"http:\\\/\\\/3.209.169.194\\\/blogs\\\/jonathan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias","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\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/","og_locale":"en_US","og_type":"article","og_title":"Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias","og_description":"This spring at SQL Connections, I presented a pre-conference seminar with Kimberly on the new features in SQL Server 2012, including Availability Groups.&nbsp; While on my flight to Las Vegas, I was working on an application in C# that motivated me to write a new demonstrator application for use with Availability Groups.&nbsp; I spent a [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/","og_site_name":"Jonathan Kehayias","article_published_time":"2012-09-27T07:55:00+00:00","article_modified_time":"2017-04-13T17:05:50+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png","type":"","width":"","height":""}],"author":"Jonathan Kehayias","twitter_misc":{"Written by":"Jonathan Kehayias","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#article","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/"},"author":{"name":"Jonathan Kehayias","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"headline":"Announcing the SQLskills Availability Group Demonstrator","datePublished":"2012-09-27T07:55:00+00:00","dateModified":"2017-04-13T17:05:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/"},"wordCount":739,"commentCount":5,"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png","articleSection":["Availability Groups","Database Administration","General","SQL Server 2012"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/","name":"Announcing the SQLskills Availability Group Demonstrator - Jonathan Kehayias","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png","datePublished":"2012-09-27T07:55:00+00:00","dateModified":"2017-04-13T17:05:50+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#primaryimage","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png","contentUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/windows-live-writer\/announcing-the-sqlskills-availability-gr\/4f70cb18\/image_thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/announcing-the-sqlskills-availability-group-demonstrator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/"},{"@type":"ListItem","position":2,"name":"Availability Groups","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/category\/availability-groups\/"},{"@type":"ListItem","position":3,"name":"Announcing the SQLskills Availability Group Demonstrator"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/","name":"Jonathan Kehayias - The Rambling DBA","description":"The Rambling DBA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/?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\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c","name":"Jonathan Kehayias","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","caption":"Jonathan Kehayias"},"sameAs":["http:\/\/3.209.169.194\/blogs\/jonathan"]}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/comments?post=470"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/470\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/media?parent=470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/categories?post=470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/tags?post=470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}