Let's say someone wants to be a DBA. Where do you tell that person to begin?
This can be a tough field to get into. Since DBAs tend to be responsible for a critical company asset -- data -- they tend to prefer those with some degree of experience. However, on the other side of the coin, there is a certain demand curve that seems to outstrip the experience supply. That being the case, there is some opportunity for the junior DBA.
Typically, even the junior DBA will already have some IT experience, either as a developer or as a system administrator. So, for the truly new person, finding such a position is a place to get your foot in the door. If you are already at a company that uses Oracle, then it's time to start looking for opportunity within your company. For example, if you know your company is going to have a big Oracle-related development project gearing up, it's time to put your hat in the ring to work on it.
Educating yourself is always a good start too. User events, like my university session at IOUG-A for beginning DBAs, other educational classes (such as those offered by Burleson Consulting) and reading will all help you as you search for that Oracle DBA job. What is the minimum background needed before companies will even consider someone for a DBA role?
For a new hire, if you don't have two years of previous DBA experience, then it's going to be difficult. Typically, a minimum of five years of IT experience, in addition, is going to be preferred as well. For the newer DBA, OCP certification is a must if you want to be able to sell yourself in spite of lack of experience. Years ago, I knew of at least two DBA contractors who were hired with no Oracle work experience, little overall IT experience, who graduated with an IT degree and got their OCPs. I don't think you will see that in this day and age.
Something else to consider is that many companies already have experienced DBAs on staff, so they may be looking for a junior type, at a lower salary, to do things like basic monitoring and so on. Often these companies will try to hire from within too. This is the kind of opportunity that a DBA want-to-be needs to be on the look out for. While the short-term salary benefits might not be great, the experience you will gain will eventually give you an opportunity for the salaries that experienced DBAs can demand. Is certification worthwhile for new DBAs?
I think it can't hurt, and it's a good exercise. There are those who think it's pointless, and just a memorization exercise. In the end, it does force you to gather some information about Oracle, and you do learn something. It's no substitute for experience, but it's better than nothing. What's the best way to learn about administering Oracle databases?
The best ways to learn how to administer Oracle databases are:
- Find a mentor who knows Oracle and who knows how to mentor. I had a great mentor when I first started working with Oracle and it makes all the difference in the world.
- Training is helpful, but I'd suggest you sit down with Oracle and use if for a while (create a few tables, a few users, and learn basic SQL) before you actually go to training.
- Read, read, read. Load up on books. Join Oracle related forums and news groups and read them daily. Forums like www.dba-oracle.com, www.quest-pipelines.com, Oracle-L and LazyDBA all will provide insight and education on a daily basis.
- User group meetings, like IOUG-A, are invaluable to the learning process. It is in these environments that you can learn from a large number of people, on a large number of topics. In addition, you have the University sessions, such as the one I'm doing for the beginning DBA, that can be most helpful in learning about Oracle.
- Finally, don't believe everything you hear or read, in fact, don't believe anything you hear. Oracle is about few absolutes. Every system is different, and there are many different ways of doing things. Do not build yourself a box of ideas that can never change, because that does not make for the best of DBA's. There are some best practices, and standards, that are somewhat absolute, but for the most part, it's all fluid and situation-dependent.
Is it possible to learn on-the-job DBA tasks without being on-the-job?
It is possible to learn on-the-job DBA tasks, but the real question is can you retain what you have learned without having the opportunity to practice it? The job is key because a lot of what the DBA does is on-his-feet thinking and responses to out-of-the-ordinary problems. There are numerous technologies and varying complexities. This is hard experience to acquire in a strictly learning environment. What are the first few questions new DBAs have when sitting down with Oracle for the first time?
That depends on if they have any experience with databases at all. If not, then the first question is, where do I start? Things like using SQL, and SQL*Plus are of prime interest because until you can actually talk to the database, there isn't much to do.
If it's a developer who may have done SQL coding, and had some SQL*Plus experience, then the questions are more of the order of, "How do I do the task I've been asked to do?". Then it's a discussion of how to create a user, a table, a discussion on grants and privileges, and some base information to get them started.
When it's an experienced DBA, the first questions generally are something like, "What's the Oracle account password, what's the SYS password, and where is the bathroom and the Coke machine?". That's the difference between beginners and experienced DBAs. Experienced DBA's have time to go to the bathroom and the Coke machine.
What are the most common mistakes beginners make?
Believing that there is a single answer to a given question. While there are standards that one should always use, more often than not, the answer to a given question is, it depends. Another common mistake is thinking you know everything after a while. Just when you think you know everything is the exact moment when you actually should realize that you don't know anything. Always rethink your way of looking at things, and check your reality against the thinking of other professionals in the field. Always ask yourself if you are being closed-minded about things. A DBA is paid to think, in my opinion, and that requires an open mind. What should the top five priorities be for new DBAs on the job?
- Be on fire. You have to want to learn everything, do everything, consume everything. So you got the DBA job, now is not the time to rest in your new chair and enjoy your success. List out your goals and what you want to learn. A five year plan is a great idea.
- Listen! Ask Questions! Be involved! Don't just sit back waiting for the create table requests.
- When it comes to theory, don't believe anything you hear or read until you have tried it yourself. Database rule number one, in my opinion, is that no rule of thumb applies all the time.
- If you are solely responsible for a database, make darned sure, before you leave your job on day one, that your database can be recovered. Nothing else matters if you can't get that database back.
- Document everything.
And, a baker's half-dozen...
- Learn to use your voice of authority. You are the DBA, and this database is your responsibility. As you learn the right way, and the wrong way to do things (like, say, database design), you need to be an advocate for best practices and for good design. If you succeed, you can enjoy the rapture of success. If they don't listen, you will get the joy of "I told you so."