Always On Availability Groups in Standard Edition
Always On Availability Groups is a wonderful feature in SQL Server that provides high availability (HA) and/or disaster recovery (DR) solutions for all kinds of use cases and scenarios. This feature has many benefits, such as multiple replicas, automatic failover and read-only access to secondary replicas, to name just a few. For an introduction to the topic, visit this page. For more information and a list of all the benefits, visit this page.
This feature was first introduced in SQL Server 2012, and it was an Enterprise Edition feature only. There were many enhancements to this feature over time, such as additional replicas and load balancing. Of-course, Enterprise Edition customers can (and should) enjoy all the benefits.
But what if I use Standard Edition? What do I get?
Starting with SQL Server 2016, there is a limited flavor of this feature called Basic Availability Groups. There are many limitations, and they are all documented here. Basically, you get to use a single availability database with a single secondary replica, with no read access on the secondary replica. But you can still decide whether synchronization should be synchronous or asynchronous, which is already better than what we have with Database Mirroring in Standard Edition.
Starting with SQL Server 2016 Service Pack 1, we can also use database snapshots in Standard Edition. So we can create a database snapshot on the availability database in the secondary replica, and read from the database snapshot. You might want to explore this option, and read about it here.
In SQL Server 2017 Microsoft added a new flavor called Read-Scale Availability Groups. This is different, because the goal here is not high availability or disaster recovery, but rather read-scalability. As opposed to the other flavors, in RSAG there is no cluster, and there is also no automatic failover mechanism. But you can set up multiple secondary replicas with read-only access and load balancing, and offload read workloads from the primary replica. This is a great scalability feature, and you can read more about it here.
Now, if you check Microsoft documentation regarding the editions and supported features of SQL Server, you will be happy to see that RSAG is supported in Standard Edition. I was happy to see it too. Unfortunately, if you try to set up a Read-Scale Availability Group on Standard Edition, it will not work. You will only be able to create a Basic Availability Group, as discussed earlier.
I checked with Microsoft, and they confirmed that there is a mistake in the documentation. In the table that shows all the high availability features, in the intersection between Read-Scale Availability Groups and Standard Edition, it should be "No" instead of "Yes".
I asked them to fix the mistake ASAP, so that people don't fall in that trap and make plans to use RSAG in Standard Edition.
But regardless of the documentation mistake, if you need read-scalability, then you probably need Enterprise Edition. If you can't afford to have Enterprise Edition, then your next best option for read-scalability is Transactional Replication. But this is a topic for a separate blog post...