Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, mohammad.

Asked: May 25, 2002 - 11:08 pm UTC

Last updated: December 09, 2008 - 4:24 pm UTC

Version: 8.1.6.0

Viewed 1000+ times

You Asked

What are the responsibilities does a dba have to shoulder in an organisation?
Does he/she require to know development side also in the context of the present day job market for DBAs?

and Tom said...

If they do not understand the development side, they will not be a very effective DBA. The main goal of the DBA is to make things run smoothly as regards the database(s). Availability, good performance, these are things the DBA is concerned with.

If the DBA doesn't know or understand the tools used to develop against the database, or the goal of the developers -- they would not be able to do their job.

Rating

  (34 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

A reader, June 20, 2002 - 5:28 am UTC

How many DBA teams should there be in a company? I mean whether the DBA teams should be split to perform specific activities such as support or development ... Does it make sense?

Tom Kyte
June 20, 2002 - 7:09 am UTC

depends on the size of the company and how many databases you have and what you do.

small company, off the shelf software, little to no development. no, not really.

large company, off the shelf software, little to no development. no, not really.

lots of development with "dev", "test", "prod" systems -- maybe two or three groups within the group to help support that. should still be the same group however as the "dev" dba's have to follow the same company guidelines in general as the "prod" dba's (but they can bounce the instance more frequently)

It is more a matter of scale (size) and tasks then a yes/no.

Also ..

Mark, June 20, 2002 - 10:04 am UTC

Tom,

Wouldn't you say that the responsibilities of the DBA are different in development and production?

In production, they are responsible for maintaining a secure and stable environment, whilst in development their main role is to provide a service to developers?

Mark

Tom Kyte
June 20, 2002 - 12:00 pm UTC

But -- they have to be working towards the same end goal -- the same set of standards, the same basic configuration.

In development -- they can bounce more often then production but they still must

o run in archivelog (you really want to lose that dev instance? I don't. Besides- how can you tell how you will run unless you run in the same mode)

o use the same sort of sizing and tablespace rules as production -- else when you go production you have a mess

o enforce the same security policy as production will have, else when you go .....

and so on. I do not see their overall jobs being significantly different. That is why I said they might be two groups within the SAME org but they are working for the same group really. THey have to have the same end goal in mind.

DBA or Developer...

Pasko, June 20, 2002 - 10:19 am UTC

Hi Tom

Thanks for comments from above...

I also think that Dba's should know a lot about Development..or else there would have very little for them to do...unless you are a part-time DBA ..or may be A System Admin + DBA..

Regards







groups within the group

A reader, June 20, 2002 - 11:14 am UTC

Tom,
What is your opinion in case dev and prod groups are not within the same group? If these groups are split and every group do what they want, won't that create mess?

Tom Kyte
June 20, 2002 - 12:02 pm UTC

YES, the stuff you develop will not meet the guidelines and rules of the production team -- hence you will not be able to deploy your developed piece of software. Your company has rules, it has standards -- unless everyone is working to the same SET of rules and standards -- it won't work.

production and development

Mark, June 20, 2002 - 12:30 pm UTC

Tom,

So when my DBA denies a developer access to the V$ views, as he wouldn't give such access in production, I don't have a leg to stand on. I'm not being flippant - this has happened to me!

Mark

Tom Kyte
June 20, 2002 - 1:06 pm UTC

No, this is different.

Does the application being developed rely on this access? If so, maybe they are right.

Does the developer need access to this in order to tune and analyze their application -- then the DBA is wrong to deny access.

By security I meant things like "my application schema will have DBA granted to it and SELECT ANY TABLE as well just for good measure".

There is a difference between preventing someone from doing their job and common sense....

A reader, June 20, 2002 - 4:27 pm UTC

Tom,
And what if "prod" dba group forbids the access to the "dev" dba group to the production systems, in the "mess" case when these groups are separated?
Isn't that ridiculous?

Tom Kyte
June 20, 2002 - 4:34 pm UTC

no, not necessarily. why would it be?

Let's say we work together as developers in the same group.

We'll use the same methodology
We'll use the same tools
We'll use the same standards (coding standards)
etc...

Touch my code tho and I'd be really upset. We are working on similar things, but different.

My point is -- they cannot each work in a vacum. Maybe I'm the developer building generic utilities to be used by the other groups. If I use my own naming convention, my own style of doing stuff, use a different source code control system and so on -- it won't work out very well.

Same with the database. prod does not have to let dev into the system (unless of course an upgrade is failing, then it would make sense from prod's perspective to "ask for help") to be successful at all.

A reader, June 20, 2002 - 4:47 pm UTC

Why would prod and dev dba's be in different groups? Shouldn't they be a part of one team?

Tom Kyte
June 20, 2002 - 8:32 pm UTC

well, i say NO. At most I say:

...
lots of development with "dev", "test", "prod" systems -- maybe two or three
groups within the group to help support that.
......


"within the group" -- teams within the team -- depends on the size and scale of the organization.

Eenvironments

Andre, June 20, 2002 - 6:18 pm UTC

I have worked in very controlled environments, with very well separated (1)development, (2)UAT and (3)production systems.

Especially in a financial institution, there are lots of PROCEDURES telling you about methodologies, workflows, etc.

For a system to be in production, it would have to be in development first, then it would have to be approved in UAT (User Acceptance Testing) so it could finally end up in production.

All the interfaces between these stages were well documented and should follow strict rules.

In this typical scenario, there could be a "multipurpose" DBA along this workflow -- eg in small environments -- or else a couple of them in each stage.

Besides, all the database work should be accordingly documented and the programs should be catalogued: no one messing with code in production, no way. So one line of code could be changed in production, someone would do it in dev first, then go to UAT and finally to prod.

When code is altered, there is a department called "change management" to take care of cataloguing the new code. The same goes to database objects which have to be under the control of a "data administrator" (not database administrator, the DBA).

Hope this helps !

production and development

Mark, June 21, 2002 - 5:08 am UTC

Tom,

I totally agree that the DBA procedures should be the same within development and production. My point was really about their attitude.

Oh, and congratulations to Andre of Brazil for their World Cup victory over England (and apologies to all Americans who do not understand the beautiful game).

Mark

"within the group"

A reader, June 26, 2002 - 6:45 pm UTC

Hi Tom,
Do you mean by this that all these guys should be in groups within one and only one dba group?
What if for example manager of prod group wants his group to do some development and dev group is not consulted?

Tom Kyte
June 26, 2002 - 7:56 pm UTC

let's not get carried away.

I am suggesting that there is one org -- the DBA org.

Within there -- there are subgroups (like a typical hierarchy). They all follow the same rules, have the same goals, but support different people. That's all

Check the following Link

Sikandar Hayat Awan, June 27, 2002 - 12:17 am UTC

As a DBA, I'd like to make a few points ...

Harrison Picot, July 08, 2002 - 4:48 pm UTC

It is hard to think of anything less likely to produce a serious thought, than a bunch of developers figuring out if DBAs have enough to do; the "grass is greener on the other side of the fence" sure gets a lot of play. As a DBA, let me say that Tom's book, "Expert one-on-one Oracle", is for developers not DBAs, but most developers don't know 1/10 of what is in it. Tom has also pointed out that everybody should read the concepts manuals, and almost nobody has. So before assigning work to DBAs, how about learning what is in Tom's books and the concept manuals? If you did that, you wouldn't need the DBA to explain it to you. As Tom has pointed out, Oracle is not a black box and to create scalable applications the developers need understand how Oracle works. The suggestion that they learn it from DBAs is without merit. Most of what developers do, they do without showing it to DBAs or discussing it with them, and they are not required to take any suggestions from DBAs. Agree that we can fire you and I will agree that we need to raise our standards.

Now I know that Tom encourages the idea that DBAs should know this and that, and I agree with some of his ideas, but it is the developers who write the code, SQL, PL/SQL and the idea that DBAs should (or ever will) know more than a developer is silly. I have worked with, at a major corporation, contractors expert in Visual Basic, and remember many ugly things they did, including asking "What is this SQL stuff?", so a DBA that knows that answer is a help, but is hardly what is needed. And remember, Tom is not perfect, if he were he would not have said "Fire the DBA" as many times as he has, without saying "Fire the developer" at least once.

Developers can mess up and it is a bug. When DBAs mess up there is often a loss of data (yes, I lost a byte one time) and you can get fired (no) for what would be head scratcher for a developer. You are also blamed if the database is slow, or if it runs out of space, and often denied the hardware to adequately test backups, or create boxes to fail over to, and I have had situations where software went from a developer to production with no testing at all. Also, DBAs and developers frequently roll up to different managers, and developers often ask for things that don't make sense and are not approved by any manager, and if they are wrong, they are more likely to keep their job than the DBA that did what they asked. There is a lot more pressure on DBAs as a single mistake can be awful.

So my idea is, read Tom's book (I am doing that also, but you need it more) and read the concept's manuals (both volumes), and learn big parts of both, and then you will not need to blame the DBA for not telling you about bind variables, and will be glad to have a DBA that does backups, can restore in case of failure and keeps your brothers from trashing a production box, which, despite allegations to the contrary, is quite a lot to do. And for my part, I promise to quit saying things under my breath after you announce that your instance "has been trashed by forces unknown" and you want it back to six days ago. Which I can do.

And remember, we never see anyone working as hard as we do, because we (really) only see all of what we do, not what anyone else does, so don't be quick to put stuff on someone else's plate (of course we could agree that if I forget to do something because I was talking to you, you take the blame ... huummm ... I like that idea. Any mistake I make can lead to a firing).

If you want to rely on something, let it be that most people want to be part of something that works, and instead of figuring out in advance how people should work together, treat people as individuals that will work with you if you give them the resources to do so.

Cheers,

Harrison

(Read the books, and I really will stop mumbling under my breath;-)

Tom Kyte
July 08, 2002 - 7:59 pm UTC

Hey -- a simple search for

fire developers

turns up 4 hits. One of them:

</code> http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:3379873654938 <code>

says very very clearly:

<quote>
Here are the steps to fix this problem:

a) fire the existing developers. They obviously don't use databases very often.

b) hire developers who have experience writing large scale, scalable
applications, have read the documenation and are willing to fix bugs in their
code when discovered.

Sorry to be so blunt but .....
</quote>


So, I am on record for saying just that! That, and I search for "fire dba" and do not see an inordinate number of times (you have to read the 16 or so hits -- I'm using talking about a trigger getting fired, not the DBA ;)

(also in my book -- all of the "bad" examples are developers! not DBA's. Don't worry -- I beat up on both equally)

Now, I don't recall seeing in here where I said or implied:
...
and the idea that DBAs should (or ever will) know more than a
developer is silly.
......

I will stand by what I said here -- if the DBA (who should be working WITH, not AGAINST, not FOR the developers) doesn't understand how the developers are using the database -- they will not be able to do their DBA job. Period.








dba responsibilities

Iain, July 09, 2002 - 7:26 am UTC

As Tom has stated, the them (Developers) and us (DBA) mentallity is not really going to ensure a fast, reliable, available system. Rather than have development teams and dba teams in each dev/production area, would it not make more sense to have a unified team of developers and DBA's. If a developer really understood the finer points of managing a DB with respect to e.g. buffers, disk I/O, tuning, recovery, security....the list goes on, then I would be out of a job. The converse is true, if I did a large volume of development...why employ developers? It makes sense to utilise each others specialised knowledge. As far as firing is concerned, if you can't do the job you were employed to do.....
If a DBA runs out of space, loses data etc when this was avoidable, you have to ask the question...would I not be better serving in McDonalds?

DBA from Aus., July 10, 2002 - 9:22 pm UTC

Just be proactive, if you sit and wait for developers to ask for help, you'll end up being the mushroom and looking after potentially badly developed apps.
I suppose that makes my job more interesting, fixing messes... :)

I agree that the DBA(s) should be as close to each other and developers. Its about relationship management, make the developers your friends!

Very tough saying fire people, isn't training a better option?? Or hiring a contractor to help short term?
I personally would ask up front of an employer what the grounds for dismissal were. Otherwise you could cop the blame on a bad management decision eg deadline, lack of infrastructure, lack of guts etc :)

