A lot of clients have been asking about SQL Always On with new Citrix designs. A couple points on the PROs / CONs vs. SQL mirroring.
- Don’t have to set mirror database configuration on clients.
- Not applicable for Citrix yet, but Always On supports reading the DB from any node of the Availability group. With SQL Mirroring you can only read from active node.
- Faster failover than mirroring, if SQL nodes are in single subnet.
- Requires Enterprise Edition which is much more expensive than the Standard edition required for Mirroring.
- If you are failing over across sites / subnets, failover times will probably be slower than mirroring. If the application supports the multi-subnet failover SQL connection string, then both subnet IPs register in DNS and the app attempts connection to all IPs in parallel for the fastest failover times. Very few apps support this though, so the legacy mode is to not register all IPs in DNS, and have clustering change IP at failover. Then you have to wait for DNS changes to propagate during a failover. This is much slower than failover with traditional mirroring.
- Not all applications support Always On, particularly the multi-subnet failover option. Mirroring has been around for a long time and has much broader support.
Some additional information related to the subject can be found here:
Multi-Subnet failover connection string can be configured for XenDesktop Databases and there is a handy script to configure this -
Multi-Subnet failover option is still not supported for PVS -