High Availability, just mentioning these words brings fear to some and delight to others. Gartner describes High Availability “As business operations' dependency on IT infrastructure continues to increase in response to the need for faster and leaner business processes, the need for these systems to be highly available also increases. Not only do high-availability designs focus on automatically detecting and reacting to failures, but, more importantly, they also focus on mitigating the downtime required for standard maintenance tasks. This Reference Architecture template outlines the approach and architecture to achieve high-availability of IT service infrastructure.”
That’s a lot of words and what exactly do they all mean? As a DBA I have worked hard to adhere to the defined RPO and RTO defined by the business, work within the budget allocated to me, and provide stability to the environment, keeping in mind the technical ability of the team. Technologies like SQL Server Replication, Database Mirroring(deprecated), Log Shipping, and Failover Cluster Instances have been a staple of my tool belt. With the introduction of SQL Server 2012, we were presented with Always On which included Availability Groups. Subsequently, deployment of AGs became part of my tool belt.
During your career, I am guessing it has been your responsibility to create a training plan and learn these new technologies as they change or new ones became part of the stack. This was not always an easy process for me as I didn’t want to impact my work life balance. If you have worked in IT for any amount of time this balance has been interrupted at some time in your career. From my own personal experience technologies like Windows Failover Clustering, Failover Cluster Instances, and Availability groups were not always my main focus and to be honest they were not always a focus of the environment I was part of. This can’t be an excuse for us to ignore these technologies.
As a DBA or developer, we need to choose the technology that is right for the job. Just because these High Availability technologies exist doesn’t mean we should use them. We need to define our goals by speaking with the users, business units, and our management to come to a clear consensus on what we are trying to achieve. We also need to keep in mind the skill set of our team, is it supportable?
From a bird’s eye, the technologies mentioned above can provide High Availability at a data, server, or database level. As I was learning these technologies I wished that there were videos presenting how to set-up and use them. People must have read my mind in the community as well as my current employer Pragmatic Works. Pragmatic Works has provided on-demand training to our clients for some time now. Along with our long list of BI courses Pragmatic works has introduced a DBA Fundamentals course, Performance and Tuning course, T-SQL course and now a High Availability course. This High Availability course is what prompted me to put these thoughts into technical print. Much thought, time, and effort went into these courses. If you want a place to start learning these technologies mentioned in this post, I would check out our on-demand Pragmatic Works training.