Have Fun



Tom Kyte
July 11, 2002 - 7:25 am UTC

As for the firing thing -- I didn't say "fire the dba's" here -- I did point to a note where I said "fire the developers" but if you read that one -- you'll see that it had to be said in that case.

In that case

o they knew what the problem was
o they knew they were the cause of the problem
o they refused to fix it after being told of it

They were educated to the problem, they refused to fix a bug, they gotta go ;)



Some more questions

Arun Gupta, April 16, 2003 - 10:51 pm UTC

Tom
As far as DBA working with developers goes, I have one question:
a) Who does the job of query tuning? DBA or developer?

I am in an environment where most developers have worked with SQL and PL/SQL for the first time. They have never read an Oracle manual, never heard about analytic functions, dynamic SQL, bind variables, bulk binds and never run an explain plan. Their main task is to somehow make the application work. As a result of this, when I review the code, I find majority of code which can be replaced by more efficient constructs, but that would mean a complete code rewrite and testing. Sometimes, when I see something totally untolerable, I advise them about better ways of doing the same thing, but such advise is generally ignored.

Is fixing such bad code a DBA responsibility? The project management seems to think that DBA should fix all the poorly written code even if he has to rewrite it. Is that a fair expectation?
Thanks



Tom Kyte
April 17, 2003 - 10:15 am UTC

