“What is a database administrator(DBA) or how to become one?” are the questions people ask me when they find out I am a DBA. I have been working as a DBA for a while and love everything about it. This blog answers both the questions, along with my experience on how I started my career in database.
What is a DBA?
DBA stands for Database Administrator who is solely responsible for everything listed below and much more. You should have hands-on working knowledge of the following responsibilities in at least one of the relational database management systems to become a DBA.
- Database Availability: An application pulls data from a database to display or to generate a report. Companies cannot afford the database to remain offline. Without database, the application can’t remain online. Database availability is one of the key responsibilities of a DBA.
- Database Backup: What happens when your hard drive crashes and you do not have a good backup of your documents, pictures, music, etc.? It is important to make a backup of existing database every single day. Making multiple copies of a backup and storing them in different location is a good practice. Hot backup and cold backup are two types of backup strategies for backing up a database. Database backup is automated through a scheduled job which runs nightly or weekly.
- Database Restore: Restoring is a process of building a database from a backup copy. Backup is done to protect data from data corruption, hardware/media failure or natural catastrophe. Time and again, DBA is required to restore database from a backup to practice restoring process. The successful restore process validates the backup copy is corruptions free which you won’t know without restoring it.
- Database Design: A good database design might take a while but it saves a lot of headache later. Application developer should consult their design with DBA or involve DBA early in their designing process. Good database design makes the applications highly scalable, more maintainable, highly secure, and perform faster.
- Data Move: Organizations have various need for moving data from one database to another. The most frequent request is to move data from production database to development database in order for the developer to test their application before pushing the change to production. Sometime data movement are done to archive date in a history table, to make a backup of existing data, to store data in data warehouse for reporting and analyzing. Database link, Export-Import, Materialized View, custom script, and SSIS, Informatica are some of the Extract Transport Load (ETL) tools used widely these days.
- Database Upgrade: You all might have a smartphone with Android, Windows, or IOS Operating System. Every year or so, they release a new version of OS and we are notified to upgrade to the latest and greatest version of OS. The newer version covers all or most of the problems which older version had and may add few more features. Similarly, DBAs are required to upgrade their database with a newer version of database. However, I will wait few months before upgrading to a new version. Oracle and SQL server won’t provide support if you are running your database on older version.
- Database Patch: Database is a software which can never be a perfect. The database company constantly works on to improve or secure their product. Database vendor release a patch to resolve a known bug, add features or to tighten the security. DBA are required to monitor these patch releases from these vendors, test it and apply to their databases.
- Train Developer: Application and Developers are frequent users of your databases. Developers are your client. They are very good at what their title states but may not have good exposure to database best practices. Database administrators are the ones who should educate the developers about database best practices and standards, do’s and don’ts. The correct design from early on will help DBA and Developer in the long run. Both database and applications are more manageable, faster and secure when the database design is correct.
- Query Tuning: Tuning is a process of making your query run faster without putting extra overhead to database. Tuning a SQL query is an art that comes with experience. Following correct database practices, knowing the data, and the query result helps you to write the most optimized query. Most databases come with a tool to display how the db is executing your query. The simple rule is to avoid table scan and make the query use index where possible. Again, this depends on the data size and the query result. Materialized view is another database object to make your query faster. How do you gain performance using materialized view? Not all query can become faster using materialized view. The query that does calculation benefits the most. Instead of running the calculation every time the query is executed, Materialized view stores the result. Query re-write, use of cursor, temp table, or database re-design are few ways to make your query run like a champs.
- Database Tuning: It is a process done to optimize the performance of a database. This is strictly done by a system dba on a db and server level. Adjusting temp database size, requesting proper memory, processor, hardware and database configurations are some of the examples of database tuning. This is done to run your query fast without much overhead. This is an ongoing process and a DBA should always looks for ways to improve the performance.
- Database Security: Security is a top priority for any company. Is your database secure? You have heard the horror stories about Sony,Target, eBay etc. They are experiencing a breach in customer accounts including Credit Cards, Social Security number, email. DBAs team should always work with security team to ensure they are in compliance and the db is secure for both external attack and internal attack. Creating a database user account with a minimum privilege is one way to protect the database from internal database users. Security is a complex topic and most companies these days employ full-time DBA just to protect database from vulnerability, malware, and cyber-attack.
- Capacity Planning: Capacity planning accommodates for future growth. The growth can be a database users, applications users, or data itself. DBA needs to make sure that they have enough disk space, memory, processor, and bandwidth to support the company’s growth. It is always good to overestimate than underestimate it. Poor planning can cost you a job, the database may not perform at its optimal, and may crash anytime.
- Database Monitoring: Monitoring is done to ensure the database is running without a problem. I normally monitor db when I am running complex queries, building indexes, moving data, etc. You can monitor the database jobs, table lock, I/O, and the problem queries. Monitoring is done to identify problem queries. Each database comes with a tool to monitor it or there are after market tools you can use for free or some fee.
- Error Log Review: Error logs are where the errors are spit out and every database management system has it. DBA should review and monitor early in the morning and throughout the day. Anywhere you see error, you should fix it asap. Reviewing the error logs is one way to find out the problem queries. A good DBA will send a page to themselves or to the team when the word “error” is logged in a log file.
- And Much More: DBA roles and responsibilities do not end here. The above mentioned bullet points are just some of the core responsibilities of a DBA. Occasionally, DBAs are required to work with system administrator, network administrator and some other IT department to help the troubleshoot. DBA should have the good knowledge of Operating Systems and IT networking concepts. DBAs are required to know scripting languages like shell scripting, awk, and Linux command to automate the task. Knowing the programming languages that your developer use is your company is a huge bonus.
How To Become A DBA?
The easy part of defining the roles and responsibilities of a DBA is done. Now, this section talks about how you are going to master these responsibilities and become a DBA.
- Database Installation: Everyone who wants to learn database must install a relational database management systems like Oracle, Sql Server, or MySQL in their home PC. These are some of the popular relational databases in market. Each company makes a free lightweight version for you to try like Oracle Express, SQL Server Express or MySQL. Decide the one you would like to learn and install it. Installing express edition is easy and you will find the installing instructions from their sites or you can search online for instructional videos if you prefer to learn by watching.
- Learn SQL: SQL stands for Structure Query Language for accessing database. Learning SQL is the first step towards becoming a database professional. You are required to know data definition language(DDL) and data manipulation language (DML). DBA uses SQL all the time. SQL is a query language that works with most Relations DBMS systems available. This is like “learn once and apply in all DBMS” technology. I cannot stress enough on how important it is to learn SQL before you begin to learn DBA work. W3schools is my one stop go-to bible for learning SQL. I recommend w3schools to anyone who wish to learn, it is easy to follow and completely free to use.
- Database Concepts: What are database concepts? You have picked your horse, now is the time to ride it. Learn the architecture of the database you installed. Know how your query are processed and executed. Get yourself familiar with the database concepts like primary key, foreign key, database integrity, database logs, indexes, views, and synonyms, backup and restore error code and messages, etc. There’s no way I can list them all. I recommend reading books on database concepts. Books are more organized versus looking up online. Again, these concepts are the not database specifics, therefore you can apply these concepts on any relational DBMS. I started out with Oracle. Now, I manage SQL Server and MySQL. The concepts that I learned with Oracle still applies to these databases with minor differences.
- Online Document: Database companies like Oracle, DB2, and SQL Server have their official sites with technical documents and white papers. These documents cover the db features, syntax, how-to’s, and everything that DBA and developers required to know to perform their tasks. You will need to get familiar with these documents. These documents are detailed and very long to follow.With practice and experience you will know what and where to look in a document. If you are learning Oracle DBA, you should get familiar with Oracle documents through their reference page. Do not refer to third party sources like blogs while you are learning. They may not have the latest and greatest information. Blogs or other unofficial sites are something you will want to navigate later. I would always refer to official documents which as are kept up-to-date with least errors.
- Practice, Practice, and More Practice: You have installed a database of our choice, learned SQL, understood database concepts and architecture, and got familiar with the official online documents. If you are reading this, then you made a big commitment to become a DBA. Now is the time to get your hands dirty. Here, you practice to make a backup & recovery, database design, data migration, upgrade, database and query tuning, monitoring, and everything that was discussed under roles and responsibilities.
- Online Training: Whatever you did so far is good enough to get a job as a junior DBA. In order to get a step further but now you need to lean more. You have done so much to get here and the journey does not stop here. You will need to further enhance your knowledge but you must be tired already to learn own your own. Now is the time to find a trainer. I usually use an online trainer because it saves time and I can get the training done from the comfort of my home. Find the best trainer and learn it from the best. Don’t be afraid of paying extra; you will know why they are charging more after the training.
- User Group: You have jobs that you are comfortable with. The online training is done. You will need to keep yourself updated on database technologies which changes so fast. Around your city find the user group like Oracle or SQL Server or whatever db you are going to administer. Sign up and participate in their monthly meetings and workshops. This is where you will meet and network with professionals like you. What do they do in User Group meetings? The user group discusses the problem that their company is having or the new product launch or database best practices, etc. This is a good place to ask questions and answer anything you know. You will learn more by asking and answering questions.
- Reading & Writing Blogs : Remember, I asked you to hold off on reading blogs, but now is the time to navigate a good blog and start following it. Blogs will teach you the tips and tricks and the real production issues. This is how blogs are different from the online documents.I enhance my knowledge is by sharing with the communities and this is how my blog was born. You can start blogging about the problems and the projects you worked on. There are free blogging sites that you can get started in minutes. Blogger and WordPress are two popular blogging sites that are easy and free to use.
- Other: The other ways of learning involve talking to senior DBA of a company, Twitter, Facebook page, Google plus, attending annual conferences, training, certifications, and workshops. If you are still alive, you will make a good DBA!!
My Own Experience
Aren’t you excited to know how I made my career into a database? Right after college, I applied for several DBA positions and guess what I got? Too many rejections, which I called them love letters. I wasn’t even called for an interview. That was a depressing moment that I had to go through right after graduation. I thought I have done something wrong somewhere. Later on, I found out that I had no prior industry experience on database nor any projects in school that were related to database.
Clearly, whatever I learned in school wasn’t enough to get a job. There were no internships or entry-level DBA positions which I could apply for. Even today, not many companies offer entry-level DBA or database developer positions because they don’t want any newbies playing with their data. Data is the most valuable asset of any organization, and without data, they are nothing. I now know exactly why the hiring managers are scared of hiring entry level database administrators.
By that time, I had realized there was no way of getting a position in database and that I needed to focus on something where they would take fresh graduates. During my undergraduate school, I had to take tons of programming classes even though I never enjoyed the projects & assignments. After revamping my resume, I was able to land in an application developer position in a reputed corporation.
As an application developer, I got exposed to various programming languages, internal tools, databases, great mentors, and some training opportunities. I enjoyed the developer position which was more fun than my school projects. I made my way up to a senior developer position after few years. While working on application development projects, I had to work closely with DBA, System Admin, and IT nerds from other department. This gave me an opportunity to explore different DBA roles and responsibilities. After showing interest in DBA position, the DBA manager let me shadow his team and this eventually helped me make an informed decision to pursue a career in database.
I also completed Oracle Database System Certification course from a Community College while working full-time. In addition to this, I installed Oracle database and practiced what my DBA taught me. I started exploring online Oracle communities, Oracle blogs, and online documents. These helped me learn a lot about DBA work even though I wasn’t working as one. It took me 6 full years to land into a database career, but I thoroughly enjoyed the journey that I took to get there. I am now a DBA and a mentor for a top company in the United States.
Database Administrator is a hot career and makes a fairly good starting salary. If you are still reading this article, you have learned that there is no easy way to become a DBA. Becoming a DBA requires a lot of hard work, practice, a learning mindset, and patience. Do not get discouraged. Just work hard and stay focused. You can get to where you want in your career. Learning to become a dba is not rocket science and it is not a brain surgery. It is database, nothing more.
Guest Author: Prabin Baniya