Joey on SQL Server
5 Database Resolutions To Adopt in 2019
If you're a DBA, now is the time to re-evaluate your current database management habits, as well as figure out how to take your career as a database professional to the next level.
- By Joey D'Antoni
I hope you had a very happy holiday and are enjoying a relaxing return to work in the new year. Many people use the new year as an opportunity for goal-setting, changing behaviors and other life changes -- just visit your local gym on Jan. 2 for confirmation of this.
After managing an outage over Christmas, I decided to put together some resolutions for both you, as a database professional, and for your database servers. While maintaining your database servers is an important part of your job, professional development is equally as important to your career. With these thoughts in mind, let's walk through some resolutions.
1. Attend a Local User Group Meeting
Networking is a great way to find your next job, or the next DBA or developer you need to hire. And there's no better or easier place to network with other database professionals than your local user group.
In addition to the networking, you can learn about new features or perhaps existing features that you are not familiar with. You can find your local user group through Meetup or at PASS. For bonus points, volunteer to speak at your local user group or attend a SQLSaturday event in your region.
2. Learn a New Skill
As a DBA or developer, we are permanently busy in our roles. Whether it's planning meetings or being on-call, IT support is a very demanding job.
In order to stay on top on industry trends and keep your career relevant, you need to carve time out of your busy schedule to learn new skills. Whether that's watching training videos or reading technical books, it's important to keep your skills current.
If I had to make some recommendations for skills to focus on in 2019, I would recommend learning about Kubernetes and containers, and focus on cloud computing if you lack experience there. Both topics are very broad and can consume a lot of time, but are part of the future of our industry.
3. Test Your Backups
As a consultant, I constantly preach to all my customers that they should validate their backups via testing. It is not enough to just ensure your backups are running successfully; you need to make sure that you can restore those backups. Recently, for example, we ran into a case where a customer had what they thought were good backups, but they were unable to restore them due to some corruption in the file.
This can be doubly true if you are in a situation where your infrastructure team is managing your backups and are using technology outside of standard SQL Server backups. While many of those tools integrate directly with SQL Server, many of them use snapshot technology that may be incompatible with advanced features of SQL Server recovery, such as page-level restores.
In the worst-case scenarios, you may not be able to do a point-in-time recovery. Additionally, you may see behavior on restore that you weren't expecting. For instance, recently we saw an availability group database that had been restored to a standalone instance. The database still thought it was in an availability group and would not allow the transaction logs to be flushed.
4. Patch Your Databases
A recent outage that I had to deal with may or may not have been caused by the fact that the customer was running a release-to-manufacturing (RTM) version of SQL Server 2016. While we think of SQL Server 2016 as a modern release of the platform, Microsoft has already released two service packs, as well as a couple of cumulative updates to SP2. That is a lot of improvements, bug fixes and added features that can cause outages in the worst cases, but can hopefully make your job managing SQL Server easier.
Also, remember Microsoft's new servicing model for SQL Server: For the first 12 months after a new release, there will be an approximately monthly cumulative update release, and after that bimonthly. That's a change from the former quarterly model. My recommendation on how to apply these cumulative updates is to stay relatively current but not on the bleeding edge. Microsoft does make some mistakes, and updates get pulled. My general advice is to wait two to three weeks after release to begin your patching process, unless your systems are being directly impacted by something in a new build, or it is a critical security situation like Spectre or Meltdown.
The hard part of patching is getting the downtime to apply patches. If your business is limiting your downtime, you should take the opportunity to try to get them to invest in high-availability solutions to reduce your downtime.
5. Check Your Databases
Most of the systems I see already do this, but performing consistency checks (a.k.a. DBCC CHECKDB) is a critical part of your data protection strategy. While consistency checks are expensive from a CPU and IO perspective, your database can remain online during the operation, so you do not need to take downtime. Additionally, you can perform the checks on a secondary copy of your database or that restore you were testing.
You should be running consistency checks at least as frequently as your backup retention policy. If you keep your backups for seven days, you should have a consistency check frequency of every six days. SQL Server will happily back up a corrupt database, so you could be backing up the corruption problem you have. Just like restore-testing, leveraging cloud or virtual resources is a great option if you can't perform your checks against your primary copy.
I hope all of you have a very happy 2019 and that your databases stay online and consistent. Take this opportunity to assess your happiness in your current job and what you would like to do in your next job, and prepare yourself for that role.
Joseph D'Antoni is an Architect and SQL Server MVP with over a decade of experience working in both Fortune 500 and smaller firms. He is currently Principal Consultant for Denny Cherry and Associates Consulting. He holds a BS in Computer Information Systems from Louisiana Tech University and an MBA from North Carolina State University. Joey is the co-president of the Philadelphia SQL Server Users Group . He is a frequent speaker at PASS Summit, TechEd, Code Camps, and SQLSaturday events.