a) everyone -- from day one.

It is not anyones job.
It is everyones job.

and it starts way before a line of code is dreamt of.
It starts with the design (logical and physical)
It continues through development as the developer gets it going as good as they can in single user mode.
It continues through scalability/concurrency testing where the dba's monitor the instance as a hole, work WITH (not against, not for, not whatever -- WITH) the developers to fix the problems discovered
It continues to the end user acceptance where they actually use the tool in 50 different ways no one anticipated finding yet more issues to resolve.

So then when it goes production -- you don't tune anything, it works.

Fixing the code might not be the DBA responsibility -- but in this environment you describe I might suggest that

a) stored procedures are the only interface method -- no sql in the applications whatsoever

b) a mixed team of DBA/Developers are broken off to design and implement the database part -- the "real" part of the system

c) some of the developers remain behind to work on the lesser, not as important parts -- like the UI.

That way -- the DBA's get to understand the developers and the developers in b) become database savvy.


Otherwise, you are lost...


I do not believe in the DBA/developer wall -- tear down that wall. It is a database. There are applications working on the database. If either part fails to meet expectation -- neither part is useful. It is like a two phase commit here -- you either BOTH succeed or you both have failed.

Reader

A reader, April 30, 2003 - 2:50 pm UTC

Can you put data administrator in the mix and
compare and contrast their roles and responsibilities
with DBAs

