Pages

Friday, July 6, 2012

Oracle DBA General Interview Questions


1. How would you determine the time zone under which a database was operating?

select DBTIMEZONE from dual;

2. Explain the use of setting GLOBAL_NAMES equal to TRUE.
Setting GLOBAL_NAMES dictates how you might connect to a database. This variable is either TRUE or FALSE and if it is set to TRUE it enforces database links to have the same name as the remote database to which they are linking.

3. What command would you use to encrypt a PL/SQL application?

WRAP

4. Explain the difference between a FUNCTION, PROCEDURE and PACKAGE.

A function and procedure are the same in that they are intended to be a collection of PL/SQL code that carries a single task. While a procedure does not have to return any values to the calling application, a function will return a single value. A package on the other hand is a collection of functions and procedures that are grouped together based on their commonality to a business function or application.

5. Explain the use of table functions.

Table functions are designed to return a set of rows through PL/SQL logic but are intended to be used as a normal table or view in a SQL statement. They are also used to pipeline information in an ETL process.

6. Name three advisory statistics you can collect.

Buffer Cache Advice, Segment Level Statistics, & Timed Statistics

7. Where in the Oracle directory tree structure are audit traces placed?

In unix $ORACLE_HOME/rdbms/audit, in Windows the event viewer

8. Explain materialized views and how they are used.

Materialized views are objects that are reduced sets of information that have been summarized, grouped, or aggregated from base tables. They are typically used in data warehouse or decision support systems.

9. When a user process fails, what background process cleans up after it?

PMON

10. What background process refreshes materialized views?

The Job Queue Processes.

11. How would you determine what sessions are connected and what resources they are waiting for?

Use of V$SESSION and V$SESSION_WAIT

12. Describe what redo logs are.

Redo logs are logical and physical structures that are designed to hold all the changes made to a database and are intended to aid in the recovery of a database.

13. How would you force a log switch?

ALTER SYSTEM SWITCH LOGFILE;

14. Give two methods you could use to determine what DDL changes have been made.

You could use Logminer or Streams

15. What does coalescing a tablespace do?
Coalescing is only valid for dictionary-managed tablespaces and de-fragments space by combining neighboring free extents into large single extents.

16. What is the difference between a TEMPORARY tablespace and a PERMANENT tablespace?
A temporary tablespace is used for temporary objects such as sort structures while permanent tablespaces are used to store those objects meant to be used as the true objects of the database.

17. Name a tablespace automatically created when you create a database.

The SYSTEM tablespace.

18. When creating a user, what permissions must you grant to allow them to connect to the database?

Grant the CONNECT to the user.

19. How do you add a data file to a tablespace?

ALTER TABLESPACE ADD DATAFILE SIZE 

20. How do you resize a data file?

ALTER DATABASE DATAFILE RESIZE ;

21. What view would you use to look at the size of a data file?

DBA_DATA_FILES

22. What view would you use to determine free space in a tablespace?

DBA_FREE_SPACE

23. How would you determine who has added a row to a table?

Turn on fine grain auditing for the table.

24. How can you rebuild an index?

ALTER INDEX REBUILD;

25. Explain what partitioning is and what its benefit is.

Partitioning is a method of taking large tables and indexes and splitting them into smaller, more manageable pieces.

26. You have just compiled a PL/SQL package but got errors, how would you view the errors?
SHOW ERRORS

27. How can you gather statistics on a table?
The ANALYZE command.

28. How can you enable a trace for a session?

Use the DBMS_SESSION.SET_SQL_TRACE or

Use ALTER SESSION SET SQL_TRACE = TRUE;

29. What is the difference between the SQL*Loader and IMPORT utilities?

These two Oracle utilities are used for loading data into the database. The difference is that the import utility relies on the data being produced by another Oracle utility EXPORT while the SQL*Loader utility allows data to be loaded that has been produced by other utilities from different data sources just so long as it conforms to ASCII formatted or delimited files.

30. Name two files used for network connection to a database.

TNSNAMES.ORA and SQLNET.ORA
Technical - UNIX

Every DBA should know something about the operating system that the database will be running on. The questions here are related to UNIX but you should equally be able to answer questions related to common Windows environments.

31. How do you list the files in an UNIX directory while also showing hidden files?

ls -ltra

32. How do you execute a UNIX command in the background?
Use the "&"

33. What UNIX command will control the default file permissions when files are created?

Umask

34. Explain the read, write, and execute permissions on a UNIX directory.

Read allows you to see and list the directory contents.

Write allows you to create, edit and delete files and subdirectories in the directory.

Execute gives you the previous read/write permissions plus allows you to change into the directory and execute programs or shells from the directory.

35. What is the difference between a soft link and a hard link?

A symbolic (soft) linked file and the targeted file can be located on the same or different file system while for a hard link they must be located on the same file system.

36. Give the command to display space usage on the UNIX file system.

df -lk

37. Explain iostat, vmstat and netstat.

Iostat reports on terminal, disk and tape I/O activity.

Vmstat reports on virtual memory statistics for processes, disk, tape and CPU activity.

Netstat reports on the contents of network data structures.

38. How would you change all occurrences of a value using VI?
Use :%s///g

39. Give two UNIX kernel parameters that effect an Oracle install

SHMMAX & SHMMNI

40. Briefly, how do you install Oracle software on UNIX.

Basically, set up disks, kernel parameters, and run orainst.

41. Describe the Oracle Wait Interface, how it works, and what it provides. What are some limitations? What do the db_file_sequential_read and db_file_scattered_read events indicate?

The Oracle Wait Interface refers to Oracle's data dictionary for managing wait events. Selecting from tables such as v$system_event and v$session_event give you event totals through the life of the database (or session). The former are totals for the whole system, and latter on a per session basis. The event db_file_sequential_read refers to single block reads, and table accesses by rowid. db_file_scattered_read conversely refers to full table scans. It is so named because the blocks are read, and scattered into the buffer cache.

42. How do you return the top-N results of a query in Oracle? Why doesn't the obvious method work?

Most people think of using the ROWNUM pseudocolumn with ORDER BY. Unfortunately the ROWNUM is determined *before* the ORDER BY so you don't get the results you want. The answer is to use a subquery to do the ORDER BY first. For example to return the top-5 employees by salary:

SELECT * FROM (SELECT * FROM employees ORDER BY salary) WHERE ROWNUM < 5;

43. What is a database link? What is the difference between a public and a private database link? What is a fixed user database link?

A database link allows you to make a connection with a remote database, Oracle or not, and query tables from it, even incorporating those accesses with joins to local tables.

A private database link only works for, and is accessible to the user/schema that owns it. A global one can be accessed by any user in the database.

A fixed user link specifies that you will connect to the remote db as one and only one user that is defined in the link. Alternatively, a current user database link will connect as the current user you are logged in as.

44. What are some advantages to using Oracle's CREATE DATABASE statement to create a new database manually?

* You can script the process to include it in a set of install scripts you deliver with a product.
* You can put your create database script in CVS for version control, so as you make changes or adjustments to it,
you can track them like you do changes to software code.
* You can log the output and review it for errors.
* You learn more about the process of database creation, such as what options are available and why.

No comments:

Post a Comment