It is unfortunate...
A reader, November 06, 2012 - 10:47 am UTC
...but most industry does not understand DBA job roles. Every job requirement that posts DBA role has SQL and PL/SQL development as mandatory requirement.
Recently, a DBA job posting caught my eye. They wanted Oracle DBA capable of writing shell scripts, .Net code, JAVA code, PL/SQL code. I am not kidding here. Sometimes when I read these job postings, I cannot figure out whether to laugh or cry. It seems like they have money to hire one person and they want some kind of all-in-one superman.
To the OP: If it helps, I can share my experience as a DBA. Yes, DBA job does get boring after some time. I have known people who are working as production DBAs and they practically sleep throughout the day. The system is up and no one wants anyone to mess with the working system. They just baby-sit the database.
After you are in a place long enough, you know everything that can go wrong with the database. You can fix things in minutes instead of hours. You do few weeks of real work in a year. I am also in the same boat. Either change job (if you like to stay a DBA) or change career path (go from DBA to something else). Maybe have your current place acquire newer servers, do version upgrades, implement new technologies but all of these require money and most places do not spend money unless they see some return.
never get tired of it
Doug, November 06, 2012 - 5:59 pm UTC
>monitoring databases, creating users, checking space and >other mundane tasks get boring after doing it for a few >years?
I have been a Prod and Dev DBA since 1991, never get bored with it. I automate everything so doing all the mundane tasks takes no effort at all which lets me concentrate on the more interesting work.
I agree with Doug
Lenny, November 07, 2012 - 7:24 am UTC
Completely agree with Doug on this one. Automate as much as you can, then spend the rest of your day on the Ask Tom site learning new things ... even Tom admits to learning something new each day about Oracle. Unless you're admitting you know everything there is to know about Oracle, then skip this part.
To me, being a DBA is very much like being a fireman. You basically sit around all day until a fire happens; but in-between the fires there is a lot of training and staying on top of your game.
You could also have some fun and mess with your colleagues. Grab a bunch of loose papers and folders and walk quickly up and down the halls whispering to yourself "this can not be happening ... it's just not possible!" then if someone asks what is going on, look at them like you have no idea what they're talking about. That definitely won't be mundane.
i don't agree with your vision of dba role
yc, November 07, 2012 - 9:29 am UTC
Sorry but i don't agree with your point of view tom: DBAs don't write code..
I think there is a room for this kind of dba, especially when most of developers doesn't know anything about DataBase technology.
I see a lot of value for company having people who have both skills :)
And i have worked in this kind of role as a DBA.
Totally agree with YC
OB, November 07, 2012 - 10:28 am UTC
Tom,
Don't get me wrong, but i can't imagine any usefull dba not having to write code. I consider sql, pl/sql coding, sql tuning stuff being part of any DBA position.
Have you ever though about having to write complex procedures regarding partition management, migrating automatically from a partitioning model to another one better suiting new requirements ? All this with hundreds of thousands of partitions and online in order to minimize downtime. Do you really think a developper can do this without touching the DBA side ?
How many coders do you think have a very very good understanding of what they consider as being a black box ?
You might say they should not consider it as a black box. Well, this is not in real life. In real life, software developpers have lots of stuff to do with their own language and they usually require help. So from who do you think this help will come from ?
I entirely disagree with the splitting view you provide about DBA & Developpers.
November 07, 2012 - 11:37 am UTC
see above...
Have you ever though about having to write complex procedures regarding
partition management, migrating automatically from a partitioning model to
another one better suiting new requirements ? All this with hundreds of
thousands of partitions and online in order to minimize downtime. Do you really
think a developper can do this without touching the DBA side ?
I never said, have never said, will never say that a developer shouldn't understand the database.
but just because they do doesn't make them a DBA.
Let me just say this:
if someone hires a DBA and expects them to write code - they have made a mistake. Can some DBA's put together some stuff for things like partition management and the like? sure. Does that make them a programmer? no, not really.
Define DBA - define Developer
Kim Berg Hansen, November 08, 2012 - 4:06 am UTC
Consider the DBA and Developer skill sets:
DBA DEVELOPER
SKILLS SKILLS
0: X X X X X X X X X X
1: X X X X X X X X X O
2: X X X X X X X X O O
3: X X X X X X X O O O
4: X X X X X X O O O O
5: X X X X X O O O O O
6: X X X X O O O O O O
7: X X X O O O O O O O
8: X X O O O O O O O O
9: X O O O O O O O O O
10: O O O O O O O O O O
If we need to define DBA and Developer as just two sets of people, anyone below 5 is a DBA, anyone above 5 is a Developer (and 5 is the general-purpose solve-anything guy working in a small shop where he needs to take care of everything ;-)
Personally I am mostly Developer - but I understand sufficient about the database to help me write better code, I know enough DBA skills to help decide if a bitmap index will help my application, and in a pinch I can kill a session or add a datafile if a true DBA is unavailable in an emergency. I'd put myself about 8.
Tom says he is a Developer/DBA - he is very sharp at developing great code but has also very good DBA skills. Let's put him at about 6.
Jonathan Lewis as a DBA/Developer knows the innards of the database like his own pocket but can also write a good piece of SQL - he'd probably be about 3-4 on the scale.
A 0 DBA can't do any SQL - that is not realistic. A 10 Developer treats the database as a black box - he is equally dangerous for your system.
A big shop with many DBAs and many Developers would probably have people on all levels from 1 to 9 - specialists in either end of the scale for special tasks, more general purpose people near the center of the scale to make daily life work and glue the system together well.
A smaller shop would probably do well to try and hire DBA/Developers and Developer/DBAs rather than the specialists.
A DBA/Developer around 4 would have skills to write great SQL but chiefly concentrated on code solving his DBA tasks - he would not be expected to do advanced model clause analyses for a report.
A Developer/DBA around 6 would do the model clause analyses and also know how best to write a query that takes advantage of partition elimination - he would not be expected to write the SQL for automatic partition creation.
In my opinion everyone needs at least some skills both from the DBA and the Developer world. But some would fit better as a 7 on the scale and some better as a 3. Some tasks are better solved by a 2 guy and some are better solved by an 8.
It takes all kinds to run this world ;-)
November 08, 2012 - 8:29 am UTC
It takes all kinds to run this world ;-)
yes! agreed
Chuck Jolley, November 08, 2012 - 3:21 pm UTC
I'm a 5.
Be prepared to look away from that fancy sql/plsql you are writing to change a toner cartridge or (I am not making this up) explain to the office worker that her computer seems to not be working due to the stack of papers sitting part way on her keyboard pressing a bunch of keys at once.
On the other hand I also get to pick the server equipment and set it up too.
Good times, good times.
don't be frustrated
Oracle Developer/DBA, November 08, 2012 - 10:28 pm UTC
If you are not satisfied with what you are doing at your current company, you can choose to leave. There is so much to learn for a DBA. If you feel you are not growing at your current company, find a new employer.
Before I became an Oracle DBA, I was a developer (oracle developer as well) for 8 years. I did a lot of programming using C, C++, Oracle SQL, PL/SQL, Java, shell scripting, of course, all with Oracle as the backend database. While I was a develoer, I also learnt a lot about Oracle database, read lots of Oracle documents, Oracle books, including gurus like Tom and jonathan lewis. I noticed that I knew a lot more about Oracle than most Oracle DBA's I came across.
Then I decided to switch to the DBA field. When I started to look for a DBA job, my developer background seemed a disadvantage because my job title never had "DBA" in it. However, I did land a DBA job. And I did not let my employer disappointed. I turned out to be a pretty good DBA. After 3 years of DBA work at that company, I joined another comany that uses more and different Oracle techologies. This time my previous developer background became a strong advantage for me looking for a DBA job. Working for different companies and experiencing different things broaden your vision and open your mind. Now it's been a few years in my second DBA job.
I never feel bored being either developer or DBA. Having skills in both fields really benefits my career. Like Tom, I literally learn something about Oracle everyday. That is joy.
Oracle DBA
Justin Mungal, December 10, 2012 - 11:03 pm UTC
To the OP, it sounds like you do indeed have a typical DBA job, at a typical corporate firm. The lack of challenge, technology exposure, and stimulus you're feeling are a disadvantage of such a position.
Putting the quibbles of job titles aside (as many "DBA" positions posted expect knowledge of coding... rightly so in my mind), I think that perhaps you are in the correct line of work, just not working for the right firm.
I suggest that you investigate working for a consulting firm or some kind of other technology specialist. A firm that has many clients. This way, you avoid working on the same environment, and same problems, day in and day out. With sufficient experience, you could eventually open a firm of your own.
developer for a while
naji yahya hassan yousif, September 06, 2016 - 10:50 am UTC
Hi tom
I have seen in your web site some advice for the oracle DBA beginner you are telling that the successful DBA is one who was developer for a while , can I know the fresh graduate person for how long he need to be developer before he start to learn about the data base administration , how long experience does he need as developer ? .
thanks
September 06, 2016 - 4:12 pm UTC
You don't *have* to be a developer before becoming a DBA. But it can help. Either way, there's no fixed amount of time for this.
I've met people one year into a job with more "experience" than people 10 years in.
Why? Because they've pushed themselves to learn more, stay up to date and figure out how things work.
So how long will it take? Well, it depends upon how hard you're willing to push yourself!
Don't pidgeon hole any job...
Pete, September 08, 2016 - 3:43 am UTC
I have been blessed to mostly work in small shops over the years, mostly as a contractor working for someone else. What I found is that in order to do the job I was hired to do well, I had to know a fair amount about the job next door as well.
For example: I started my career as a developer, but found that in order to do that well I had to know a fair amount about how the database worked. Next think I know I'm a DBA. Turns out what I learned as a developer about writing code helped me be a better DBA because I could create better automation. Then it turns out that to be a really good DBA I also needed to understand something of the operating system and storage arrays the database runs on, and the network. Pretty soon I was a system/network administrator. What I knew about being a DBA helped me be a better sysadmin because I could scope/scale hardware more accurately and configure it more properly for database use. The progression of jobs continued through a couple more layers, but now I'm back to being a production support DBA and I find that all of those other things continue to make me better at that as well: I can converse intelligently about system and network configurations when working through a tech refresh of our infrastructure, build an infrastructure that is highly available and secure on a shoestring budget, monitor and tune my databases and manage storage with ASM, run backups, install patches, create users, and advise developers on security and performance considerations because I have all of those other experiences to draw on.
While opportunities to expand your job role may be harder to come by in a large shop with more separation of duties, my advice would be to always be on the lookout for ways to improve the way you can perform your particular job responsibilities - through new automation, enhanced monitoring or new tools, introduction of new hardware server configurations or technologies like SSD storage, or whatever else you can think of. Aim for somewhere in that 4-6 range of the previously mentioned DBA/Developer scale and it is hard to go wrong. Never ever accept that "this is the way we've always done it" and you'll never get bored.
September 08, 2016 - 5:47 am UTC
Excellent input. Thanks for taking the time to provide it.