Tom Kyte
April 30, 2003 - 7:15 pm UTC

whats a "data administrator".

my role

A reader, April 30, 2003 - 8:21 pm UTC

Hi

My role as production DBA is basically, getting mails with SQL scripts to run in pre-production and production. Dont have time for more! Doing more than 50 per day due to high number of databases (over 500)

Production DBA is a not very recommended job really

Your role?

A reader, April 30, 2003 - 11:56 pm UTC

...sounds more like a database operater (DBO). Stand up and be a DBA: write some scripts that process your mail and extract those SQL statements, and automatically submit to as many databases as you wish. Almost all can be automated, on unix platforms of course.

you wish you can do that in production

A reader, May 01, 2003 - 4:11 am UTC

Of course I have thought of making everything automatic, it is simply impossible, when the SQL scripts arrives before run them we must check them, you dont know what kind of script they send you! Plus, we have like 10 software providers so we first try to educate them but obviously if you work with 10 consultancies who then sub-contract people from more consultancies you can probably spend all your life educating them! Basically there is a standard procedure but in practice there are always things which does not fit in these standards

If you work in a big environment you would see running scripts automatically is totally out of question, if we do that we probably spend half of time restoring backups :)

Things to check are such as

owner of objects (sometimes they specify the development user!)
storage parameters
tablespace specifications
check if there is commit in DML scripts, not allowed
check synonym creations
check if they grant privileges to roles and not users

when a guy first arrived here asked us why we dont automize the process, we told him, sure try it. After two months he gave up :)

Reader

A reader, May 06, 2003 - 7:04 am UTC

The definition of Data Administrator in DW is from a book by Sid Adelman et al.

"
The role responsible for the enterprise's data resource and for the administration
control and coordination of all data-related analysis activities. The DA has the
responsibility for planning and defining the conceptual framework for the
overall data environment. The functions of the DA typically include requirements
definition, logical data modeling, data definitions, logical to physical
mapping, maintenance of inventory of the current system, data analysis, and
the meta data responsibility.
"

This site may be little off for these type of questions, however, I like to
know if possible, how a DA and DBA compare and contrast in their roles and
responsibilities

Tom Kyte
May 06, 2003 - 8:11 am UTC

