{"id":3820,"date":"2014-06-06T07:27:00","date_gmt":"2014-06-06T05:27:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/"},"modified":"2014-06-06T07:27:00","modified_gmt":"2014-06-06T05:27:00","slug":"sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/","title":{"rendered":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager"},"content":{"rendered":"<p><img decoding=\"async\" class=\"blog-image aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\" alt=\"\" \/><\/p>\n<p>A couple of weeks ago, I worked for a customer that wanted to implement SQL Server 2012 (and not SQL Server 214) AlwaysOn with availability groups. During our tests we performed a bunch of failover tests and the customer tried to perform a failover of one of the installed availability group by using the failover cluster manager (FCM). Of course, I told him this is not best practice because the failover cluster manager is not aware of the synchronization state of the availability group. But with SQL Server 2014, the story has changed because I noticed a different behavior. I would like to share this information with you in this posting.<\/p>\n<p>But let me first demonstrate the SQL Server 2012 behavior with the following example:<\/p>\n<p>I have an availability group named SQL12 configured with 2 synchronous replicas and automatic failover. However, as you can see, the synchronization state of my availability database is not healthy as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_not_healthy.jpg\" alt=\"blog11_-_0_-_agg_sql12_not_healthy\" width=\"587\" height=\"323\" \/><\/p>\n<p>Now, if I try to failover my availability group using the failover cluster manager &#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_fcm.jpg\" alt=\"blog11_-_0_-_agg_sql12_fcm\" width=\"491\" height=\"86\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_try_to_failover_by_using_FCM.jpg\" alt=\"blog11_-_0_-_agg_sql12_try_to_failover_by_using_FCM\" width=\"389\" height=\"124\" \/><\/p>\n<p>&#8230;. the next available node is SQL143 &#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_choose_the_next_node_by_using_FCM.jpg\" alt=\"blog11_-_0_-_agg_sql12_choose_the_next_node_by_using_FCM\" width=\"340\" height=\"162\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_try_to_failover_by_using_FCM_2.jpg\" alt=\"blog11_-_0_-_agg_sql12_try_to_failover_by_using_FCM_2\" width=\"490\" height=\"42\" \/><\/p>\n<p>&#8230; and we can notice the failover did not occur as expected because the SQL12 resource is still on the SQL141 node as shown in the following picture:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_fcm.jpg\" alt=\"blog11_-_0_-_agg_sql12_fcm\" width=\"479\" height=\"84\" \/><\/p>\n<p>Having a look at the cluster error log does not help us in this case because we have a classic 1069 error number without helpful information:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_cluster_error_log.jpg\" alt=\"blog11_-_0_-_agg_sql12_cluster_error_log\" width=\"483\" height=\"272\" \/><\/p>\n<p>Generating detailed cluster error logs could help us but I prefer to directly look at the SQL Server side for the moment. The AlwaysOn_health extended event is a good start to check for some existing records associated to the problem.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe\" width=\"587\" height=\"177\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>We have indeed some information about the failover attempt. First the SQL141SQL12 replica state changed from PRIMARY_NORMAL to RESOLVING_NORMAL due to the manual failover issued by the FCM.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe_-_1.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe_-_1\" width=\"368\" height=\"107\" \/><\/p>\n<p>Then we can see an error message that explains that the dummy database is changing its role from PRIMARY to RESOLVING because there is a problem with a role synchronization. This error is issued by the forced failover of the availability group resource that I used.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe_-_2.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe_-_2\" width=\"422\" height=\"88\" \/><\/p>\n<p>Finally, we notice the failover process did not complete succesfully and the dummy database failbacks on the SQL141SQL12 replica (availability_replica_id 1B9007CA-EE3F-486D-A974-838EFED0203D associated to the SQL141SQL12 replica in my case)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe_-_3.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe_-_3\" width=\"450\" height=\"195\" \/><\/p>\n<p>On the other side, the SQL143SQL12 secondary replica also features a lot of useful information:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe_-_4.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe_-_4\" width=\"523\" height=\"201\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_0_-_agg_sql12_alwayson_xe_-_5.jpg\" alt=\"blog11_-_0_-_agg_sql12_alwayson_xe_-_5\" width=\"435\" height=\"157\" \/><\/p>\n<p>To summarize, this test demonstrates clearly that the FCM is not aware of the availability databases synchronization state inside an availability group. Using FCM may result in unintended outcomes, including unexpected downtime!<\/p>\n<p>Now, it&#8217;s time to test the same scenario with SQL Server 2014 and a configured availability group. During the failover attempt, I get the following error message:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_1_-_failover_cluster_sql14.jpg\" alt=\"blog11_-_1_-_failover_cluster_sql14\" width=\"595\" height=\"58\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_2_-_failover_cluster_sql14.jpg\" alt=\"blog11_-_2_-_failover_cluster_sql14\" width=\"419\" height=\"190\" \/><\/p>\n<p>If we take a look at the possible owners of the corresponding availability group resource, we can see that the current cluster node that hosts the availability group is the only possible owner &#8211; unlike SQL Server 2012.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog11_-_2_-_possible_owners_sql14.jpg\" alt=\"blog11_-_2_-_possible_owners_sql14\" width=\"317\" height=\"325\" \/><\/p>\n<p>As a reminder, possible and preferred owners are resetted during the availability group creation and failover based on the primary replica and its secondaries. For fun, I decided to compare the two processes issued by the both versions of SQL Server and availability groups (SQL Server 2012 and SQL Server 2014) after having triggered an availability group failover and generating the associated cluster logs:<\/p>\n<p style=\"background: none repeat scroll 0% 0% #a6a6a6\">Get-ClusterLog -UseLocalTime -Span 5<\/p>\n<h3>Result with SQL Server 2012<\/h3>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.088 INFO [RCM] rcm::RcmApi::AddPossibleOwner: (sql12, 1)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.088 INFO [GUM] Node 1: executing request locally, gumId:215, my action: \/rcm\/gum\/AddPossibleOwner, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.088 INFO [RCM] rcm::RcmGum::AddPossibleOwner(sql12,1)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 ERR\u00a0\u00a0 mscs::GumAgent::ExecuteHandlerLocally: (5010)&#8217; because of &#8216;The specified node is already a possible owner.&#8217;<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN [DM] Aborting group transaction 29:29:613+1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 ERR\u00a0\u00a0 [RCM] rcm::RcmApi::AddPossibleOwner: (5010)&#8217; because of &#8216;Gum handler completed as failed&#8217;<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN [RCM] sql12 cannot be hosted on node 3<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN [RCM] Possible owners: <\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN\u00a0\u00a0\u00a0\u00a0 2<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN\u00a0\u00a0\u00a0\u00a0 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 WARN <\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] rcm::RcmApi::RemovePossibleOwner: (sql12, 2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [GUM] Node 1: executing request locally, gumId:215, my action: \/rcm\/gum\/RemovePossibleOwner, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] rcm::RcmGum::RemovePossibleOwner(sql12,2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] Removing node 2 from resource &#8216;sql12&#8217;.<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [GEM] Node 1: Sending 1 messages as a batched GEM message<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] rcm::RcmApi::AddPossibleOwner: (sql12, 2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [GUM] Node 1: executing request locally, gumId:216, my action: \/rcm\/gum\/AddPossibleOwner, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] rcm::RcmGum::AddPossibleOwner(sql12,2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] Adding node 2 to resource &#8216;sql12&#8217;.<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [GEM] Node 1: Sending 1 messages as a batched GEM message<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [GUM] Node 1: executing request locally, gumId:217, my action: \/rcm\/gum\/SetGroupPreferredOwners, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO [RCM] rcm::RcmGum::SetGroupPreferredOwners(sql12,<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO\u00a0\u00a0\u00a0\u00a0 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO\u00a0\u00a0\u00a0\u00a0 2<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000778::2014\/05\/26-22:10:55.103 INFO <\/span><\/div>\n<p>&nbsp;<\/p>\n<h3>Result with SQL Server 2014<\/h3>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 INFO [RCM] rcm::RcmApi::AddPossibleOwner: (AdventureWorksGrp, 1)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 INFO [GUM] Node 1: executing request locally, gumId:230, my action: \/rcm\/gum\/AddPossibleOwner, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 INFO [RCM] rcm::RcmGum::AddPossibleOwner(AdventureWorksGrp,1)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 ERR\u00a0\u00a0 mscs::GumAgent::ExecuteHandlerLocally: (5010)&#8217; because of &#8216;The specified node is already a possible owner.&#8217;<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN [DM] Aborting group transaction 29:29:627+1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 ERR\u00a0\u00a0 [RCM] rcm::RcmApi::AddPossibleOwner: (5010)&#8217; because of &#8216;Gum handler completed as failed&#8217;<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN [RCM] AdventureWorksGrp cannot be hosted on node 3<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN [RCM] Possible owners: <\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN\u00a0\u00a0\u00a0\u00a0 2<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN\u00a0\u00a0\u00a0\u00a0 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000bb0::2014\/05\/26-22:14:54.578 WARN <\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000c34::2014\/05\/26-22:14:54.578 INFO [RCM] rcm::RcmApi::RemovePossibleOwner: (AdventureWorksGrp, 2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000c34::2014\/05\/26-22:14:54.578 INFO [GUM] Node 1: executing request locally, gumId:230, my action: \/rcm\/gum\/RemovePossibleOwner, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000c34::2014\/05\/26-22:14:54.578 INFO [RCM] rcm::RcmGum::RemovePossibleOwner(AdventureWorksGrp,2)<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.00000c34::2014\/05\/26-22:14:54.578 INFO [RCM] Removing node 2 from resource &#8216;AdventureWorksGrp&#8217;.<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.00000c34::2014\/05\/26-22:14:54.578 INFO [GEM] Node 1: Sending 1 messages as a batched GEM message<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%\">000005d4.000011f4::2014\/05\/26-22:14:54.578 INFO [GUM] Node 1: executing request locally, gumId:231, my action: \/rcm\/gum\/SetGroupPreferredOwners, # of updates: 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.000011f4::2014\/05\/26-22:14:54.578 INFO [RCM] rcm::RcmGum::SetGroupPreferredOwners(AdventureWorksGrp,<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.000011f4::2014\/05\/26-22:14:54.578 INFO\u00a0\u00a0\u00a0\u00a0 1<\/span><\/div>\n<div style=\"background: none repeat scroll 0% 0% #bfbfbf\"><span style=\"font-size: 9pt;line-height: 107%;background: none repeat scroll 0% 0% yellow\">000005d4.000011f4::2014\/05\/26-22:14:54.578 INFO <\/span><\/div>\n<p>As I said earlier, possible and preferred owners properties are managed automatically by SQL Server AlwaysOn. We can see here this is done by the cluster resource control manager and the following functions:<\/p>\n<p><em>rcm::RcmApi::AddPossibleOwner()<\/em>, <em>rcm::RcmApi::RemovePossibleOwner()<\/em> and <em>rcm::RcmApi::SetGroupPreferredOwners ()<\/em> .<\/p>\n<p>You can notice that two nodes are added as possible owners with SQL Server 12. However, with SQL Server 2014 only one node is added as possible owner of the concerned availability group resource. Interesting change isn&#8217;t it?<\/p>\n<p><span style=\"float: none;background-color: #ffffff;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px;text-transform: none\">By David Barbarin<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of weeks ago, I worked for a customer that wanted to implement SQL Server 2012 (and not SQL Server 214) AlwaysOn with availability groups. During our tests we performed a bunch of failover tests and the customer tried to perform a failover of one of the installed availability group by using the failover [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":3590,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[466,38,84,49,52],"type_dbi":[],"class_list":["post-3820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware-storage","tag-alwayson","tag-cluster","tag-high-availability","tag-microsoft","tag-sql-server-2014"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager - dbi Blog<\/title>\n<meta name=\"description\" content=\"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).\" \/>\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.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager\" \/>\n<meta property=\"og:description\" content=\"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-06-06T05:27:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"245\" \/>\n\t<meta property=\"og:image:height\" content=\"149\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager\",\"datePublished\":\"2014-06-06T05:27:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\"},\"wordCount\":1092,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\",\"keywords\":[\"AlwaysOn\",\"Cluster\",\"High availability\",\"Microsoft\",\"SQL Server 2014\"],\"articleSection\":[\"Hardware &amp; Storage\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\",\"name\":\"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\",\"datePublished\":\"2014-06-06T05:27:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"description\":\"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg\",\"width\":245,\"height\":149},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager - dbi Blog","description":"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).","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.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager","og_description":"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/","og_site_name":"dbi Blog","article_published_time":"2014-06-06T05:27:00+00:00","og_image":[{"width":245,"height":149,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager","datePublished":"2014-06-06T05:27:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/"},"wordCount":1092,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg","keywords":["AlwaysOn","Cluster","High availability","Microsoft","SQL Server 2014"],"articleSection":["Hardware &amp; Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/","name":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg","datePublished":"2014-06-06T05:27:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"description":"It is no longer possible to failover SQL Server 2014 availability groups using the Microsoft Failover Cluster Manager (FCM).","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_sqlserver2014.jpg","width":245,"height":149},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2014-availability-groups-failover-impossible-with-failover-cluster-manager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2014: Availability groups failover impossible with Failover Cluster Manager"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=3820"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3820\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/3590"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=3820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=3820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=3820"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=3820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}