DBA Questions And Answer


1. What DBA activities did you to do today?
2. What is your typical day like?
3. What other parts of your organization do you interact with and how?
4. Do you consider yourself a development DBA or a production DBA and why?
5. Are you a nuts-n-bolts DBA or a tools-n-props DBA

Technical - Oracle

1. Explain the difference between a hot backup and a cold backup and the benefits associated with each
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?
3. How do you switch from an init.ora file to a spfile?
4. Explain the difference between a data block, an extent and a segment.
5. Give two examples of how you might determine the structure of the table DEPT.
6. Where would you look for errors from the database engine?
7. Compare and contrast TRUNCATE and DELETE for a table.
8. Give the reasoning behind using an index.
9. Give the two types of tables involved in producing a star schema and the type of data they hold.
10. . What type of index should you use on a fact table?
11. . Give two examples of referential integrity constraints.
12. A table is classified as a parent table and you want to drop and re-create it. How would you do this without affecting the children tables?
13. Explain the difference between ARCHIVELOG mode and NOARCHIVELOG mode and the benefits and disadvantages to each.
14. What command would you use to create a backup control file?
15. Give the stages of instance startup to a usable state where normal users may access it.
16. What column differentiates the V$ views to the GV$ views and how?
17. How would you go about generating an EXPLAIN plan?
18. How would you go about increasing the buffer cache hit ratio?

# Explain an ORA-01555
# Explain the difference between $ORACLE_HOME and $ORACLE_BASE.
# How would you determine the time zone under which a database was operating?
# Explain the use of setting GLOBAL_NAMES equal to TRUE.
# What command would you use to encrypt a PL/SQL application?
# Explain the difference between a FUNCTION, PROCEDURE and PACKAGE.
# Explain the use of table functions.
# Name three advisory statistics you can collect.
# Where in the Oracle directory tree structure are audit traces placed?
# Explain materialized views and how they are used.
# When a user process fails, what background process cleans up after it?
# What background process refreshes materialized views?
# How would you determine what sessions are connected and what resources they are waiting for?
# Describe what redo logs are.
# How would you force a log switch?
# Give two methods you could use to determine what DDL changes have been made.
# What does coalescing a tablespace do?
# What is the difference between a TEMPORARY tablespace and a PERMANENT tablespace?
# Name a tablespace automatically created when you create a database.
# When creating a user, what permissions must you grant to allow them to connect to the database?
# How do you add a data file to a tablespace?
# How do you resize a data file?
# What view would you use to look at the size of a data file?
# What view would you use to determine free space in a tablespace?
# How would you determine who has added a row to a table?
# How can you rebuild an index?
# Explain what partitioning is and what its benefit is.
# You have just compiled a PL/SQL package but got errors, how would you view the errors?
# How can you gather statistics on a table?
# How can you enable a trace for a session?
# What is the difference between the SQL*Loader and IMPORT utilities?
# Name two files used for network connection to a database.

# How do you list the files in an UNIX directory while also showing hidden files?
# How do you execute a UNIX command in the background?
# What UNIX command will control the default file permissions when files are created?
# Explain the read, write, and execute permissions on a UNIX directory.
# What is the difference between a soft link and a hard link?
# Give the command to display space usage on the UNIX file system.
# Explain iostat, vmstat and netstat.
# How would you change all occurrences of a value using VI?
# Give two UNIX kernel parameters that effect an Oracle install
# Briefly, how do you install Oracle software on UNIX.

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/test.sh 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.

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 icallinc.com?

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 "backup_rman.sh". 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.

1. What are the different types of joins?

2. Explain normalization with examples.

3. What cursor type do you use to retrieve multiple record sets?

4. Difference between a "where" clause and a "having" clause

5. What is the difference between "procedure" and "function"?

6. How will you copy the structure of a table without copying the data?

7. How to find out the database name from SQL*PLUS
command prompt?

8. Takeoffs with having indexes

9. Talk about "Exception Handling" in PL/SQL?

10. What is the difference between "NULL in C" and "NULL in Oracle?"

11. What is Pro*C? What is OCI?

12. Give some examples of Analytical functions.

13. What is the difference between "translate" and "replace"?

14. What is DYNAMIC SQL method 4?

15. How to remove duplicate records from a table?

16. What is the use of analyzing the tables?

17. How to run SQL script from a Unix Shell?

18. What is a "transaction"? Why are they necessary?

19. Explain Normalization and Denormalization with examples.

20. When do you get constraint violation? What are the types of constraints?

21. How to convert RAW data type into TEXT?

22. Difference - Primary Key and Aggregate Key

23. How functional dependency is related to database table design?

24. What is a "trigger"?

25. Why can a "group by" or "order by" clause be expensive to process?

26. What are "HINTS"? What is "index covering" of a query?

27. What is a VIEW? How to get script for a view?

28. What are the Large object types supported by Oracle?

29. What is SQL*Loader?

30. Difference between "VARCHAR" and "VARCHAR2" data types.

31. What is the difference among "dropping a table", "truncating a table" and "deleting all records" from a table?

32. Difference between "ORACLE" and "MICROSOFT ACCESS" databases.

33. How to create a database link?

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.

1. Give one method for transferring a table from one schema to another:


Expected Answer: There are several possible methods, export-import, CREATE TABLE... AS SELECT, or COPY.

2. What is the purpose of the IMPORT option IGNORE? What is it?s default setting?

Level: Low

