I just thought to pen down some of the open thoughts that come to me on this very topic. Most often, even when I am on road, SQL is always projected as a very dev-dev topic. But there is so much on the administration point of view that is often neglected. I am a big-time believer that you need to have a fulltime DBA for SQL Server managed systems too. No second doubt in my mind !!!
Now, who on earth is a DBA – People simply feel that person responsible for giving access to your backend database is a DBA. I think this is an understatement and we need to look into this bad-practice more deeply. I know big enterprise understand to some extend but not all.
A DBA can have multiple responsibilites of which the core is to keep the server up running and available 24×7 and also provide appropriate access to the information requested by end-users. He is also responsible to protect the database and take preventive actions before any possible data loss happens. This is a fair statement, next we need to understand “Who are considered DBAs” next.
This is a bigger debate all by itself. For me, DBA must be strong in his database design, OS installation and configuration, understands SQL Server architecture and has sound administrative skills. These are critical !!! Now that can be a programmer who volunteers to take responsibility in a project or can be a system administrator who doubles up to become a DBA for a particular environment or can be a Network Admin or anyone else. But as easy as it sounds, a GOOD DBA is always in demand as far as the industry is concerned. You MUST know what you are doing esp when the system is mission critical and involves millions of $$$’s or transactions. So before you say you are one - read till the end and then think if you are right on the top to be called as one.
Now though I set the context before for a DBA as far as responsibilities – There are somethings that are implicit and not called-out as part of the profile. Let me just list some of them:
- Knowledge on upgrade or migration paths
- Installs the service packs or hotfixes
- Knowledge on system tuning and health checkpoints to get maximum performance from the given hardware
- Understands the storage system in-&-out (SAN, RAID, NAS etc) and get reports if needed
- Creates the Disaster Recovery Documents
- Makes the backup plans and able to quickly do recovery procedures
- Manages Database Users and Security around the same
- Creates, maintains and generates reports on Manintenance tasks
- Generates proper auditing techniques for system compromises if any
- Creates database standards with the Developer
- Creates scripts for non-compliances
- Is able to suggest tweaks and tune the operation database
- Understands the ETL process and the database schema affecting the same
- Understands the replication topology or High-availability options enabled
- Schedules alerts (like HDD space minimum)
- Understands different deployment techniques for different subcomponents IS/AS/RS
- Has knowledge on scripting techniques with SQL Server – WMI, SMO, DMO, TSQL (must know to do it via TSQL ALSO apart from the GUI mode)
- Knowledge on MOM and/or DPM is a bonus
Lastly, most important, has a passion to keep learning and innovating his own work :) …
Whew – now you must be wondering that DBA isn’t that easy of a job as you first thought. Let me tell you, it is a fun job and GOOD DBA’s are hard to get :) … I just hope this post will help you become that one in a million !!!!