Apparently

A DA talks about data.
A DBA works with data.

;)

the DA sounds like a traditional data modeler/data architect role.

Will you please guide me

Pragya Rohit Gulati, June 26, 2003 - 1:06 am UTC

Hi Tom

It seems to be unbelievable as first time I came across this site. You are great in way you answer the queries. I am a programmer new in Oracle and working on ORACLE 7 server release 7.1.4.1.0 and Pl/SQL Release 2.1.4.0.0. on SCO UNIX Open Server. I am working in an Automobile dealership as programmer. I have designed Forms and Reports(.rpts) for the company.
Now I have been given the charge of whole organization. You can say that I have been the system manager there. The system runs for Inventory Control, Accounting and Vehicle Job Processing System etc. There is 1 server and 8 dumb terminals. Now problem with me is that I don&#8217;t know what type of responsibilities are there, which should be handled by DBA. Actually I don&#8217;t know the abc of DBA. Will you please guide me ( if possible for you,I know you have a lot of queries to answer) where can I get the material regarding Data Base Administration so that atleast I can handle the day to day activities.

Hope you will understand the problem with me and help.

Regards,


Tom Kyte
June 26, 2003 - 9:12 am UTC

A dba has one thing they cannot do wrong -- ever.

That is recovery. Can you recover your database from a total catastrophic failure (which if your hardware is as old as your software is coming next week maybe)? Do you know backup and recovery like the back of your hand? if not, there you go, that is what you are doing.



Thanks

Pragya Rohit Gulati, June 27, 2003 - 12:29 am UTC

Hi Tom
I daily backup the entire data base to a .dmp file to another machine. In last 2 years i did not face any failure but once i had deleted an important file that i recorvered from .dmp file. About hardware we have Compaq Proliant PIII server.

Tom Kyte
June 27, 2003 - 8:44 am UTC

you did not recover an important file from a dmp file.

You recreated the data as it looked at the point in time you took the dmp -- meaning you lost each and every change made to it.

export is not a physical backup.
export "backups", if you can call them that, assure that you WILL lose data as all of the changes between the export and the "restore" will be lost forever.

only a backup is a backup.

Disagree on some points

Marc Blum, June 27, 2003 - 2:10 am UTC

Hi, i followed the thread and want to throw in some personal opinions. Regarding the administration of the DEV database we follow these rules:

- the whole database is regularly rebuild from scratch by a script machine

- Testdata is provided by scripts (reproduceability)

- all scripts above are taken from the version control system

- DEV databases are *never ever* backed up (if it gets screwed up, I rebuild a clean one). If buggy code logically corrupts my data, these database looses any value, so why back it up?

- each developer is advised to work as if the DEV database is completely rebuild tomorrow morning, so don't rely on anything in that database

- the holy grail is the version control system, nothing else

- the DEV-DBA is the maintainer of all database scripts. All DDL has to be discussed with him/her. Developers aren't allowed to change the data model. On the other hand the DBA commits himself to propagate all DDL ASAP to the DEV databases.

Marc



Tom Kyte
June 27, 2003 - 8:49 am UTC

My DEV databases are backed up.

It has my code in there. (holy grail aside, i checked out the code this morning and have been working on it for 5 hours. now it fails. choices = lose 5 hours of work or restore from backup)