Expected Answer: The IMPORT IGNORE option tells import to ignore "already exists" errors. If it is not specified the tables that already exist will be skipped. If it is specified, the error is ignored and the tables data will be inserted. The default value is N.

3. You have a rollback segment in a version 7.2 database that has expanded beyond optimal, how can it be restored to optimal?

Level: Low

Expected answer: Use the ALTER TABLESPACE ..... SHRINK command.

4. If the DEFAULT and TEMPORARY tablespace clauses are left out of a CREATE USER command what happens? Is this bad or good? Why?

Level: Low

Expected answer: The user is assigned the SYSTEM tablespace as a default and temporary tablespace. This is bad because it causes user objects and temporary segments to be placed into the SYSTEM tablespace resulting in fragmentation and improper table placement (only data dictionary objects and the system rollback segment should be in SYSTEM).

5. What are some of the Oracle provided packages that DBAs should be aware of?

Level: Intermediate to High

Expected answer: Oracle provides a number of packages in the form of the DBMS_ packages owned by the SYS user. The packages used by DBAs may include: DBMS_SHARED_POOL, DBMS_UTILITY, DBMS_SQL, DBMS_DDL, DBMS_SESSION, DBMS_OUTPUT and DBMS_SNAPSHOT. They may also try to answer with the UTL*.SQL or CAT*.SQL series of SQL procedures. These can be viewed as extra credit but aren?t part of the answer.

6. What happens if the constraint name is left out of a constraint clause?

Level: Low

Expected answer: The Oracle system will use the default name of SYS_Cxxxx where xxxx is a system generated number. This is bad since it makes tracking which table the constraint belongs to or what the constraint does harder.

7. What happens if a tablespace clause is left off of a primary key constraint clause?

Level: Low

Expected answer: This results in the index that is automatically generated being placed in then users default tablespace. Since this will usually be the same tablespace as the table is being created in, this can cause serious performance problems.

8. What is the proper method for disabling and re-enabling a primary key constraint?

Level: Intermediate

Expected answer: You use the ALTER TABLE command for both. However, for the enable clause you must specify the USING INDEX and TABLESPACE clause for primary keys.

9. What happens if a primary key constraint is disabled and then enabled without fully specifying the index clause?

Level: Intermediate

Expected answer: The index is created in the user?s default tablespace and all sizing information is lost. Oracle doesn?t store this information as a part of the constraint definition, but only as part of the index definition, when the constraint was disabled the index was dropped and the information is gone.

10. (On UNIX) When should more than one DB writer process be used? How many should be used?

Level: High

Expected answer: If the UNIX system being used is capable of asynchronous IO then only one is required, if the system is not capable of asynchronous IO then up to twice the number of disks used by Oracle number of DB writers should be specified by use of the db_writers initialization parameter.

11. You are using hot backup without being in archivelog mode, can you recover in the event of a failure? Why or why not?

Level: High

Expected answer: You can?t use hot backup without being in archivelog mode. So no, you couldn?t recover.

12. What causes the "snapshot too old" error? How can this be prevented or mitigated?

Level: Intermediate

Expected answer: This is caused by large or long running transactions that have either wrapped onto their own rollback space or have had another transaction write on part of their rollback space. This can be prevented or mitigated by breaking the transaction into a set of smaller transactions or increasing the size of the rollback segments and their extents.

13. How can you tell if a database object is invalid?

Level: Low

Expected answer: By checking the status column of the DBA_, ALL_ or USER_OBJECTS views, depending upon whether you own or only have permission on the view or are using a DBA account.

14. A user is getting an ORA-00942 error yet you know you have granted them permission on the table, what else should you check?

Level: Low

Expected answer: You need to check that the user has specified the full name of the object (select empid from scott.emp; instead of select empid from emp;) or has a synonym that points to the object (create synonym emp for scott.emp;)

15. A developer is trying to create a view and the database won?t let him. He has the "DEVELOPER" role which has the "CREATE VIEW" system privilege and SELECT grants on the tables he is using, what is the problem?

Level: Intermediate

Expected answer: You need to verify the developer has direct grants on all tables used in the view. You can?t create a stored object with grants given through views.

16. If you have an example table, what is the best way to get sizing data for the production table implementation?

Level: Intermediate

Expected answer: The best way is to analyze the table and then use the data provided in the DBA_TABLES view to get the average row length and other pertinent data for the calculation. The quick and dirty way is to look at the number of blocks the table is actually using and ratio the number of rows in the table to its number of blocks against the number of expected rows.

17. How can you find out how many users are currently logged into the database? How can you find their operating system id?

Level: high

Expected answer: There are several ways. One is to look at the v$session or v$process views. Another way is to check the current_logins parameter in the v$sysstat view. Another if you are on UNIX is to do a "ps -ef|grep oracle|wc -l? command, but this only works against a single instance installation.

18. A user selects from a sequence and gets back two values, his select is:

SELECT pk_seq.nextval FROM dual;

What is the problem?

Level: Intermediate

Expected answer: Somehow two values have been inserted into the dual table. This table is a single row, single column table that should only have one value in it.

19. How can you determine if an index needs to be dropped and rebuilt?

Level: Intermediate

Expected answer: Run the ANALYZE INDEX command on the index to validate its structure and then calculate the ratio of LF_BLK_LEN/LF_BLK_LEN+BR_BLK_LEN and if it isn?t near 1.0 (i.e. greater than 0.7 or so) then the index should be rebuilt. Or if the ratio

BR_BLK_LEN/ LF_BLK_LEN+BR_BLK_LEN is nearing 0.3.

No comments: