Oracle DBA interview questions

A reader submitted this via e-mail without explanation whether these questions were used for hiring a DBA at Oracle Corp., or whether it was the Oracle database admin position that someone interviewed for somewhere else. Update: The questions were written by James Koopman for DatabaseJournal back in 2003.

  1. Explain the difference between a hot backup and a cold backup and the benefits associated with each. - A hot backup is basically taking a backup of the database while it is still up and running and it must be in archive log mode. A cold backup is taking a backup of the database while it is shut down and does not require being in archive log mode. The benefit of taking a hot backup is that the database is still available for use while the backup is occurring and you can recover the database to any point in time. The benefit of taking a cold backup is that it is typically easier to administer the backup and recovery process. In addition, since you are taking cold backups the database does not require being in archive log mode and thus there will be a slight performance gain as the database is not cutting archive logs to disk.
  2. You have just had to restore from backup and do not have any control files. How would you go about bringing up this database? - I would create a text based backup control file, stipulating where on disk all the data files where and then issue the recover command with the using backup control file clause.
This entry was posted in Database. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

20 Comments on Oracle DBA interview questions

  1. vidya
    Posted 7/14/2004 at 5:59 pm | Permalink

    the answer about difference b/w truncate and delete can have more points. eg.
    truncate does not generate undo, unlike delete operation.
    delete triggers are not fired for truncate.
    truncate releases used space and has implicit commit(ddl opern.)

  2. Ade
    Posted 8/2/2005 at 11:02 am | Permalink

    I saw these questions on a web site. Can I have answers to them?

    1. How many memory layers are in the shared pool?

    2. How do you find out from the RMAN catalog if a particular archive log has been backed-up?

    3. How can you tell how much space is left on a given file system and how much space each of the file system’s subdirectories take-up?

    4. Define the SGA and:
    • How you would configure SGA for a mid-sized OLTP environment?
    • What is involved in tuning the SGA?

    5. What is the cache hit ratio, what impact does it have on performance of an Oracle database and what is involved in tuning it?

    6. Other than making use of the statspack utility, what would you check when you are monitoring or running a health check on an Oracle 8i or 9i database?

    7. How do you tell what your machine name is and what is its IP address?

    8. How would you go about verifying the network name that the local_listener is currently using?

    9. You have 4 instances running on the same UNIX box. How can you determine which shared memory and semaphores are associated with which instance?

    10. What view(s) do you use to associate a user’s SQLPLUS session with his o/s process?

    11. What is the recommended interval at which to run statspack snapshots, and why?

    12. What spfile/init.ora file parameter exists to force the CBO to make the execution path of a given statement use an index, even if the index scan may appear to be calculated as more costly?

    13. Assuming today is Monday, how would you use the DBMS_JOB package to schedule the execution of a given procedure owned by SCOTT to start Wednesday at 9AM and to run subsequently every other day at

    14. How would you edit your CRONTAB to schedule the running of /test/ to run every other day at 2PM?

    15. What do the 9i dbms_standard.sql_txt() and
    dbms_standard.sql_text() procedures do?

    16. In which dictionary table or view would you look to determine at which time a snapshot or MVIEW last successfully refreshed?

    17. How would you best determine why your MVIEW couldn’t FAST REFRESH?

    18. How does propagation differ between Advanced Replication and Snapshot Replication (read-only)?

    19. Which dictionary view(s) would you first look at to
    understand or get a high-level idea of a given Advanced Replication environment?

    20. How would you begin to troubleshoot an ORA-3113 error?

    21. Which dictionary tables and/or views would you look at to diagnose a locking issue?

    22. An automatic job running via DBMS_JOB has failed. Knowing only that “it’s failed”, how do you approach troubleshooting this issue?

    23. How would you extract DDL of a table without using a GUI tool?

    24. You’re getting high “busy buffer waits” - how can you find what’s causing it?

    25. What query tells you how much space a tablespace named “test” is taking up, and how much space is remaining?

    26. Database is hung. Old and new user connections alike hang on impact. What do you do? Your SYS SQLPLUS session IS able to connect.

    27. Database crashes. Corruption is found scattered among the file system neither of your doing nor of Oracle’s. What database recovery options are available? Database is in archive log mode.

    28. Illustrate how to determine the amount of physical CPUs a Unix Box possesses (LINUX and/or Solaris).

    29. How do you increase the OS limitation for open files (LINUX and/or Solaris)?

    30. Provide an example of a shell script which logs into SQLPLUS as SYS, determines the current date, changes the date format to include minutes & seconds, issues a drop table command, displays the date again, and finally exits.

    31. Explain how you would restore a database using RMAN to Point in Time?

    32. How does Oracle guarantee data integrity of data changes?

    33. Which environment variables are absolutely critical in order to run the OUI?

    34. What SQL query from v$session can you run to show how many sessions are logged in as a particular user account?

    35. Why does Oracle not permit the use of PCTUSED with indexes?

    36. What would you use to improve performance on an insert statement that places millions of rows into that table?

    37. What would you do with an “in-doubt” distributed transaction?

    38. What are the commands you’d issue to show the explain plan for “select * from dual”?

    39. In what script is “snap$” created? In what script is
    the “scott/tiger” schema created?

    40. If you’re unsure in which script a sys or system-owned object is created, but you know it’s in a script from a specific directory, what UNIX command from that directory structure can you run to find your answer?

    41. How would you configure your networking files to connect to a database by the name of DSS which resides in domain

    42. You create a private database link and upon
    connection, fails with: ORA-2085: connects to . What is the problem? How would you go about resolving this error?

    43. I have my backup RMAN script called “”. I am on the target database. My catalog username/password is rman/rman. My catalog db is called rman. How would you run this shell script from the O/S such that it would run as a background process?

    44. Explain the concept of the DUAL table.

    45. What are the ways tablespaces can be managed and how do they differ?

    46. From the database level, how can you tell under which time zone a database is operating?

    47. What’s the benefit of “dbms_stats” over “analyze”?

    48. Typically, where is the conventional directory structure chosen for Oracle binaries to reside?

    49. You have found corruption in a tablespace that contains static tables that are part of a database that is in NOARCHIVE log mode. How would you restore the tablespace without losing new data in the other tablespaces?

    50. How do you recover a datafile that has not been physically been backed up since its creation and has been deleted. Provide syntax example.

  3. khalid
    Posted 11/17/2005 at 5:58 am | Permalink

    Thank you for sending me the answers

  4. Siva
    Posted 3/30/2006 at 5:20 pm | Permalink

    How to calculate the perfomance of Oracle 9i Databases in HPUNIX?

  5. Venkat
    Posted 11/16/2006 at 10:17 am | Permalink

    How to defragment in Oracle?

  6. Venkat
    Posted 11/16/2006 at 10:21 am | Permalink

    How to Start the database thru Command Prompt when oracle is stoped in service?

  7. K.Chandrasekhar
    Posted 2/17/2007 at 5:56 am | Permalink to know how many instance are up?
    2.when we are taking the hot backup then what is the
    background process?

  8. anilcr
    Posted 4/26/2007 at 2:46 am | Permalink

    the answer about difference b/w truncate and delete can have more points.

    1>In truncate ,we cannot rollback the changes made to the tables
    where as in delete we can rollback the changes

    2>In truncate,no entry is made in ldf file (log data file)
    In Delete,entry is made in ldf file

  9. satya narayana
    Posted 6/21/2007 at 9:00 am | Permalink

    hi my name is narayana i am working one of the mnc company but i want answeres of these following questions plz help me any one

    1.1. Migration of Oracle database from 7.x.x to 8i.x.x. to 9i.x.x to 10g.x.x
    Methodologies and steps involved. We do it by 4 ways:

    (a) Exp/Imp dump file (b) Data-pump (c) by configuring Standby (d) RMAN
    2. Standby database its configuration and concept
    3. Database Replication concept
    4. Dataguard configuration

  10. harish
    Posted 7/1/2007 at 10:23 pm | Permalink

    i am just confused with

    1. wht is use of UNDO_RETENTION
    2. AND use of undo retention policy
    3. cache hit ratio

    thank you

  11. hemant
    Posted 9/17/2007 at 8:42 am | Permalink

    The use of undo_retention is that u get information that after how much time the snapshot too old error will be effective, this error depend upon undo_retention.

  12. Mohammed Yacoob
    Posted 10/16/2007 at 6:08 am | Permalink

    Hi chandrasekar,

    — The following command will give the instance information

    select * from v$instance;

    — when we are taking the hot backup then what is the
    background process?

    CKPT background process

  13. Mohammed Yacoob
    Posted 2/25/2008 at 1:54 am | Permalink

    Dear Venkat,

    for Window or Linux,

    sqlplus /nolog
    SQL> startup nomount
    ORACLE instance started.

    –> This command will show the database files details ( Total SGA, Fixed Size, Variable size, Variable size and Redo details…

    –> then connect sys with system credentail…
    –> check wether the User credentail has locked…
    –> if its alter the credentail with unlock….

    Mohammed Yacoob

  14. Mohammed Yacoob
    Posted 2/25/2008 at 2:00 am | Permalink

    Dear Siva,

    There are command line procesures are there to check the oracle 91i performance….

    –> Before to test the Oracle 9i find the HPUNIX OS Performance counter …

    Mohammed Yacoob

  15. ranjani
    Posted 4/22/2008 at 8:17 am | Permalink

    this can be rollbacked
    this cannot be rollbacked

  16. ranjani
    Posted 4/22/2008 at 8:19 am | Permalink

    shared pool will have library cache and data dictionary cache

  17. naveen
    Posted 6/21/2008 at 3:58 am | Permalink

    Ans for Question 2:


    the above command list all the archivelog that has been backup.


  18. Tamilselvan
    Posted 7/3/2008 at 3:11 am | Permalink

    How many memory layers are in the shared pool?

    There are three layers in shared pool

    i) Library cache
    ii) Data dictonary cache
    iii) control structures

    control structures will consists of locks and latches

  19. Pradeep Verma
    Posted 1/27/2009 at 1:01 am | Permalink

    Ans for question 44

    Dual table is a dummy table maintained by oracle server, you can use it to see current date and time etc.
    “select sysdate from dual”
    the above command will give you current system date.

  20. raya tharaka ram
    Posted 1/29/2009 at 8:13 am | Permalink

    how can you perform a baseline backup in oracle dba?

Post a Comment

Your email is never published nor shared. Required fields are marked *