It has my data in there. (I generally don't have scripts to build testdata except for version 0.0 of the system. after that, it is prod data copied down but with modifications. again, easier to restore then rebuild IMO)

It has to be running in archivelog mode anyway, how else can you tell how it will work in real life. (maybe YOUR dev databases aren't backed up, maybe YOU have that procedure in place)

You can do what you want with DEV, but I find it tons faster to restore in the event of failure. I find it easier to restore then rebuild. Also, it tests that your procedures actually work, which is a nice side effect.

DBA_RESPONSABILITIES

A reader, June 27, 2003 - 11:30 am UTC

SQL> select count(*) from dba_responsabilities;

  COUNT(*)
----------
8374319983

SQL> select count(*) from user_responsabilities;

  COUNT(*)
----------
         0 

Please guide

reader, November 04, 2003 - 7:52 am UTC

Hi Tom,
I really don't have words to appreciate the kind of knowledge you hold of Oracle, it’s a little personal but I would like to know what will you call yourself a developer having sound knowledge of database things or a DBA having sound knowledge of development related activities, please don’t take it offending. I have been working as a developer in Oracle with just PL/SQL from long, left other languages and tools back behind and as time went by learning more about databases I have a desire to move towards database administration but not just backup and recovery, more of the way you deal with the things development plus anything of databases we ask you and you know it, I too want to make a mark in Oracle world, I really want to be an expert what would you suggest, how should somebody go on this, I do understand practically working on things is very important but in real life one doesn’t get chance to explore everything but I want your comments on this please.

Thanking you in anticipation and waiting for your reply.


Tom Kyte
November 04, 2003 - 8:29 am UTC

i believe in a triumvirate actually.

there are dba's -- they manage the database, do the installs, backups, ===>> RECOVERY <<<===, patching, general management of the system and softare.

there are coders. they do the gui, they do some formatting of data, they have the middle tier on out. more power to them.

then there are the database developers. they own the data. they define the transactions, build the logic to get the data, modify the data. they understand what a database is, how transactions work, what an IOT means, when a cluster might be appropriate, what facilities the database provides so that it doesn't need to be recoded over and over and over again. they know analytics. they can write multi-line sql statements and aren't afraid of doing so.


i'm in that last class.

Another angle

daniel, November 08, 2004 - 5:29 pm UTC

Hello TOM. This is an open ended question for you and for all the readers. My manager asked our DBA team, what are the extra or proactive things that we could be doing to make us look in the eyes of the upper management and within the company. Currently our databases are very stable and we don't have the "black eye", but he wants to make us even stronger. Things that come to mind, are testing recovery of every database at least once a quarter, playing DBA-wars to improve our skills. Does anybody have any other suggestions? Thanks.

Tom Kyte
November 08, 2004 - 9:20 pm UTC

becoming part of the business itself.

does upper mgmt know some of your names?
would they know you in the hallway?
are you considered "support staff" or "part of the team"


I firmly believe that if all a DBA is doing is manging a database (or 200 of them), they need to broaden out....

do you train the developers in best practices?
do you make suggestions on ways the business could run better?
are you proactive or reactive?

daniel, November 09, 2004 - 11:08 am UTC

does upper mgmt know some of your names? Nope. There is more than 180 people in the DataManagement team alone.

would they know you in the hallway? Nope.

are you considered "support staff" or "part of the team"
They say we're all "part of the team", but really we are support staff. Our resposibilites are really shared by many teams...DBA,developers, business consultats etc...It's really hard for us to know what the business is doing, how they're doing it, because we don't see on that side of the fence.


I firmly believe that if all a DBA is doing is manging a database (or 200 of
them), they need to broaden out....But how do you do it in the big company, where everybody has a role to play.

do you train the developers in best practices? I'm pushing for that, because in my previous job I had a lot of input on the developers. Now we really don't know many times what they're doing.

do you make suggestions on ways the business could run better? It's hard without knowing the business.
are you proactive or reactive? On the databases we stay proactive. But from the business side, we are reactive.


Tom Kyte
November 09, 2004 - 11:21 am UTC

<quote>
It's hard
without knowing the business.
</quote>

there is your first task then!

<quote>
But from the
business side, we are reactive.
</quote>

and your second

DBA is also DA

Sai, November 28, 2004 - 11:55 pm UTC

Hi
Some Developers are there. If you change their sql, pl/sql scripts they will go mad.
But if you are a DBA, you must change the script if required for performance point of view. To do this, it is better if you know about the application. Always make your point clear to the management before doing anything. It will save you from unwanted management (not developers) misunderstanding. Educate the developer if possible. My point of view is restrict all privileges in development at the time of new application schema preparation. Provide full privileges (not DBA level) to Individual Developers database account in Development to learn (my dev db size is 10gb, but some developer enables the database trace and trace file became 127gb) and restrict developers database accounts owning any db objects otherwise they will own application objects in development and at the time of moving to production your policy may not allow this. If your company policy is not allowing full privilege for developers in dev db then go for personal oracle for each developer.


Alexander the ok, September 19, 2006 - 10:20 am UTC

Hi Tom,

I wanted to ask you a few things about Oracle standards for DBAs. Do you think there should set processes for all DBAs? Do you enforce Oracle standards (I don't even know what they are, but we have a guy who's very adamant about them...) Or do you feel a DBA should do whatever he needs to do to get his job done even if it's very different from what Joe does? Have you ever managed a group of DBAs before, and if yes I would like to know what kinds procedures you like them to follow. We have different people doing different things, and some believe this to be a problem because things aren't standardized. I am to inexperienced at the moment to contribute much so I'm doing a little research. Thank you.

Tom Kyte
September 19, 2006 - 2:48 pm UTC

set processes for all DBA's in the world - nope, not any more than there should be set processes for any professional. "it depends" and "why" are the only valid answers to all questions - same applies here.

But if you mean "within my company - should we be following a set of standardized procedures regarding backup, recovery, metrics collection and the like" - then I would say ABSOLUTELY, YES, DEFINITELY.

It seems after reading your paragraph, the "within my company" applies the most here. Yes, you should be following (and adding to, commenting on, changing, evolving, participating in) the standards set by your company.

Questions asked in an interview

A reader, September 20, 2006 - 9:00 am UTC


I attended few interviews in the last month, and asked by similiar questions:

Q: What do you think the most important responsibilities of a DBA?

My answer: Availability, acceptable performance, and good and solid backup and recovery procedures

Q: What questions should be asked if a developer want you to add a new column to a table?

My answer: data type, size, any constraints defined, index defined

Q: Assume a new project will be developed soon, what areas should DBA need to plan for this project?

My answer: capacity planning in the database and server, memory usage in the server, CPU usage in the server, number of users in the project, backup/recovery policy, any special requirement (such that can be implemented by Oracle features such as replication, standby database etc)

Q: Which command you can type to resume the database's service after the archive log destination is cleared?

My answer: Not need to type any command, when the archive log destination is cleared, the database can resume the service (but the interviewer insisted that a command is needed, is that correct?)

Tom, could you give me some other areas that I didn't mentioned for the above questions?

Thanks,
David

Tom Kyte
September 20, 2006 - 3:08 pm UTC

well for the second one, you could always add my favorite -- "why", that might answer some of the other questions by itself.



dba_procedures - private procedure

A reader, May 10, 2007 - 1:15 am UTC

Hi Tom,

A small question : Which dictionary is used to retrieve the information of a private procedure/function ( not defined in the package header but defined in the package body ) ? This is urgent.

Thanks
Deba
Tom Kyte
May 11, 2007 - 10:34 am UTC

there isn't one.

dba_procedures - private procedure

deba, May 14, 2007 - 7:36 am UTC

Hi Tom,

Thanks for the reply. But how TOAD shows this private procedure separately ? Is there any OCI for this ?

Deba
Tom Kyte
May 14, 2007 - 2:08 pm UTC

no, if toad is showing you something, they probably are reading and parsing the stored source code themselves.

we don't export those unnecessary symbols.

Alexander, December 09, 2008 - 12:54 pm UTC

Tom,

We as dbas are constantly trying to show/prove to managers and customers (application teams in this context) how valuable we are. Basically, people think any monkey can be a DBA, and we are trying to come up with a list of services.

In my opinion, it is not coming up with the list that is a problem, it is trying to convey the importance and complexity behind the tasks.

Do you have any experience with this type of battle? Do you have advice or documents you've used in the past? Bear in mind we are shooting for all databases not just Oracle. Thank you.
Tom Kyte
December 09, 2008 - 2:42 pm UTC

have everyone go on vacation for a week, during the same week.

honestly, I don't know how to respond to this.

isn't their data viewed as the most valuable thing? ask them "what would happen if we lost that database". They would say "well, of course you won't lose it, how could you lose it". Then list the ways...

Are you so good that you never experience any downtime of any sort? Usually, the cost associated with downtime is fairly onerous and obvious...

It could be that you cannot change the environment you are in, you sometimes have to change environments...

Alexander, December 09, 2008 - 3:12 pm UTC

Need anyone, you won't get any IM speak in my resume ;)

My department is considered overhead, so it's tough to assign a cost to downtime since most of ours systems are internal and technically don't make money.

I wish we could all take off for the week, they'd get the picture real fast.

So in your experience when you go to customer sites were you left with the impression there was a great appreciation for dbas and the database? Maybe our organization is just missing the boat.
Tom Kyte
December 09, 2008 - 4:24 pm UTC

... were you left with the
impression there was a great appreciation for dbas and the database? ...

most of the time - yes, they get the fact that "data is relevant and these people make the data work"