Our Companies vision is to achieve zero downtime application upgrade (minimum downtime in seconds) which is already up and running with Always On Availability Group.
The current design for our application is to have 2 application server (grouped together by using windows server failover clustering) and 2 database servers (grouped together by using windows server failover clustering and ALwaysOn Availability Group). Both individually joined with WSFC.
Both Application server point to the primary database in the cluster using listener IP. No queries are made to secondary.
If my application upgrade contains of version upgrades including SQL, windows and also database schema changes to support new enhanced features of our application. How can we leverage AlwaysOn AG to handle this kind of upgrade with zero downtime/minimal downtime?
We release application updates on an 5-6 months cycle and any release could include schema changes and/or data migrations.
What I am trying to understand is whether or not the HA/DR solution handles the schema changes transparently (new columns, indexes get added to secondaries) or is manual intervention required to create the schema on each instance and then turn Always On <g class="gr_ gr_100 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar only-ins replaceWithoutSep" data-gr-id="100" id="100">back</g> on.
The data migration piece I'm assuming is handled transparently but would like to confirm that as well.
I guess I am also making a blanket assumption that there is no difference in these behaviors based on the Availability Groups configuration which may be false as well. Please let me know.
In a nutshell; In any given release of my application, I may change a very large table (10s to 100s of millions of records) by adding columns to it. Some columns may be "net new" so they can make use of the Enterprise Online schema change functionality. Other columns may be a refactoring of an existing column (FullName gets split into FirstName and LastName) and migration will be run for each row in the table to populate these fields. Do any of these behaviors require DBAs to change the AlwaysOn configuration or is this handled by default and all secondaries get the DDL and DML statements "for free"?
Surabhi