<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Availability Groups on Andy M Mallon - AM²</title><link>https://am2.co/category/availability-groups/</link><description>Recent content in Availability Groups on Andy M Mallon - AM²</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 21 Feb 2023 13:17:04 -0500</lastBuildDate><atom:link href="https://am2.co/category/availability-groups/index.xml" rel="self" type="application/rss+xml"/><item><title>AG secondary is out of sync for hours after index maintenance</title><link>https://am2.co/2023/02/21/ag-secondary-is-out-of-sync-for-hours-after-index-maintenance/</link><pubDate>Tue, 21 Feb 2023 13:17:04 -0500</pubDate><guid>https://am2.co/2023/02/21/ag-secondary-is-out-of-sync-for-hours-after-index-maintenance/</guid><description>&lt;p&gt;&lt;a href="https://dba.stackexchange.com/q/323858/52344"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;We have a 3TB OLTP database running Siemens Opcenter MES software at one of our manufacturing plants in China. This is setup in an Always-On Availability group with one secondary node. As this is a manufacturing plant, we are only provided 11 1/2 hours every two weeks to run index maintenance when the plant is not running production. We use Hallengren scripts to run this index maintenance.&lt;/p&gt;</description></item><item><title>Stop using sp_hexadecimal &amp; sp_help_revlogin</title><link>https://am2.co/2021/07/06/dba-serverlogins/</link><pubDate>Tue, 06 Jul 2021 09:00:52 -0400</pubDate><guid>https://am2.co/2021/07/06/dba-serverlogins/</guid><description>&lt;figure class="wp-caption alignright" style="max-width:400px"&gt;&lt;a href="https://vm.tiktok.com/ZMduBrPEB/" rel="noopener" target="_blank"&gt;&lt;img src="https://am2.co/wp-content/uploads/GreenCaterpillar.png" alt="" width="400" height="400" class="size-medium wp-image-8240" /&gt;&lt;/a&gt; Caterpillars transform into beautiful butterflies to realize their full self, much in the same way &lt;code&gt;CONVERT()&lt;/code&gt; changes binary into beautiful hexadecimal strings.&lt;/figure&gt;&#10;&lt;p&gt;Since &lt;a href="https://twitter.com/AMtwo/status/1384126645053771780" rel="noopener" target="_blank"&gt;I started at Stack Overflow&lt;/a&gt;, I&amp;rsquo;ve had the chance to see some of the interesting challenges with running our databases at our scale.&lt;/p&gt;</description></item><item><title>Multi-subnet availability group, with mixed MultiSubnetFailover support (Part 2)</title><link>https://am2.co/2020/10/06/multi-subnet-registerallprovidersip-2/</link><pubDate>Tue, 06 Oct 2020 08:00:55 -0400</pubDate><guid>https://am2.co/2020/10/06/multi-subnet-registerallprovidersip-2/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=6U0C3LOwEP0"&gt;&lt;img src="https://am2.co/wp-content/uploads/AGListener01-b.jpg" alt="" width="512" height="315" class="alignright size-large wp-image-4885" /&gt;&lt;/a&gt;&#10;In &lt;a href="https://am2.co/2020/10/05/multi-subnet-registerallprovidersip-1/"&gt;yesterday&amp;rsquo;s post&lt;/a&gt;, I showed how to configure an availability group (AG) to use the &lt;code&gt;RegisterAllProvidersIP=0&lt;/code&gt; when you can&amp;rsquo;t get clients to connect using the &lt;code&gt;MultiSubnetFailover=true&lt;/code&gt; connection string attribute.&lt;/p&gt;&#10;&lt;p&gt;I mentioned that you have to make some trade-offs when you set &lt;code&gt;RegisterAllProvidersIP=0&lt;/code&gt;, and included this comparison:&lt;/p&gt;</description></item><item><title>Multi-subnet availability group, without MultiSubnetFailover support (Part 1)</title><link>https://am2.co/2020/10/05/multi-subnet-registerallprovidersip-1/</link><pubDate>Mon, 05 Oct 2020 09:00:48 -0400</pubDate><guid>https://am2.co/2020/10/05/multi-subnet-registerallprovidersip-1/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=jj8rmh8tna8"&gt;&lt;img src="https://am2.co/wp-content/uploads/AGListener01-a.jpg" alt="" width="512" height="315" class="alignright size-large wp-image-4885" /&gt;&lt;/a&gt;&#10;As a DBA, we have the opportunity &amp;amp; responsibility to build highly available database platforms for use by applications &amp;amp; users. Even if you are a DBA at a small company supporting databases for only internal applications, we are usually still responsible for providing databases as a service for application teams. Sometimes, in order for us to provide the best service, we need application teams to do some work to make use of the super awesome thing we built. And sometimes, getting application teams to make that change isn&amp;rsquo;t easy, or isn&amp;rsquo;t fast, or isn&amp;rsquo;t even possible.&lt;/p&gt;</description></item><item><title>Replication latency when an Availability Group replica is offline</title><link>https://am2.co/2020/05/04/replication-latency-when-an-availability-group-replica-is-offline/</link><pubDate>Mon, 04 May 2020 10:02:52 -0400</pubDate><guid>https://am2.co/2020/05/04/replication-latency-when-an-availability-group-replica-is-offline/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=w0nNbs8ldGY" rel="noopener noreferrer" target="_blank"&gt;&lt;img src="https://am2.co/wp-content/uploads/stormtrooper-1343772_1920-1024x529.jpg" alt="" width="512" height="265" class="alignright size-large wp-image-3224" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Assume you have configured a transactional replication publisher, which is part of an availability group (AG). Now, you have an asynchronous secondary AG (or mirroring) replica that is offline. Perhaps this is a DR node, and you are doing patching or other planned maintenance on that DR node, with it intentionally offline.&lt;/p&gt;</description></item><item><title>Testing as another user...without their password</title><link>https://am2.co/2019/12/18/testing-as-another-user-without-their-password/</link><pubDate>Wed, 18 Dec 2019 11:50:35 -0500</pubDate><guid>https://am2.co/2019/12/18/testing-as-another-user-without-their-password/</guid><description>&lt;figure class="wp-caption alignright" style="max-width:512px"&gt;&lt;a href="https://www.youtube.com/watch?v=6AXd5tcyneE"&gt;&lt;img src="https://am2.co/wp-content/uploads/greg-ortega-1LCzr14Ah5U-unsplash-1024x684.jpg" alt="" width="512" height="342" class="size-large wp-image-2381" /&gt;&lt;/a&gt; This guy doesn't have Elvis's password and is still able to impersonate him.&lt;/figure&gt;&#10;As a DBA or SQL Developer, you've surely encountered a scenario where something worked for you, but not for another user. DBAs usually are part of the sysadmin role, or have a collection of powerful permissions. If I run code as myself, I will *never* have permissions problems because my account is sysadmin. If I want to ensure permissions are correct, I need to run the code as the less-privileged account. &#10;&lt;h2 id="can-you-try-now"&gt;Can you try now?&lt;/h2&gt;&#10;&lt;h3 id="can-you-try-now-1"&gt;Can you try now?&lt;/h3&gt;&#10;&lt;h4 id="can-you-try-now-2"&gt;Can you try now?&lt;/h4&gt;&#10;&lt;h5 id="can-you-try-now-3"&gt;Can you try now?&lt;/h5&gt;&#10;&lt;p&gt;I honestly don&amp;rsquo;t think there is a more frustrating experience than getting into the feedback loop of making a permission change, and asking the user if it works, and when it doesn&amp;rsquo;t work, you try another change, and ask them to try again, and when it doesn&amp;rsquo;t work, you try another change, and ask them to try again, and when it doesn&amp;rsquo;t work, you try another change, and ask them to try again, and when it doesn&amp;rsquo;t work, you try another change, and ask them to try again&amp;hellip;&lt;/p&gt;</description></item><item><title>Copying SQL Server settings to new server</title><link>https://am2.co/2019/10/17/copying-sql-server-settings-to-new-server/</link><pubDate>Thu, 17 Oct 2019 13:26:20 -0400</pubDate><guid>https://am2.co/2019/10/17/copying-sql-server-settings-to-new-server/</guid><description>&lt;p&gt;&lt;a href="https://serverfault.com/q/988391/299354"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;We are a small business using a single SQL Server 2014 instance as our main data platform.&lt;/p&gt;&#10;&lt;p&gt;We now need to set up a second instance (2017) to hold additional data - this is to be standalone, ie not replicated or actively linked to the main server.&lt;/p&gt;</description></item><item><title>Configuring the distribution database in an Availability Group</title><link>https://am2.co/2019/04/08/configuring-the-distribution-database-in-an-availability-group/</link><pubDate>Mon, 08 Apr 2019 08:00:23 -0400</pubDate><guid>https://am2.co/2019/04/08/configuring-the-distribution-database-in-an-availability-group/</guid><description>&lt;figure class="wp-caption alignright" style="max-width:600px"&gt;&lt;a href="https://www.youtube.com/watch?v=5qSrmeiWsuc" rel="noopener noreferrer" target="_blank"&gt;&lt;img src="https://am2.co/wp-content/uploads/Replication.jpg" alt="" width="600" height="488" class="size-medium wp-image-1749" /&gt;&lt;/a&gt; I 💜 Replication&lt;/figure&gt;&#10;&lt;p&gt;Starting with SQL Server 2017 CU6 and SQL Server 2016 SP2-CU3, you can now configure your distribution database as part of an Availability Group (AG). Up until now, your distribution database could only be part of a standalone instance, or failover cluster instance (FCI). In this first round, there&amp;rsquo;s a pretty big &lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/replication/configure-distribution-availability-group" rel="noopener noreferrer" target="_blank"&gt;list of limitations &amp;amp; restrictions&lt;/a&gt;. In fact, you&amp;rsquo;ll notice that the &amp;ldquo;supported scenarios&amp;rdquo; list is shorter than the &amp;ldquo;limitations or exclusions.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Configuring Replication with Availability Groups</title><link>https://am2.co/2018/02/23/replication-availability-groups-2/</link><pubDate>Fri, 23 Feb 2018 10:00:41 -0500</pubDate><guid>https://am2.co/2018/02/23/replication-availability-groups-2/</guid><description>&lt;figure class="wp-caption alignright" style="max-width:500px"&gt;&lt;a href="https://www.youtube.com/watch?v=_HONxwhwmgU&amp;amp;feature=youtu.be&amp;amp;t=3m3s" target="_blank" rel="noopener noreferrer"&gt;&lt;img class="wp-image-1347" src="https://am2.co/wp-content/uploads/clones-300x171.jpg" alt="" width="500" height="284" /&gt;&lt;/a&gt; I fancy myself more of a Jedi, but I appreciate the Empire's dedication to replication&lt;/figure&gt;&#10;&lt;p&gt;I&amp;rsquo;ve used replication and Availability Groups together before. Replication works great with an AG as both a publisher or a subscriber (though, not as a distributor&amp;ndash;you can&amp;rsquo;t add the distribution database to an AG).  I was surprised when I recently ran into a problem configuring replication on a database that was in an AG.&lt;/p&gt;</description></item><item><title>Spread workload with always on high availability groups</title><link>https://am2.co/2017/06/27/spread-workload-with-always-on-high-availability-groups/</link><pubDate>Tue, 27 Jun 2017 14:04:54 -0400</pubDate><guid>https://am2.co/2017/06/27/spread-workload-with-always-on-high-availability-groups/</guid><description>&lt;p&gt;&lt;a href="https://stackoverflow.com/q/24453807/1948808"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;I am wondering if it is possible to split up a very large query to have parts of it done on the secondary read only servers, or If this feature only allows me to run separate queries or scripts on the secondary servers. I would also like to know if anyone is using AlwaysOn High availability groups for this purpose, how is it working for you?&lt;/p&gt;</description></item><item><title>Transaction Replication on AlwaysOn</title><link>https://am2.co/2017/04/17/transaction-replication-on-alwayson/</link><pubDate>Mon, 17 Apr 2017 22:21:43 -0400</pubDate><guid>https://am2.co/2017/04/17/transaction-replication-on-alwayson/</guid><description>&lt;p&gt;&lt;a href="https://dba.stackexchange.com/q/171244/52344"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;In our AlwayOn environment I have two SQL servers 2014 Ent.edition (SERVER A, and SERVER B). I setup a transaction replication for [database A ], pointing to listener which shouldn't cause any issue if a failover happened. Tested, worked just fine after a failover, but when I shut off one of the servers in AOAG ,in test environment, replication stops working. There is no error on the replication monitor. For testing purpose,I have inserted few records on the database it works fine on AOAG, but on the Subscriber the data modification is not replicated until I bring up the other server. Once the server is up, then the replication start to work. I'm pretty sure, I might be missing something, this can't be this way by design. &lt;/p&gt;</description></item><item><title>AlwaysON Migrate from 2014 to 2016</title><link>https://am2.co/2016/09/01/alwayson-migrate-from-2014-to-2016/</link><pubDate>Thu, 01 Sep 2016 19:19:24 -0400</pubDate><guid>https://am2.co/2016/09/01/alwayson-migrate-from-2014-to-2016/</guid><description>&lt;p&gt;&lt;a href="https://dba.stackexchange.com/q/148594/52344"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;I have like 20 Listners on 2014 with approx 500 DBS, &lt;/p&gt;&#10;&lt;p&gt;what is the best way to migrate these with least downtime, effort&lt;/p&gt;&#10;&lt;p&gt;My idea is:&#10; Stop access&#10; Backup dbs&#10; Start restore dbs&#10; While restore is running:&#10; Drop AOG on 2014&#10; Create it on 2016&#10; Done&lt;/p&gt;</description></item><item><title>Podcast: Mirroring, Availability Groups, Replication, and Log shipping</title><link>https://am2.co/2016/08/31/podcast-mirroring-availability-groups-replication-log-shipping/</link><pubDate>Wed, 31 Aug 2016 09:29:03 -0400</pubDate><guid>https://am2.co/2016/08/31/podcast-mirroring-availability-groups-replication-log-shipping/</guid><description>&lt;p&gt;&lt;a href="http://sqldatapartners.com/podcast/"&gt;&lt;img class="alignright wp-image-621 size-medium" src="https://am2.co/wp-content/uploads/SQLDataPartnersPodcast-300x300.png" alt="SQL Data Partners Podcast" width="300" height="300" /&gt;&lt;/a&gt;Have you ever wondered what the best option is for making your data available in your environment? I was asked by Carlos L Chacon (&lt;a href="http://sqldatapartners.com/author/carlosjr/" target="_blank"&gt;blog&lt;/a&gt;|&lt;a href="https://twitter.com/CarlosLChacon" target="_blank"&gt;twitter&lt;/a&gt;) to be part of a panel on his podcast for an episode discussing some of the options&amp;ndash;availability groups, mirroring, log shipping, and replication. We cover each topic in detail and explain the positives and negatives of each one.&lt;/p&gt;</description></item><item><title>What is the benefit of having multiple databases in the same Availability Group vs single AG per database</title><link>https://am2.co/2016/08/08/what-is-the-benefit-of-having-multiple-databases-in-the-same-availability-group-vs-single-ag-per-database/</link><pubDate>Mon, 08 Aug 2016 06:11:50 -0400</pubDate><guid>https://am2.co/2016/08/08/what-is-the-benefit-of-having-multiple-databases-in-the-same-availability-group-vs-single-ag-per-database/</guid><description>&lt;p&gt;&lt;a href="https://dba.stackexchange.com/q/146226/52344"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;We are planning a migration from current mirroring architecture to Availability Groups for several databases. For every Database we have defined the primary/secondary replica configuration. &lt;/p&gt;&#10;&lt;p&gt;The question that I'm unsure is: do we need to group the databases with the same primary/secondary configuration into the same AG, or use one AG per Database. What are pros&amp;amp;cons of having individual AGs vs AG with multiple databases? Is there a best practice to determine if a database needs its own AG or can be combined with others? Any performance or failover advantages?&lt;/p&gt;</description></item><item><title>ReportServerTempDB in AlwaysOn Availability group</title><link>https://am2.co/2016/04/11/reportservertempdb-in-alwayson-availability-group/</link><pubDate>Mon, 11 Apr 2016 16:01:57 -0400</pubDate><guid>https://am2.co/2016/04/11/reportservertempdb-in-alwayson-availability-group/</guid><description>&lt;p&gt;&lt;a href="https://dba.stackexchange.com/q/134983/52344"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;ReportserverTempdb logfile is 6TB in size and growing and I need help. I am supporting a huge reporting server farm and the client wants reporting services to be in AlawysON Availability group(AAG) and we configured reportserver and reportserverTempDB on in three node Primary replica, synchronize Secondary replica and DR in a different location with manual synchronization.&#10;Microsoft recommends reportservertempdb to be in simple recovery mode but if you add it to AAG that is not an option. Does anyone has reportservertempdb in AAG?&#10;I would like to advise customer to take reporservertempDB out of AAG and we can just keep the copy of the reportservertempdb on each node and that should be fine.&#10;Please advise.&lt;/p&gt;</description></item><item><title>DROP TABLE Bug on Filestream Garbage Collection</title><link>https://am2.co/2015/12/08/bug-in-filestream-gc-ag/</link><pubDate>Tue, 08 Dec 2015 15:36:05 -0500</pubDate><guid>https://am2.co/2015/12/08/bug-in-filestream-gc-ag/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=-IaeTAb0rdk"&gt;&lt;img src="https://am2.co/wp-content/uploads/trash-truck-james-day-ECyvZuZeLGc-unsplash-768x1024.jpg" alt="" width="384" height="512" class="alignright size-large wp-image-3225" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;FILESTREAM is not a particularly popular feature of SQL Server&amp;ndash;if you&amp;rsquo;re using it, you are in the minority. If you have a database with filestream in an Availability Group, then you&amp;rsquo;re REALLY in the minority. At my 9-5, this is being done, and it&amp;rsquo;s apparent that this combination of features isn&amp;rsquo;t a robust combination.&lt;/p&gt;</description></item><item><title>Will Transaction Log backup to Nul break Always On Availability Group configuration?</title><link>https://am2.co/2015/08/31/will-transaction-log-backup-to-nul-break-always-on-availability-group-configuration/</link><pubDate>Mon, 31 Aug 2015 23:08:35 -0400</pubDate><guid>https://am2.co/2015/08/31/will-transaction-log-backup-to-nul-break-always-on-availability-group-configuration/</guid><description>&lt;p&gt;&lt;a href="https://stackoverflow.com/q/32321245/1948808"&gt;&lt;img src="https://am2.co/wp-content/uploads/blockquote.png" alt="clip art of &#10;a double-quote character" width="100" height="75" class="alignleft size-full wp-image-55062" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="question"&gt;Question&lt;/h2&gt;&#10;&lt;p&gt;Imagine we have two nodes participating in SQL 2012 AO. This is a test instance. During one of the index rebuild operation the log was grown up really big (250 GB). We are unable to back it up due to space constraint. What if we backup the Tlog to Nul (just to shrink it down) – will that break Always On?&lt;/p&gt;</description></item><item><title>Using SQL Agent MSX for Availability Groups</title><link>https://am2.co/2015/07/07/using-sql-agent-msx-for-availability-groups/</link><pubDate>Tue, 07 Jul 2015 00:22:00 -0400</pubDate><guid>https://am2.co/2015/07/07/using-sql-agent-msx-for-availability-groups/</guid><description>&lt;img src="https://am2.co/wp-content/uploads/13195035-887b-4719-bd2d-63e7ac4d8f88-large11.jpg" alt="" width="450" height="316" class="alignright size-full wp-image-564" /&gt;&#10;Availability Groups (AGs) are all the rage these days. Every SQL Saturday, every local Users Group, bloggers and DBAs everywhere are all talking about how cool they are. There's a lot of talk about how AGs provide a compelling alternative to Failover Cluster Instances (FCIs). The cost (nothing is free, of course) is that with AGs, you have non-contained objects that you need to manually keep in sync between nodes.&#10;&lt;p&gt;A lot has been said and blogged about syncing non-contained objects. &lt;a href="https://www.sqlskills.com/blogs/jonathan/synchronize-availability-group-logins-and-jobs/" target="_blank" rel="noopener noreferrer"&gt;Here&lt;/a&gt;. &lt;a href="http://sqlmag.com/blog/alwayson-availability-groups-and-sql-server-jobs-part-4-synchronizing-server-level-details" target="_blank" rel="noopener noreferrer"&gt;Here&lt;/a&gt;. &lt;a href="http://www.brentozar.com/archive/2014/11/change-alwayson-availability-groups/" target="_blank" rel="noopener noreferrer"&gt;Here&lt;/a&gt;. &lt;a href="https://sql2012alwaysonlogin.codeplex.com/" target="_blank" rel="noopener noreferrer"&gt;Here&lt;/a&gt;. And plenty of other places.&lt;/p&gt;</description></item></channel></rss>