dba interview q

Upload: pradippradip666

Post on 30-May-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 DBA Interview q

    1/32

    Oracle DBA interview questions

    Oracle Concepts and Architecture Database

    Structures

    1. What are the components of physical database

    structure of Oracle database?

    Oracle database is comprised of three types of files.One or more datafiles, two are more redo log files,and one or more control files.

    2. What are the components of logical database

    structure of Oracle database?

    There are tablespaces and database's schemaobjects.

    3. What is a tablespace?

    A database is divided into Logical Storage Unitcalled tablespaces. A tablespace is used to groupedrelated logical structures together.

    4. What is SYSTEM tablespace and when is it

    created?

    Every Oracle database contains a tablespace namedSYSTEM, which is automatically created when thedatabase is created. The SYSTEM tablespacealways contains the data dictionary tables for theentire database.

    5. Explain the relationship among database,

    tablespace and data file.

    Each databases logically divided into one or moretablespaces one or more data files are explicitlycreated for each tablespace.

    6. What is schema?

    A schema is collection of database objects of a user.

    7. What are Schema Objects?

    Schema objects are the logical structures thatdirectly refer to the database's data. Schema objectsinclude tables, views, sequences, synonyms,indexes, clusters, database triggers, procedures,functions packages and database links.

    8. Can objects of the same schema reside in

    different tablespaces?

    Yes.

    9. Can a tablespace hold objects from different

    schemes?

    Yes.

    10. What is Oracle table?

    A table is the basic unit of data storage in an Oracledatabase. The tables of a database hold all of theuser accessible data. Table data is stored in rowsand columns.

    11. What is an Oracle view?

    A view is a virtual table. Every view has a queryattached to it. (The query is a SELECT statementthat identifies the columns and rows of the table(s)the view uses.)

    12. Do a view contain data?

    Views do not contain or store data.

    13. Can a view based on another view?

    Yes.

    14. What are the advantages of views?

    - Provide an additional level of table security, byrestricting access to a predetermined set of rows andcolumns of a table.- Hide data complexity.- Simplify commands for the user.- Present the data in a different perspective fromthat of the base table.- Store complex queries.

    15. What is an Oracle sequence?

  • 8/14/2019 DBA Interview q

    2/32

    A sequence generates a serial list of unique numbersfor numerical columns of a database's tables.16. What is a synonym?

    A synonym is an alias for a table, view, sequence orprogram unit.

    17. What are the types of synonyms?

    There are two types of synonyms private andpublic.

    18. What is a private synonym?

    Only its owner can access a private synonym.

    19. What is a public synonym?

    Any database user can access a public synonym.

    20. What are synonyms used for?

    - Mask the real name and owner of an object.- Provide public access to an object- Provide location transparency for tables, views orprogram units of a remote database.- Simplify the SQL statements for database users.

    21. What is an Oracle index?

    An index is an optional structure associated with atable to have direct access to rows, which can becreated to increase the performance of dataretrieval. Index can be created on one or morecolumns of a table.

    22. How are the index updates?

    Indexes are automatically maintained and used byOracle. Changes to table data are automatically

    incorporated into all relevant indexes.

    23. What are clusters?

    Clusters are groups of one or more tables physicallystores together to share common columns and areoften used together.

    24. What is cluster key?

    The related columns of the tables in a cluster arecalled the cluster key.

    25. What is index cluster?

    A cluster with an index on the cluster key.

    26. What is hash cluster?

    A row is stored in a hash cluster based on the resultof applying a hash function to the row's cluster keyvalue. All rows with the same hash key value arestores together on disk.

    27. When can hash cluster used?

    Hash clusters are better choice when a table is oftenqueried with equality queries. For such queries thespecified cluster key value is hashed. The resulting

    hash key value points directly to the area on diskthat stores the specified rows.

    28. What is database link?

    A database link is a named object that describes a"path" from one database to another.

    29. What are the types of database links?

    Private database link, public database link &

    network database link.

    30. What is private database link?

    Private database link is created on behalf of aspecific user. A private database link can be usedonly when the owner of the link specifies a globalobject name in a SQL statement or in the definitionof the owner's views or procedures.

    31. What is public database link?

    Public database link is created for the special usergroup PUBLIC. A public database link can be usedwhen any user in the associated database specifies aglobal object name in a SQL statement or objectdefinition.

    32. What is network database link?

    Network database link is created and managed by anetwork domain service. A network database link

  • 8/14/2019 DBA Interview q

    3/32

    can be used when any user of any database in thenetwork specifies a global object name in a SQLstatement or object definition.

    33. What is data block?

    Oracle database's data is stored in data blocks. Onedata block corresponds to a specific number of

    bytes of physical database space on disk.

    34. How to define data block size?

    A data block size is specified for each Oracledatabase when the database is created. A databaseusers and allocated free database space in Oracledata blocks. Block size is specified in init.ora fileand cannot be changed latter.

    35. What is row chaining?

    In circumstances, all of the data for a row in a tablemay not be able to fit in the same data block. Whenthis occurs, the data for the row is stored in a chainof data block (one or more) reserved for thatsegment.

    36. What is an extent?

    An extent is a specific number of contiguous datablocks, obtained in a single allocation and used to

    store a specific type of information.

    37. What is a segment?

    A segment is a set of extents allocated for a certainlogical structure.

    38. What are the different types of segments?

    Data segment, index segment, rollback segment andtemporary segment.

    39. What is a data segment?

    Each non-clustered table has a data segment. All ofthe table's data is stored in the extents of its datasegment. Each cluster has a data segment. The dataof every table in the cluster is stored in the cluster'sdata segment.

    40. What is an index segment?

    Each index has an index segment that stores all ofits data.

    41. What is rollback segment?

    A database contains one or more rollback segmentsto temporarily store "undo" information.

    42. What are the uses of rollback segment?

    To generate read-consistent database informationduring database recovery and to rollbackuncommitted transactions by the users.

    43. What is a temporary segment?

    Temporary segments are created by Oracle when aSQL statement needs a temporary work area tocomplete execution. When the statement finishes

    execution, the temporary segment extents arereleased to the system for future use.

    44. What is a datafile?

    Every Oracle database has one or more physicaldata files. A database's data files contain all thedatabase data. The data of logical databasestructures such as tables and indexes is physicallystored in the data files allocated for a database.

    45. What are the characteristics of data files?

    A data file can be associated with only onedatabase. Once created a data file can't change size.One or more data files form a logical unit ofdatabase storage called a tablespace.

    46. What is a redo log?

    The set of redo log files for a database iscollectively known as the database redo log.

    47. What is the function of redo log?

    The primary function of the redo log is to record allchanges made to data.

    48. What is the use of redo log information?

    The information in a redo log file is used only torecover the database from a system or media failure

  • 8/14/2019 DBA Interview q

    4/32

    prevents database data from being written to adatabase's data files.

    49. What does a control file contains?

    - Database name- Names and locations of a database's files andredolog files.

    - Time stamp of database creation.

    50. What is the use of control file?

    When an instance of an Oracle database is started,its control file is used to identify the database andredo log files that must be opened for databaseoperation to proceed. It is also used in databaserecovery.

    Data Base Administration

    51. What is a database instance? Explain.

    A database instance (Server) is a set of memorystructure and background processes that access a set

    of database files. The processes can be shared by allof the users.The memory structure that is used to store the mostqueried data from database. This helps up toimprove database performance by decreasing theamount of I/O performed against data file.52. What is Parallel Server?

    Multiple instances accessing the same database

    (only in multi-CPU environments)

    53. What is a schema?

    The set of objects owned by user account is calledthe schema.

    54. What is an index? How it is implemented in

    Oracle database?

    An index is a database structure used by the serverto have direct access of a row in a table. An index isautomatically created when a unique of primary keyconstraint clause is specified in create tablecommand

    55. What are clusters?

    Group of tables physically stored together becausethey share common columns and are often usedtogether is called cluster.

    56. What is a cluster key?

    The related columns of the tables are called thecluster key. The cluster key is indexed using acluster index and its value is stored only once formultiple tables in the cluster.

    57. What are the basic element of baseconfiguration of an Oracle database?

    It consists ofone or more data files.one or more control files.two or more redo log files.

    The Database containsmultiple users/schemas

    one or more rollback segmentsone or more tablespaces

    Data dictionary tablesUser objects (table,indexes,views etc.,)

    The server that access the database consists ofSGA (Database buffer, Dictionary Cache

    Buffers, Redo log buffers, Shared SQL pool)SMON (System MONito)PMON (Process MONitor)LGWR (LoG Write)DBWR (Data Base Write)ARCH (ARCHiver)CKPT (Check Point)

    RECODispatcherUser Process with associated PGS

    58. What is a deadlock? Explain.

    Two processes waiting to update the rows of a table,which are locked by other processes then deadlockarises.

  • 8/14/2019 DBA Interview q

    5/32

    In a database environment this will often happenbecause of not issuing the proper row lockcommands. Poor design of front-end applicationmay cause this situation and the performance ofserver will reduce drastically.These locks will be released automatically when acommit/rollback operation performed or any one of

    this processes being killed externally.

    Memory Management

    59. What is SGA?

    The System Global Area in an Oracle database is

    the area in memory to facilitate the transfer ofinformation between users. It holds the mostrecently requested structural information betweenusers. It holds the most recently requested structuralinformation about the database. The structure isdatabase buffers, dictionary cache, redo log bufferand shared pool area.

    60. What is a shared pool?

    The data dictionary cache is stored in an area in

    SGA called the shared pool. This will allow sharingof parsed SQL statements among concurrent users.

    61. What is mean by Program Global Area

    (PGA)?

    It is area in memory that is used by a single Oracleuser process.

    62. What is a data segment?

    Data segment are the physical areas within adatabase block in which the data associated withtables and clusters are stored.

    63. What are the factors causing the reparsing of

    SQL statements in SGA?

    Due to insufficient shared pool size.

    Monitor the ratio of the reloads takes place whileexecuting SQL statements. If the ratio is greaterthan 1 then increase the SHARED_POOL_SIZE.

    Database Logical & Physical Architecture

    64. What is Database Buffers?

    Database buffers are cache in the SGA used to holdthe data blocks that are read from the data segmentsin the database such as tables, indexes and clustersDB_BLOCK_BUFFERS parameter in INIT.ORAdecides the size.

    65. What is dictionary cache?

    Dictionary cache is information about the databaseobjects stored in a data dictionary table.

    66. What is meant by recursive hints?

    Number of times processes repeatedly query thedictionary table is called recursive hints. It is due tothe data dictionary cache is too small. By increasingthe SHARED_POOL_SIZE parameter we canoptimize the size of data dictionary cache.

    67. What is redo log buffer?

    Changes made to the records are written to the on-line redo log files. So that they can be used in rollforward operations during database recoveries.Before writing them into the redo log files, they willfirst brought to redo log buffers in SGA and LGWRwill write into files frequently. LOG_BUFFERparameter will decide the size.

    68. How will you swap objects into a differenttable space for an existing database?

    - Export the user- Perform import using the command impsystem/manager file=export.dmpindexfile=newrite.sql. This will create alldefinitions into newfile.sql.- Drop necessary objects.- Run the script newfile.sql after altering thetablespaces.

  • 8/14/2019 DBA Interview q

    6/32

    - Import from the backup for the necessary objects.69. List the Optional Flexible Architecture (OFA)

    of Oracle database? How can we organize the

    tablespaces in Oracle database to have maximum

    performance?

    SYSTEM - Data dictionary tables.

    DATA - Standard operational tables.DATA2- Static tables used for standard operationsINDEXES - Indexes for Standard operationaltables.INDEXES1 - Indexes of static tables used forstandard operations.TOOLS - Tools table.TOOLS1 - Indexes for tools table.RBS - Standard Operations Rollback Segments,RBS1,RBS2 - Additional/Special Rollbacksegments.

    TEMP - Temporary purpose tablespaceTEMP_USER - Temporary tablespace for users.USERS - User tablespace.

    70. How will you force database to use particular

    rollback segment?

    SET TRANSACTION USE ROLLBACKSEGMENT rbs_name.

    71. What is meant by free extent?

    A free extent is a collection of continuous freeblocks in tablespace. When a segment is dropped itsextents are reallocated and are marked as free.72.Which parameter in Storage clause will

    reduce number of rows per block?

    PCTFREE parameter

    Row size also reduces no of rows per block.

    73. What is the significance of having storage

    clause?

    We can plan the storage for a table as how muchinitial extents are required, how much can beextended next, how much % should leave free formanaging row updating, etc.,

    74. How does Space allocation table place within

    a block?

    Each block contains entries as followsFixed block headerVariable block headerRow Header, row date (multiple rows may exists)PCTEREE (% of free space for row updating infuture)

    75. What is the role of PCTFREE parameter isstorage clause?

    This is used to reserve certain amount of space in ablock for expansion of rows.

    76. What is the OPTIMAL parameter?

    It is used to set the optimal length of a rollbacksegment.

    77. What is the functionality of SYSTEM tablespace?

    To manage the database level transactions such asmodifications of the data dictionary table thatrecord information about the free space usage.

    78. How will you create multiple rollback

    segments in a database?

    - Create a database, which implicitly creates a

    SYSTEM rollback segment in a SYSTEMtablespace.

    - Create a second rollback segment name R0 in theSYSTEM tablespace.- Make new rollback segment available (aftershutdown, modify init.ora file and start database)- Create other tablespaces (RBS) for rollbacksegments.

    - Deactivate rollback segment R0 and activate thenewly created rollback segments.

    79. How the space utilization takes place within

    rollback segments?

    It will try to fit the transaction in a cyclic fashion toall existing extents. Once it found an extent is in usethen it forced to acquire a new extent (number ofextents is based on the optimal size)

  • 8/14/2019 DBA Interview q

    7/32

    80. Why query fails sometimes?

    Rollback segment dynamically extent to handlelarger transactions entry loads.A single transaction may wipeout all available freespace in the rollback segment tablespace. This

    prevents other user using rollback segments.

    81. How will you monitor the space allocation?

    By querying DBA_SEGMENT table/view

    82. How will you monitor rollback segment

    status?

    Querying the DBA_ROLLBACK_SEGS view

    IN USE - Rollback Segment is on-line.AVAILABLE - Rollback Segmentavailable but not on-line.OFF-LINE - Rollback Segment off-lineINVALID - Rollback SegmentDropped. NEEDS RECOVERY - Contains data but needrecovery or corrupted.PARTLY AVAILABLE - Contains data from an

    unresolved transaction involving adistributed database.

    83. List the sequence of events when a large

    transaction that exceeds beyond its optimal value

    when an entry wraps and causes the rollback

    segment to expand into another extend.

    Transaction Begins.An entry is made in the RES header for new

    transactions entryTransaction acquires blocks in an extent of RBSThe entry attempts to wrap into second extent. Noneis available, so that the RBS must extent.The RBS checks to see if it is part of its OPTIMALsize.RBS chooses its oldest inactive segment.Oldest inactive segment is eliminated.

    RBS extentsThe data dictionary tables for space managementare updated.Transaction Completes.

    84. How can we plan storage for very large

    tables?

    Limit the number of extents in the tableSeparate table from its indexes.Allocate sufficient temporary storage.

    85. How will you estimate the space required by

    a non-clustered tables?

    Calculate the total header sizeCalculate the available data space per data blockCalculate the combined column lengths of theaverage row

    Calculate the total average row size.Calculate the average number rows that can fit in ablockCalculate the number of blocks and bytes requiredfor the table.After arriving the calculation, add 10 % additionalspace to calculate the initial extent size for aworking table.

    86. It is possible to use raw devices as data files

    and what are the advantages over file systemfiles?

    Yes.The advantages over file system files are that I/Owill be improved because Oracle is bye-passing thekernel which writing into disk. Disk corruption willbe very less.

    87. What is a Control file?

    Database's overall physical architecture ismaintained in a file called control file. It will beused to maintain internal consistency and guiderecovery operations. Multiple copies of control filesare advisable.88. How to implement the multiple control files

    for an existing database?

    Shutdown the database

  • 8/14/2019 DBA Interview q

    8/32

    Copy one of the existing controlfile to new locationEdit Config ora file by adding new control filenameRestart the database.

    89. What is redo log file mirroring? How can be

    achieved?

    Process of having a copy of redo log files is called

    mirroring.This can be achieved by creating group of log filestogether, so that LGWR will automatically writesthem to all the members of the current on-line redolog group. If any one group fails then databaseautomatically switch over to next group. It degradesperformance.

    90. What is advantage of having disk shadowing

    / mirroring?

    Shadow set of disks save as a backup in the event ofdisk failure. In most operating systems if any diskfailure occurs it automatically switchover to placeof failed disk.Improved performance because most OS supportvolume shadowing can direct file I/O request to usethe shadow set of files instead of the main set offiles. This reduces I/O load on the main set of disks.

    91. What is use of rollback segments in Oracledatabase?

    They allow the database to maintain readconsistency between multiple transactions.

    92. What is a rollback segment entry?

    It is the set of before image data blocks that containrows that are modified by a transaction.Each rollback segment entry must be completed

    within one rollback segment.A single rollback segment can have multiplerollback segment entries.93. What is hit ratio?

    It is a measure of well the data cache buffer ishandling requests for data.

    Hit Ratio = (Logical Reads - Physical Reads - HitsMisses)/ Logical Reads.

    94. When will be a segment released?

    When Segment is dropped.When Shrink (RBS only)When truncated (TRUNCATE used with drop

    storage option)

    95. What are disadvantages of having raw

    devices?

    We should depend on export/import utility forbackup/recovery (fully reliable)The tar command cannot be used for physical filebackup, instead we can use dd command, which isless flexible and has limited recoveries.

    96. List the factors that can affect the accuracy

    of the estimations?

    - The space used transaction entries and deletedrecords, does not become free immediately aftercompletion due to delayed cleanout.

    - Trailing nulls and length bytes are not stored.- Inserts of, updates to and deletes of rows as well

    as columns larger than a single data block, cancause fragmentation a chained row pieces.

    Database Security & Administration

    97. What is user Account in Oracle database?

    A user account is not a physical structure indatabase but it is having important relationship tothe objects in the database and will be havingcertain privileges.

    98. How will you enforce security using stored

    procedures?

    Don't grant user access directly to tables within theapplication.

  • 8/14/2019 DBA Interview q

    9/32

    Instead grant the ability to access the proceduresthat access the tables.When procedure executed it will execute theprivilege of procedures owner. Users cannot accesstables except via the procedure.

    99. What are the dictionary tables used to

    monitor a database space?

    DBA_FREE_SPACEDBA_SEGMENTSDBA_DATA_FILES.

    SQL*Plus Statements

    100. What are the types of SQL statement?

    Data Definition Language: CREATE, ALTER,DROP, TRUNCATE, REVOKE, NO AUDIT &COMMIT.Data Manipulation Language: INSERT, UPDATE,DELETE, LOCK TABLE, EXPLAIN PLAN &SELECT.Transactional Control: COMMIT & ROLLBACK

    Session Control: ALTERSESSION & SET ROLESystem Control: ALTER SYSTEM.101. What is a transaction?

    Transaction is logical unit between two commitsand commit and rollback.

    102. What is difference between TRUNCATE &

    DELETE?

    TRUNCATE commits after deleting entire table i.e.,cannot be rolled back.Database triggers do not fire on TRUNCATEDELETE allows the filtered deletion. Deletedrecords can be rolled back or committed.Database triggers fire on DELETE.

    103. What is a join? Explain the different types

    of joins?

    Join is a query, which retrieves related columns orrows from multiple tables.Self Join - Joining the table with itself.Equi Join - Joining two tables by equating twocommon columns.Non-Equi Join - Joining two tables by equating twocommon columns.

    Outer Join - Joining two tables in such a way thatquery can also retrieve rows that do not havecorresponding join value in the other table.

    104. What is the sub-query?

    Sub-query is a query whose return values are usedin filtering conditions of the main query.

    105. What is correlated sub-query?

    Correlated sub-query is a sub-query, which hasreference to the main query.

    106. Explain CONNECT BY PRIOR?

    Retrieves rows in hierarchical order eg.

    select empno, ename from emp where.

    107. Difference between SUBSTR and INSTR?

    INSTR (String1, String2 (n, (m)),INSTR returns the position of the m-th occurrenceof the string 2 in string1. The search begins fromnth position of string1.SUBSTR (String1 n, m)SUBSTR returns a character string of size m instring1, starting from n-th position of string1.

    108. Explain UNION, MINUS, UNION ALL and

    INTERSECT?

    INTERSECT - returns all distinct rows selected byboth queries.MINUS - returns all distinct rows selected bythe first query but not by the second.UNION - returns all distinct rows selected byeither queryUNION ALL - returns all rows selected by eitherquery, including all duplicates.

    109. What is ROWID?

  • 8/14/2019 DBA Interview q

    10/32

    ROWID is a pseudo column attached to each row ofa table. It is 18 characters long, blockno,rownumber are the components of ROWID.

    110. What is the fastest way of accessing a row in

    a table?

    Using ROWID.CONSTRAINTS

    111. What is an integrity constraint?

    Integrity constraint is a rule that restricts values to acolumn in a table.

    112. What is referential integrity constraint?

    Maintaining data integrity through a set of rules that

    restrict the values of one or more columns of thetables based on the values of primary key or uniquekey of the referenced table.

    113. What is the usage of SAVEPOINTS?

    SAVEPOINTS are used to subdivide a transactioninto smaller parts. It enables rolling back part of atransaction. Maximum of five save points areallowed.

    114. What is ON DELETE CASCADE?

    When ON DELETE CASCADE is specified Oraclemaintains referential integrity by automaticallyremoving dependent foreign key values if areferenced primary or unique key value is removed.

    115. What are the data types allowed in a table?

    CHAR, VARCHAR2, NUMBER, DATE, RAW,LONG and LONG RAW.

    116. What is difference between CHAR and

    VARCHAR2? What is the maximum SIZE

    allowed for each type?

    CHAR pads blank spaces to the maximum length.VARCHAR2 does not pad blank spaces.For CHAR the maximum length is 255 and 2000 forVARCHAR2.

    117. How many LONG columns are allowed in a

    table? Is it possible to use LONG columns in

    WHERE clause or ORDER BY?

    Only one LONG column is allowed. It is notpossible to use LONG column in WHERE orORDER BY clause.

    118. What are the pre-requisites to modifydatatype of a column and to add a column with

    NOT NULL constraint?

    - To modify the datatype of a column the columnmust be empty.- To add a column with NOT NULL constrain, thetable must be empty.

    119. Where the integrity constraints are stored in

    data dictionary?

    The integrity constraints are stored inUSER_CONSTRAINTS.

    120. How will you activate/deactivate integrity

    constraints?

    The integrity constraints can be enabled or disabledby ALTER TABLE ENABLE CONSTRAINT /DISABLE CONSTRAINT.

    121. If unique key constraint on DATE column iscreated, will it validate the rows that are inserted

    with SYSDATE?

    It won't, Because SYSDATE format contains timeattached with it.

    122. What is a database link?

    Database link is a named path through which aremote database can be accessed.

    123. How to access the current value and next

    value from a sequence? Is it possible to access

    the current value in a session before accessing

    next value?

    Sequence name CURRVAL, sequence nameNEXTVAL. It is not possible. Only if you accessnext value in the session, current value can beaccessed.

  • 8/14/2019 DBA Interview q

    11/32

    124. What is CYCLE/NO CYCLE in a

    Sequence?

    CYCLE specifies that the sequence continue togenerate values after reaching either maximum orminimum value. After pan-ascending sequencereaches its maximum value, it generates itsminimum value. After a descending sequence

    reaches its minimum, it generates its maximum.

    NO CYCLE specifies that the sequence cannotgenerate more values after reaching its maximum orminimum value.

    125. What are the advantages of VIEW?

    - To protect some of the columns of a table fromother users.- To hide complexity of a query.

    - To hide complexity of calculations.

    126. Can a view be updated/inserted/deleted? If

    Yes - under what conditions?

    A View can be updated/deleted/inserted if it hasonly one base table if the view is based on columnsfrom one or more tables then insert, update anddelete is not possible.

    127. If a view on a single base table is

    manipulated will the changes be reflected on thebase table?

    If changes are made to the tables and these tablesare the base tables of a view, then the changes willbe reference on the view.

    1. Explain the difference between a hot backupand a cold backup and the benefits associated witheach.

    A hot backup is basically taking a backup of thedatabase while it is still up and running and itmust be in archive log mode. A cold backup istaking a backup of the database while it is shutdown and does not require being in archive logmode. The benefit of taking a hot backup is thatthe database is still available for use while thebackup is occurring and you can recover thedatabase to any ball in time. The benefit of takinga cold backup is that it is typically easier to

    administer the backup and recovery process. Inaddition, since you are taking cold backups thedatabase does not require being in archive logmode and thus there will be a slight performancegain as the database is not cutting archive logs todisk.2. You have just had to restore from backup anddo not have any control files. How would you goabout bringing up this database?

    I would create a text based backup control file,stipulating where on disk all the data files whereand then issue the recover command with theusing backup control file clause.3. How do you switch from an init.ora file to aspfile?

    Issue the create spfile from pfile command.4. Explain the difference between a data block, anextent and a segment.

    A data block is the smallest unit of logical storagefor a database object. As objects grow they take

    chunks of additional storage that are composed ofcontiguous data blocks. These groupings ofcontiguous data blocks are called extents. All theextents that an object takes when grouped togetherare considered the segment of the database object.5. Give two examples of how you might determinethe structure of the table DEPT.

    Use the describe command or use thedbms_metadata.get_ddl package.6. Where would you look for errors from thedatabase engine?

    In the alert log.

    7. Compare and contrast TRUNCATE and DELETEfor a table.

    Both the truncate and delete command have thedesired outcome of getting rid of all the rows in atable. The difference between the two is that thetruncate command is a DDL operation and justmoves the high water mark and produces a nowrollback. The delete command, on the other hand,is a DML operation, which will produce a rollback

    and thus take longer to complete.8. Give the reasoning behind using an index.

    Faster access to data blocks in a table.9. Give the two types of tables involved inproducing a star schema and the type of data theyhold.

    Fact tables and dimension tables. A fact tablecontains measurements while dimension tableswill contain data that will help describe the facttables.10. What type of index should you use on a facttable?

  • 8/14/2019 DBA Interview q

    12/32

    A Bitmap index.11. Give two examples of referential integrityconstraints.

    A primary key and a foreign key.12. A table is classified as a parent table and youwant to drop and re-create it. How would you dothis without affecting the children tables?

    Disable the foreign key constraint to the parent,drop the table, re-create the table, enable theforeign key constraint.13. Explain the difference between ARCHIVELOGmode and NOARCHIVELOG mode and the benefitsand disadvantages to each.

    ARCHIVELOG mode is a mode that you can putthe database in for creating a backup of alltransactions that have occurred in the database sothat you can recover to any ball in time.NOARCHIVELOG mode is basically the absenceof ARCHIVELOG mode and has the disadvantageof not being able to recover to any ball in time.

    NOARCHIVELOG mode does have theadvantage of not having to write transactions to anarchive log and thus increases the performance ofthe database slightly.14. What command would you use to create abackup control file?

    Alter database backup control file to trace.15. Give the stages of instance startup to a usablestate where normal users may access it.

    STARTUP NOMOUNT - Instance startup

    STARTUP MOUNT - The database is mounted

    STARTUP OPEN - The database is opened16. What column differentiates the V$ views to theGV$ views and how?

    The INST_ID column which indicates theinstance in a RAC environment the informationcame from.17. How would you go about generating anEXPLAIN plan?

    Create a plan table with utlxplan.sql.

    Use the explain plan set statement_id = 'tst1' intoplan_table for a SQL statement

    Look at the explain plan with utlxplp.sql orutlxpls.sql18. How would you go about increasing the buffercache hit ratio?

    Use the buffer cache advisory over a givenworkload and then query the v$db_cache_advicetable. If a change was necessary then I would usethe alter system set db_cache_size command.19. Explain an ORA-01555

    You get this error when you get a snapshot too oldwithin rollback. It can usually be solved by

    increasing the undo retention or increasing thesize of rollbacks. You should also look at the logicinvolved in the application getting the errormessage.20. Explain the difference between $ORACLE_HOMEand $ORACLE_BASE.

    ORACLE_BASE is the root directory for oracle.ORACLE_HOME located beneath

    ORACLE_BASE is where the oracle productsreside.

    1. Describe the difference between a procedure,function and anonymous pl/sql block.

    Candidate should mention use of DECLAREstatement, a function must return a value while aprocedure doesn?t have to.

    2. What is a mutating table error and how can youget around it?

    This happens with triggers. It occurs because the

    trigger is trying to update a row it is currentlyusing. The usual fix involves either use of viewsor temporary tables so the database is selectingfrom one while updating the other.

    3. Describe the use of %ROWTYPE and %TYPE inPL/SQL

    Expected answer: %ROWTYPE allows you toassociate a variable with an entire table row. The%TYPE associates a variable with a singlecolumn type.

    4. 4What packages (if any) has Oracle providedfor use by developers?

    Expected answer: Oracle provides the DBMS_series of packages. There are many whichdevelopers should be aware of such asDBMS_SQL, DBMS_PIPE,DBMS_TRANSACTION, DBMS_LOCK,DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB,DBMS_UTILITY, DBMS_DDL, UTL_FILE. Ifthey can mention a few of these and describe howthey used them, even better. If they include the

    SQL routines provided by Oracle, great, but notreally what was asked.

    5. Describe the use of PL/SQL tables

    Expected answer: PL/SQL tables are scalar arraysthat can be referenced by a binary integer. Theycan be used to hold values for use in later queriesor calculations. In Oracle 8 they will be able to beof the %ROWTYPE designation, or RECORD.

    6. When is a declare statement needed ?

  • 8/14/2019 DBA Interview q

    13/32

    The DECLARE statement is used in PL/SQLanonymous blocks such as with stand alone, non-stored PL/SQL procedures. It must come first in aPL/SQL stand alone file if it is used.

    7. In what order should a open/fetch/loop set ofcommands in a PL/SQL block be implemented if youuse the %NOTFOUND cursor variable in the exitwhen statement? Why?

    Expected answer: OPEN then FETCH then LOOPfollowed by the exit when. If not specified in thisorder will result in the final return being donetwice because of the way the %NOTFOUND ishandled by PL/SQL.

    8. What are SQLCODE and SQLERRM and why arethey important for PL/SQL developers?

    Expected answer: SQLCODE returns the value ofthe error number for the last error encountered.The SQLERRM returns the actual error messagefor the last error encountered. They can be used inexception handling to report, or, store in an errorlog table, the error that occurred in the code.These are especially useful for the WHENOTHERS exception.

    9. How can you find within a PL/SQL block, if acursor is open?

    Expected answer: Use the %ISOPEN cursor statusvariable.

    10. How can you generate debugging output fromPL/SQL?

    Expected answer: Use the DBMS_OUTPUTpackage. Another possible method is to just usethe SHOW ERROR command, but this onlyshows errors. The DBMS_OUTPUT package canbe used to show intermediate results from loopsand the status of variables as the procedure isexecuted. The new package UTL_FILE can alsobe used.

    11. What are the types of triggers?

    Expected Answer: There are 12 types of triggers

    in PL/SQL that consist of combinations of theBEFORE, AFTER, ROW, TABLE, INSERT,UPDATE, DELETE and ALL key words:

    BEFORE ALL ROW INSERT

    AFTER ALL ROW INSERT

    BEFORE INSERT

    AFTER INSERT etc.1. Give one method for transferring a table fromone schema to another:

    There are several possible methods, export-import, CREATE TABLE... AS SELECT, orCOPY.

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

    The IMPORT IGNORE option tells import toignore "already exists" errors. If it is not specified

    the tables that already exist will be skipped. If it isspecified, the error is ignored and the tables datawill be inserted. The default value is N.

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

    Use the ALTER TABLESPACE ..... SHRINKcommand.

    4. If the DEFAULT and TEMPORARY tablespaceclauses are left out of a CREATE USER commandwhat happens? Is this bad or good? Why

    The user is assigned the SYSTEM tablespace as adefault and temporary tablespace. This is badbecause it causes user objects and temporarysegments to be placed into the SYSTEMtablespace resulting in fragmentation andimproper table placement (only data dictionaryobjects and the system rollback segment should bein SYSTEM).

    5. What are some of the Oracle providedpackages that DBAs should be aware of

    Oracle provides a number of packages in the formof 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. Theymay also try to answer with the UTL*.SQL orCAT*.SQL series of SQL procedures. These canbe viewed as extra credit but aren?t part of theanswer.

    6. What happens if the constraint name is left out

    of a constraint clause

    The Oracle system will use the default name ofSYS_Cxxxx where xxxx is a system generatednumber. This is bad since it makes tracking whichtable the constraint belongs to or what theconstraint does harder.

    7. What happens if a tablespace clause is left offof a primary key constraint clause

    This results in the index that is automaticallygenerated being placed in then users default

  • 8/14/2019 DBA Interview q

    14/32

    tablespace. Since this will usually be the sametablespace as the table is being created in, this cancause serious performance problems.

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

    You use the ALTER TABLE command for both.However, for the enable clause you must specify

    the USING INDEX and TABLESPACE clause forprimary keys.

    9. What happens if a primary key constraint isdisabled and then enabled without fully specifyingthe index clause

    The index is created in the user?s defaulttablespace and all sizing information is lost.Oracle doesn?t store this information as a part ofthe constraint definition, but only as part of theindex definition, when the constraint was disabledthe index was dropped and the information is

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

    If the UNIX system being used is capable ofasynchronous IO then only one is required, if thesystem is not capable of asynchronous IO then upto twice the number of disks used by Oraclenumber of DB writers should be specified by useof the db_writers initialization parameter.

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

    You can?t use hot backup without being inarchivelog mode. So no, you couldn?t recover.

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

    This is caused by large or long runningtransactions that have either wrapped onto theirown rollback space or have had anothertransaction write on part of their rollback space.This can be prevented or mitigated by breaking

    the transaction into a set of smaller transactions orincreasing the size of the rollback segments andtheir extents.

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

    By checking the status column of the DBA_,ALL_ or USER_OBJECTS views, dependingupon whether you own or only have permissionon the view or are using a DBA account.

    13. A user is getting an ORA-00942 error yet youknow you have granted them permission on thetable, what else should you check

    You need to check that the user has specified thefull name of the object (select empid fromscott.emp; instead of select empid from emp;) orhas a synonym that balls to the object (createsynonym emp for scott.emp;)

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

    You need to verify the developer has direct grantson all tables used in the view. You can?t create astored object with grants given through views.

    15. If you have an example table, what is the bestway to get sizing data for the production tableimplementation

    The best way is to analyze the table and then usethe data provided in the DBA_TABLES view toget the average row length and other pertinentdata for the calculation. The quick and dirty wayis to look at the number of blocks the table isactually using and ratio the number of rows in thetable to its number of blocks against the numberof expected rows.

    16. How can you find out how many users arecurrently logged into the database? How can youfind their operating system id

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

    17. A user selects from a sequence and gets backtwo values, his select is:

    SELECT pk_seq.nextval FROM dual;What is

    the problem

    Somehow two values have been inserted into the

    dual table. This table is a single row, singlecolumn table that should only have one value in it.

    18. How can you determine if an index needs to bedropped and rebuilt

    Run the ANALYZE INDEX command on theindex to validate its structure and then calculatethe ratio ofLF_BLK_LEN/LF_BLK_LEN+BR_BLK_LENand 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

  • 8/14/2019 DBA Interview q

    15/32

    BR_BLK_LEN/ LF_BLK_LEN+BR_BLK_LENis nearing 0.31. How can variables be passed to a SQL routine

    By use of the & symbol. For passing in variablesthe numbers 1-8 can be used (&1, &2,...,&8) topass the values after the command into theSQLPLUS session. To be prompted for a specificvariable, place the ampersanded variable in the

    code itself:"select * from dba_tables whereowner=&owner_name;" . Use of doubleampersands tells SQLPLUS to resubstitute thevalue for each subsequent use of the variable, asingle ampersand will cause a reprompt for thevalue unless an ACCEPT statement is used to getthe value from the user.

    2. You want to include a carriage return/linefeedin your output from a SQL script, how can you dothis

    The best method is to use the CHR() function(CHR(10) is a return/linefeed) and theconcatenation function "||". Another method,although it is hard to document and isn?t alwaysportable is to use the return/linefeed as a part of aquoted string.

    3. How can you call a PL/SQL procedure from SQL

    By use of the EXECUTE (short form EXEC)command.

    4. How do you execute a host operating systemcommand from within SQL

    By use of the exclamation ball "!" (in UNIX andsome other OS) or the HOST (HO) command.

    5. You want to use SQL to build SQL, what is thiscalled and give an example

    This is called dynamic SQL. An example wouldbe:

    set lines 90 pages 0 termout off feedback offverify off

    spool drop_all.sqlselect ?drop user ?||username||? cascade;? fromdba_users

    where username not in ("SYS?,?SYSTEM?);

    spool off

    Essentially you are looking to see that they knowto include a command (in this case DROPUSER...CASCADE;) and that you need toconcatenate using the ?||? the values selected fromthe database.

    6. What SQLPlus command is used to formatoutput from a select

    This is best done with the COLUMN command.

    7. You want to group the following set of selectreturns, what can you group on

    Max(sum_of_cost), min(sum_of_cost),count(item_no), item_no

    The only column that can be grouped on is the"item_no" column, the rest have aggregatefunctions associated with them.

    8. What special Oracle feature allows you tospecify how the cost based system treats a SQLstatement

    The COST based system allows the use of HINTsto control the optimizer path selection. If they cangive some example hints such as FIRST ROWS,ALL ROWS, USING INDEX, STAR, even better.

    9. You want to determine the location of identicalrows in a table before attempting to place a uniqueindex on the table, how can this be done

    Oracle tables always have one guaranteed uniquecolumn, the rowid column. If you use a min/maxfunction against your rowid and then selectagainst the proposed primary key you can squeezeout the rowids of the duplicate rows pretty quick.For example:

    select rowid from emp e

    where e.rowid > (select min(x.rowid)

    from emp x

    where x.emp_no = e.emp_no);

    In the situation where multiple columns make upthe proposed key, they must all be used in thewhere clause.

    10. What is a Cartesian product

    A Cartesian product is the result of an unrestrictedjoin of two or more tables. The result set of a threetable Cartesian product will have x * y * z number

    of rows where x, y, z correspond to the number ofrows in each table involved in the join.

    11. You are joining a local and a remote table, thenetwork manager complains about the trafficinvolved, how can you reduce the network traffic

    Push the processing of the remote data to theremote instance by using a view to pre-select theinformation for the join. This will result in onlythe data required for the join being sent across.

  • 8/14/2019 DBA Interview q

    16/32

    11. What is the default ordering of an ORDER BYclause in a SELECT statement

    Ascending

    12. What is tkprof and how is it used

    The tkprof tool is a tuning tool used to determinecpu and execution times for SQL statements. Youuse it by first setting timed_statistics to true in the

    initialization file and then turning on tracing foreither the entire database via the sql_traceparameter or for the session using the ALTERSESSION command. Once the trace file isgenerated you run the tkprof tool against the tracefile and then look at the output from the tkproftool. This can also be used to generate explainplan output.

    13. What is explain plan and how is it used

    The EXPLAIN PLAN command is a tool to tuneSQL statements. To use it you must have anexplain_table generated in the user you arerunning the explain plan for. This is created usingthe utlxplan.sql script. Once the explain plan tableexists you run the explain plan command givingas its argument the SQL statement to be explained.The explain_plan table is then queried to see theexecution plan of the statement. Explain plans canalso be run using tkprof.

    14. How do you set the number of lines on a pageof output? The width

    The SET command in SQLPLUS is used tocontrol the number of lines generated per pageand the width of those lines, for example SETPAGESIZE 60 LINESIZE 80 will generate reportsthat are 60 lines long with a line width of 80characters. The PAGESIZE and LINESIZEoptions can be shortened to PAGES and LINES.

    15. How do you prevent output from coming to thescreen

    The SET option TERMOUT controls output to thescreen. Setting TERMOUT OFF turns off screenoutput. This option can be shortened to TERM.

    16. How do you prevent Oracle from giving youinformational messages during and after a SQLstatement execution

    The SET options FEEDBACK and VERIFY canbe set to OFF.

    17. How do you generate file output from SQL

    By use of the SPOOL command

    1. A tablespace has a table with 30 extents in it.Is this bad? Why or why not.

    Multiple extents in and of themselves aren?t bad.However if you also have chained rows this canhurt performance.

    2. How do you set up tablespaces during anOracle installation?

    You should always attempt to use the Oracle

    Flexible Architecture standard or anotherpartitioning scheme to ensure proper separation ofSYSTEM, ROLLBACK, REDO LOG, DATA,TEMPORARY and INDEX segments.

    3. You see multiple fragments in the SYSTEMtablespace, what should you check first?

    Ensure that users don?t have the SYSTEMtablespace as their TEMPORARY or DEFAULTtablespace assignment by checking theDBA_USERS view.

    4. What are some indications that you need toincrease the SHARED_POOL_SIZE parameter?

    Poor data dictionary or library cache hit ratios,getting error ORA-04031. Another indication issteadily decreasing performance with all othertuning parameters the same.

    5. What is the general guideline for sizingdb_block_size and db_multi_block_read for anapplication that does many full table scans?

    Oracle almost always reads in 64k chunks. Thetwo should have a product equal to 64 or amultiple of 64.

    6. What is the fastest query method for a table

    Fetch by rowid

    7. Explain the use of TKPROF? What initializationparameter should be turned on to get full TKPROFoutput?

    The tkprof tool is a tuning tool used to determinecpu and execution times for SQL statements. Youuse it by first setting timed_statistics to true in theinitialization file and then turning on tracing foreither the entire database via the sql_traceparameter or for the session using the ALTERSESSION command. Once the trace file isgenerated you run the tkprof tool against the tracefile and then look at the output from the tkproftool. This can also be used to generate explainplan output.

    8. When looking at v$sysstat you see that sorts(disk) is high. Is this bad or good? If bad -How doyou correct it?

  • 8/14/2019 DBA Interview q

    17/32

    If you get excessive disk sorts this is bad. Thisindicates you need to tune the sort area parametersin the initialization files. The major sort areparameter is the SORT_AREA_SIZe parameter.

    9. When should you increase copy latches? Whatparameters control copy latches

    When you get excessive contention for the copy

    latches as shown by the "redo copy" latch hit ratio.You can increase copy latches via the initializationparameter LOG_SIMULTANEOUS_COPIES totwice the number of CPUs on your system.

    10. Where can you get a list of all initializationparameters for your instance? How about anindication if they are default settings or have beenchanged

    You can look in the init.ora file for an indicationof manually set parameters. For all parameters,their value and whether or not the current value isthe default value, look in the v$parameter view.

    11. Describe hit ratio as it pertains to the databasebuffers. What is the difference betweeninstantaneous and cumulative hit ratio and whichshould be used for tuning

    The hit ratio is a measure of how many times thedatabase was able to read a value from the buffersverses how many times it had to re-read a datavalue from the disks. A value greater than 80-90%is good, less could indicate problems. If yousimply take the ratio of existing parameters thiswill be a cumulative value since the databasestarted. If you do a comparison between pairs ofreadings based on some arbitrary time span, this isthe instantaneous ratio for that time span.Generally speaking an instantaneous reading givesmore valuable data since it will tell you what yourinstance is doing for the time it was generatedover.

    12. Discuss row chaining, how does it happen? Howcan you reduce it? How do you correct it

    Row chaining occurs when a VARCHAR2 value

    is updated and the length of the new value islonger than the old value and won?t fit in theremaining block space. This results in the rowchaining to another block. It can be reduced bysetting the storage parameters on the table toappropriate values. It can be corrected by exportand import of the effected table.

    13. When looking at the estat events report yousee that you are getting busy buffer waits. Is thisbad? How can you find what is causing it

    Buffer busy waits could indicate contention inredo, rollback or data blocks. You need to checkthe v$waitstat view to see what areas are causingthe problem. The value of the "count" column tellswhere the problem is, the "class" column tells youwith what. UNDO is rollback segments, DATA isdata base buffers.

    14. If you see contention for library caches howcan you fix it

    Increase the size of the shared pool.

    15. If you see statistics that deal with "undo" whatare they really talking about

    Rollback segments and associated structures.

    16. If a tablespace has a default pctincrease ofzero what will this cause (in relationship to thesmon process)

    The SMON process won?t automatically coalesceits free space fragments.

    17. If a tablespace shows excessive fragmentationwhat are some methods to defragment thetablespace? (7.1,7.2 and 7.3 only)

    In Oracle 7.0 to 7.2 The use of the 'alter sessionset events 'immediate trace name coalesce levelts#';? command is the easiest way to defragmentcontiguous free space fragmentation. The ts#parameter corresponds to the ts# value found inthe ts$ SYS table. In version 7.3 the ?altertablespace coalesce;? is best. If the free spaceisn?t contiguous then export, drop and import ofthe tablespace contents may be the only way toreclaim non-contiguous free space.

    18. How can you tell if a tablespace has excessivefragmentation

    If a select against the dba_free_space table showsthat the count of a tablespaces extents is greaterthan the count of its data files, then it isfragmented.

    19. You see the following on a status report:

    redo log space requests 23redo log space wait time 0

    Is this something to worry about? What if redo

    log space wait time is high? How can you fix

    this

    Since the wait time is zero, no. If the wait timewas high it might indicate a need for more orlarger redo logs.

    20. What can cause a high value for recursivecalls? How can this be fixed

  • 8/14/2019 DBA Interview q

    18/32

    A high value for recursive calls is cause byimproper cursor usage, excessive dynamic spacemanagement actions, and or excessive statementre-parses. You need to determine the cause andcorrect it By either relinking applications to holdcursors, use proper space management techniques(proper storage and sizing) or ensure repeatqueries are placed in packages for proper reuse.

    21. If you see a pin hit ratio of less than 0.8 in theestat library cache report is this a problem? If so,how do you fix it

    This indicate that the shared pool may be toosmall. Increase the shared pool size.

    22. If you see the value for reloads is high in theestat library cache report is this a matter forconcern

    Yes, you should strive for zero reloads if possible.If you see excessive reloads then increase the sizeof the shared pool.

    23. You look at the dba_rollback_segs view and seethat there is a large number of shrinks and they areof relatively small size, is this a problem? How canit be fixed if it is a problem

    A large number of small shrinks indicates a needto increase the size of the rollback segmentextents. Ideally you should have no shrinks or asmall number of large shrinks. To fix this justincrease the size of the extents and adjust optimalaccordingly.

    24. You look at the dba_rollback_segs view and seethat you have a large number of wraps is this aproblem

    A large number of wraps indicates that your extentsize for your rollback segments are probably toosmall. Increase the size of your extents to reducethe number of wraps. You can look at the averagetransaction size in the same view to get theinformation on transaction size.

    25. In a system with an average of 40 concurrentusers you get the following from a query on

    rollback extents:

    ROLLBACK CUR EXTENTS

    --------------------- --------------------------

    R01 11

    R02 8

    R03 12

    R04 9

    SYSTEM 4

    26. You have room for each to grow by 20 moreextents each. Is there a problem? Should you takeany action

    No there is not a problem. You have 40 extentsshowing and an average of 40 concurrent users.Since there is plenty of room to grow no action isneeded.

    27. You see multiple extents in the temporary

    tablespace. Is this a problem

    As long as they are all the same size this isn?t aproblem. In fact, it can even improve performancesince Oracle won?t have to create a new extentwhen a user needs one.

    28. Define OFA.

    OFA stands for Optimal Flexible Architecture. It isa method of placing directories and files in anOracle system so that you get the maximumflexibility for future tuning and file placement.

    29. How do you set up your tablespace oninstallation

    The answer here should show an understanding ofseparation of redo and rollback, data and indexesand isolation os SYSTEM tables from othertables. An example would be to specify that atleast 7 disks should be used for an Oracleinstallation so that you can place SYSTEMtablespace on one, redo logs on two (mirroredredo logs) the TEMPORARY tablespace onanother, ROLLBACK tablespace on another and

    still have two for DATA and INDEXES. Theyshould indicate how they will handle archive logsand exports as well. As long as they have a logicalplan for combining or further separation more orless disks can be specified.

    30. What should be done prior to installing Oracle(for the OS and the disks)

    adjust kernel parameters or OS tuning parametersin accordance with installation guide. Be sureenough contiguous disk space is available.

    31. You have installed Oracle and you are nowsetting up the actual instance. You have beenwaiting an hour for the initialization script to finish,what should you check first to determine if there isa problem

    Check to make sure that the archiver isn?t stuck.If archive logging is turned on during install alarge number of logs will be created. This can fillup your archive log destination causing Oracle tostop to wait for more space.

  • 8/14/2019 DBA Interview q

    19/32

    32. When configuring SQLNET on the server whatfiles must be set up

    INITIALIZATION file, TNSNAMES.ORA file,SQLNET.ORA file

    33. When configuring SQLNET on the client whatfiles need to be set up

    SQLNET.ORA, TNSNAMES.ORA

    34. What must be installed with ODBC on the clientin order for it to work with Oracle

    SQLNET and PROTOCOL (for example: TCPIPadapter) layers of the transport programs.

    35. You have just started a new instance with alarge SGA on a busy existing server. Performance isterrible, what should you check for

    The first thing to check with a large SGA is that itisn?t being swapped out.

    36. What OS user should be used for the first partof an Oracle installation (on UNIX)

    You must use root first.

    37. When should the default values for Oracleinitialization parameters be used as is

    Never

    38. How many control files should you have? Whereshould they be located

    At least 2 on separate disk spindles. Be sure theysay on separate disks, not just file systems.

    39. How many redo logs should you have and how

    should they be configured for maximumrecoverability

    You should have at least three groups of two redologs with the two logs each on a separate diskspindle (mirrored by Oracle). The redo logsshould not be on raw devices on UNIX if it can beavoided.

    40. You have a simple application with no "hot"tables (i.e. uniform IO and access requirements).How many disks should you have assumingstandard layout for SYSTEM, USER, TEMP andROLLBACK tablespaces

    At least 7, see disk configuration answer above.

    41. Describe third normal form

    Something like: In third normal form all attributesin an entity are related to the primary key and onlyto the primary key

    42. Is the following statement true or false:

    "All relational databases must be in third normalform"

    False. While 3NF is good for logical design mostdatabases, if they have more than just a few tables,will not perform well using full 3NF. Usuallysome entities will be denormalized in the logicalto physical transfer process.

    43. What is an ERD

    An ERD is an Entity-Relationship-Diagram. It is

    used to show the entities and relationships for adatabase logical model.

    44. Why are recursive relationships bad? How doyou resolve them

    A recursive relationship (one where a table relatesto itself) is bad when it is a hard relationship (i.e.neither side is a "may" both are "must") as this canresult in it not being possible to put in a top orperhaps a bottom of the table (for example in theEMPLOYEE table you couldn?t put in thePRESIDENT of the company because he has noboss, or the junior janitor because he has nosubordinates). These type of relationships areusually resolved by adding a small intersectionentity.

    45. What does a hard one-to-one relationship mean(one where the relationship on both ends is "must")

    Expected answer: This means the two entitiesshould probably be made into one entity.

    46. How should a many-to-many relationship behandled

    By adding an intersection entity table

    47. What is an artificial (derived) primary key?When should an artificial (or derived) primary keybe used

    A derived key comes from a sequence. Usually itis used when a concatenated key becomes toocumbersome to use as a foreign key.

    48. When should you consider denormalization

    Whenever performance analysis indicates it wouldbe beneficial to do so without compromising dataintegrity.

    49. How can you determine if an Oracle instance isup from the operating system level

    There are several base Oracle processes that willbe running on multi-user operating systems, thesewill be smon, pmon, dbwr and lgwr. Any answerthat has them using their operating system processshowing feature to check for these is acceptable.For example, on UNIX a ps -ef|grep dbwr willshow what instances are up.

  • 8/14/2019 DBA Interview q

    20/32

    50. Users from the PC clients are getting messagesindicating :

    ORA-06114: (Cnct err, can't get err txt. See

    Servr Msgs & Codes Manual)

    What could the problem be

    The instance name is probably incorrect in their

    connection string.

    51. Users from the PC clients are getting thefollowing error stack:

    ERROR: ORA-01034: ORACLE not available

    ORA-07318: smsget: open error when opening

    sgadef.dbf file.

    HP-UX Error: 2: No such file or directory

    What is the probable cause

    The Oracle instance is shutdown that they aretrying to access, restart the instance.

    52. How can you determine if the SQLNET processis running for SQLNET V1? How about V2

    For SQLNET V1 check for the existence of theorasrv process. You can use the command "tcpctlstatus" to get a full status of the V1 TCPIP server,other protocols have similar command formats.For SQLNET V2 check for the presence of theLISTENER process(s) or you can issue thecommand "lsnrctl status".

    53. What file will give you Oracle instance statusinformation? Where is it located

    The alert.ora log. It is located in the directoryspecified by the background_dump_destparameter in the v$parameter table.

    54. Users aren?t being allowed on the system. Thefollowing message is received:

    ORA-00257 archiver is stuck. Connect internal

    only, until freed

    What is the problem

    The archive destination is probably full, backupthe archive logs and remove them and the archiverwill re-start.

    55. Where would you look to find out if a redo logwas corrupted assuming you are using Oraclemirrored redo logs

    There is no message that comes to the SQLDBAor SRVMGR programs during startup in thissituation, you must check the alert.log file for thisinformation.

    56. You attempt to add a datafile and get:

    ORA-01118: cannot add anymore datafiles:

    limit of 40 exceeded

    What is the problem and how can you fix it

    When the database was created the db_filesparameter in the initialization file was set to 40.You can shutdown and reset this to a higher value,up to the value of MAX_DATAFILES as specifiedat database creation. If the MAX_DATAFILES isset to low, you will have to rebuild the control fileto increase it before proceeding.

    57. You look at your fragmentation report and seethat smon hasn?t coalesced any of you tablespaces,even though you know several have large chunks ofcontiguous free extents. What is the problem

    Check the dba_tablespaces view for the value ofpct_increase for the tablespaces. If pct_increase iszero, smon will not coalesce their free space.

    58. Your users get the following error:

    ORA-00055 maximum number of DML locks

    exceeded

    What is the problem and how do you fix it

    The number of DML Locks is set by theinitialization parameter DML_LOCKS. If thisvalue is set to low (which it is by default) you willget this error. Increase the value ofDML_LOCKS. If you are sure that this is just a

    temporary problem, you can have them wait andthen try again later and the error should clear.

    59. You get a call from you backup DBA while youare on vacation. He has corrupted all of the controlfiles while playing with the ALTER DATABASEBACKUP CONTROLFILE command. What do you do

    As long as all datafiles are safe and he wassuccessful with the BACKUP controlfilecommand you can do the following:

    CONNECT INTERNAL

    STARTUP MOUNT

    (Take any read-only tablespaces offline beforenext step ALTER DATABASE DATAFILE ....OFFLINE;)

    RECOVER DATABASE USING BACKUPCONTROLFILE

    ALTER DATABASE OPEN RESETLOGS;

    (bring read-only tablespaces back online)

    Shutdown and backup the system, then restart

  • 8/14/2019 DBA Interview q

    21/32

    If they have a recent output file from the ALTERDATABASE BACKUP CONTROL FILE TOTRACE; command, they can use that to recover aswell.

    If no backup of the control file is available thenthe following will be required:

    CONNECT INTERNAL

    STARTUP NOMOUNTCREATE CONTROL FILE .....;

    However, they will need to know all of thedatafiles, logfiles, and settings forMAXLOGFILES, MAXLOGMEMBERS,MAXLOGHISTORY, MAXDATAFILES for thedatabase to use the command.

    Oracle DBA Interview questions

    Differentiate between TRUNCATE and

    DELETE.

    The Delete command will log the data changes inthe log file where as the truncate will simplyremove the data without it. Hence Data removed byDelete command can be rolled back but not the dataremoved by TRUNCATE. Truncate is a DDLstatement whereas DELETE is a DML statement.

    What is the maximum buffer size that can be

    specified using the DBMS_OUTPUT.ENABLE

    function?

    1000000

    Can you use a commit statement within a

    database trigger?

    Yes, if you are using autonomous transactions in the

    Database triggers.

    What is an UTL_FILE? What are different

    procedures and functions associated with it?

    The UTL_FILE package lets your PL/SQLprograms read and write operating system (OS) textfiles. It provides a restricted version of standard OSstream file input/output (I/O).Subprogram -Description

    FOPEN function-Opens a file for input or outputwith the default line size.IS_OPEN function -Determines if a file handlerefers to an open file.FCLOSE procedure -Closes a file.FCLOSE_ALL procedure -Closes all open filehandles.GET_LINE procedure -Reads a line of text from an

    open file.PUT procedure-Writes a line to a file. This does notappend a line terminator.NEW_LINE procedure-Writes one or more OS-specific line terminators to a file.PUT_LINE procedure -Writes a line to a file. Thisappends an OS-specific line terminator.PUTF procedure -A PUT procedure withformatting.FFLUSH procedure-Physically writes all pendingoutput to a file.

    FOPEN function -Opens a file with the maximumline size specified.

    Difference between database triggers and form

    triggers?

    Database triggers are fired whenever any databaseaction like INSERT, UPATE, DELETE, LOGONLOGOFF etc occurs. Form triggers on the otherhand are fired in response to any event that takesplace while working with the forms, say like

    navigating from one field to another or one block toanother and so on.

    What is OCI. What are its uses?

    OCI is Oracle Call Interface. When applicationsdevelopers demand the most powerful interface tothe Oracle Database Server, they call upon theOracle Call Interface (OCI). OCI provides the mostcomprehensive access to all of the Oracle Databasefunctionality. The newest performance, scalability,

    and security features appear first in the OCI API. Ifyou write applications for the Oracle Database, youlikely already depend on OCI. Some types ofapplications that depend upon OCI are:

    PL/SQL applications executing SQL C++ applications using OCCI Java applications using the OCI-based JDBCdriver C applications using the ODBC driver VB applications using the OLEDB driver

  • 8/14/2019 DBA Interview q

    22/32

    Pro*C applications Distributed SQL

    What are ORACLE PRECOMPILERS?

    A precompiler is a tool that allows programmers toembed SQL statements in high-level sourceprograms like C, C++, COBOL, etc. The

    precompiler accepts the source program as input,translates the embedded SQL statements intostandard Oracle runtime library calls, and generatesa modified source program that one can compile,link, and execute in the usual way. Examples are thePro*C Precompiler for C, Pro*Cobol for Cobol,SQLJ for Java etc.

    What is syntax for dropping a procedure and a

    function? Are these operations possible?

    Drop Procedure/Function ; yes, if they arestandalone procedures or functions. If they are apart of a package then one have to remove it fromthe package definition and body and recompile thepackage.

    How to check if Apps 11i System is Autoconfig

    enabled ?

    Under $AD_TOP/bin check for file adcfginfo.shand if this exists use adcfginfo.sh

    contextfile= show=enabledIf this file is not there , look for any configurationfile under APPL_TOP if system is Autoconfigenabled then you will see entry like

    How to check if Oracle Apps 11i System is Rapid

    Clone enabled ?

    For syetem to be Rapid Clone enabled , it should beAutoconfig enabled (Check above How to confirmif Apps 11i is Autoconfig enabled). You should have

    Rapid Clone Patches applied , Rapid Clone is partof Rapid Install Product whose Family Pack Nameis ADX. By default all Apps 11i Instances 11.5.9and above are Autoconfig and Rapid Clone enabled.

    Whats is difference between two env files in

    .env and APPS.env

    under $APPL_TOP ?

    APPS.env is main environment filewhich inturn calls other environment files like

    .env under $APPL_TOP,.env under 806 ORACLE_HOMEand custom.env for any Customized environmentfiles.

    Whats main concurrent Manager types.

    # ICM - Internal Concurrent Manager which

    manages concurrent Managers# Standard Managers - Which Manage processesingof requests.# CRM - Conflict Resolution Managers , resolveconflicts in case of incompatibility.

    Whats US directory in $AD_TOP or under

    various product TOP's .

    US directory is defauly language directory in OracleApplications. If you have multiple languages

    Installed in your Applications then you will seeother languages directories besides US, thatdirectory will contain reports, fmx and other code inthat respective directory like FR for France, AR forarabic, simplifies chinese or spanish.

    Where is Concurrent Manager log file location.

    By default standard location is$APPLCSF/$APPLLOG , in some cases it can go to$FND_TOP/log as well.

    Where would i find .rf9 file, and what execatly it

    dose ?

    These files are used during restart of patch in caseof patch failure because of some reason.

    Where is appsweb.cfg or

    appsweb_$CONTEXT.cfg stored and why its

    used ?

    This file is defined by environment variableFORMS60_WEB_CONFIG_FILE This is usuallyin directory $OA_HTML/bin on forms tier.This file is used by any forms client session. Whena user try to access forms , f60webmx picks up thisfile and based on this configuration file creates aforms session to user/client.

    What is Multi Node System ?

  • 8/14/2019 DBA Interview q

    23/32

    Multi Node System in Oracle Applications 11imeans you have Applications 11i Component onmore than one system. Typical example is Database,Concurrent Manager on one machine and forms,Web Server on second machine is example of TwoNode System.

    Can a function take OUT parameters. If not

    why?

    yes, IN, OUT or IN OUT.

    Can the default values be assigned to actual

    parameters?

    Yes. In such case you dont need to specify anyvalue and the actual parameter will take the defaultvalue provided in the function definition.

    What is difference between a formal and anactual parameter?

    The formal parameters are the names that aredeclared in the parameter list of the header of amodule. The actual parameters are the values orexpressions placed in the parameter list of the actualcall to the module.

    What are different modes of parameters used in

    functions and procedures?

    There are three different modes of parameters: IN,OUT, and IN OUT.

    IN - The IN parameter allows you to pass values into the module, but will not pass anything out of themodule and back to the calling PL/SQL block. Inother words, for the purposes of the program, its INparameters function like constants. Just likeconstants, the value of the formal IN parametercannot be changed within the program. You cannot

    assign values to the IN parameter or in any otherway modify its value.

    IN is the default mode for parameters. INparameters can be given default values in theprogram header.

    OUT - An OUT parameter is the opposite of the INparameter. Use the OUT parameter to pass a valueback from the program to the calling PL/SQL block.An OUT parameter is like the return value for a

    function, but it appears in the parameter list and youcan, of course, have as many OUT parameters asyou like.

    Inside the program, an OUT parameter acts like avariable that has not been initialised. In fact, theOUT parameter has no value at all until the programterminates successfully (without raising an

    exception, that is). During the execution of theprogram, any assignments to an OUT parameter areactually made to an internal copy of the OUTparameter. When the program terminatessuccessfully and returns control to the calling block,the value in that local copy is then transferred to theactual OUT parameter. That value is then availablein the calling PL/SQL block.

    IN OUT - With an IN OUT parameter, you can passvalues into the program and return a value back to

    the calling program (either the original, unchangedvalue or a new value set within the program). TheIN OUT parameter shares two restrictions with theOUT parameter:

    An IN OUT parameter cannot have a default value.

    An IN OUT actual parameter or argument must be avariable. It cannot be a constant, literal, orexpression, since these formats do not provide areceptacle in which PL/SQL can place the outgoing

    value.

    Difference between procedure and function.

    A function always returns a value, while aprocedure does not. When you call a function youmust always assign its value to a variable.

    Can cursor variables be stored in PL/SQL tables.

    If yes how. If not why?

    Yes. Create a cursor type - REF CURSOR anddeclare a cursor variable of that type.DECLARE/* Create the cursor type. */TYPE company_curtype IS REF CURSORRETURN company%ROWTYPE;

    /* Declare a cursor variable of that type. */company_curvar company_curtype;

    /* Declare a record with same structure as cursor

  • 8/14/2019 DBA Interview q

    24/32

    variable. */company_rec company%ROWTYPE;BEGIN/* Open the cursor variable, associating with it aSQL statement. */OPEN company_curvar FOR SELECT * FROMcompany;

    /* Fetch from the cursor variable. */FETCH company_curvar INTO company_rec;

    /* Close the cursor object associated with variable.*/CLOSE company_curvar;END;

    Can you clone from multi node system to single

    node system and vice versa ?

    Yes , this is now supported via Rapid Clone, Checkif your system has all prereq. patches for RapidClone and you are on latest rapid clone patch.

    Does rapid clone takes care of Updating Global

    oraInventory or you have to register manually in

    Global OraInventory after clone ?

    Rapid Clone will automatically Update GlobaloraInventory during configuration phase. You don'thave to do any thing manually for Global

    oraInventory.

    What is .dbc file , where its stored , whats use of

    .dbc file ?

    dbc as name says is database connect descriptor filewhich stores database connection information usedby application tier to connect to database. This fileis in directory $FND_TOP/secure also called asFND_SECURE

    Whats things you do to reduce patch timing ?

    You can take advantage of following -# Merging patches via admrgpch# Use various adpatch options like nocompiledb ornocompilejsp# Use defaults file# Staged APPL_TOP during upgrades# Increase batch size (Might result into negative )

    How you put Applications 11i in Maintenance

    mode ?

    Use adadmin to change Maintenance mode isOracle Apps. With AD.I you need to enablemaintenance mode in order to apply apps patch viaadpatch utility. If you don't want to put apps inmaintenance mode you can use adpatch

    options=hotpatch feature.

    Can you apply patch without putting

    Applications 11i in Maintenance mode ?

    Yes, use options=hotpatch as mentioned above withadpatch.

    What are various options available with

    adpatch ?

    Various options available with adpatch dependingon your AD version are autoconfig,check_exclusive, checkfile, compiledb, compilejsp,copyportion, databaseprtion, generateportion,hotpatch, integrity, maintainmrc, parallel, prereq,validate

    ADIDENT UTILITY is used for what ?

    ADIDENT UTILITY in oracle apps is used to findversion of any file . AD Identification. for ex.

    "adident Header

    How do you pass cursor variables in PL/SQL?

    Pass a cursor variable as an argument to a procedureor function. You can, in essence, share the results ofa cursor by passing the reference to that result set.

    How do you open and close a cursor variable.

    Why it is required?

    Using OPEN cursor_name and CLOSEcursor_name commands. The cursor must beopened before using it in order to fetch the result setof the query it is associated with. The cursor needsto be closed so as to release resources earlier thanend of transaction, or to free up the cursor variableto be opened again.

    What should be the return type for a cursor

    variable. Can we use a scalar data type as return

    type?

  • 8/14/2019 DBA Interview q

    25/32

    The return type of a cursor variable can be%ROWTYPE or record_name%TYPE or a recordtype or a ref cursor type. A scalar data type likenumber or varchar cant be used but a record typemay evaluate to a scalar value.

    What is use of a cursor variable? How it is

    defined?

    Cursor variable is used to mark a work area whereOracle stores a multi-row query output forprocessing. It is like a pointer in C or Pascal.Because it is a TYPE, it is defined as TYPE REFCURSOR RETURN ;

    What WHERE CURRENT OF clause does in a

    cursor?

    The Where Current Of statement allows you to

    update or delete the record that was last fetched bythe cursor.

    Difference between NO DATA FOUND and

    %NOTFOUND

    NO DATA FOUND is an exception which is raisedwhen either an implicit query returns no data, oryou attempt to reference a row in the PL/SQL tablewhich is not yet defined. SQL%NOTFOUND, is aBOOLEAN attribute indicating whether the recent

    SQL statement does not match to any row.

    What is a cursor for loop?

    A cursor FOR loop is a loop that is associated with(actually defined by) an explicit cursor or aSELECT statement incorporated directly within theloop boundary. Use the cursor FOR loop whenever(and only if) you need to fetch and process each andevery record from a cursor, which is a highpercentage of the time with cursors.

    What is iAS Patch ?

    iAS Patch are patches released to fix bugsassociated with IAS_ORACLE_HOME (WebServer Component) Usually these are shiiped asShell scripts and you apply iAS patches byexecuting Shell script. Note that by defaultORACLE_HOME is pointing to 8.0.6ORACLE_HOME and if you are applying iASpatch export ORACLE_HOME to iAS . You can do

    same by executing environment file under$IAS_ORACLE_HOME

    If we run autoconfig which files will get

    effected ?

    In order to check list of files changes duringAutoconfig , you can run adchkcfg utility which

    will generate HTML report. This report will list allfiles and profile options going to change when yourun AutoConfig.

    What is difference between .xml file and

    AutoConfig ?

    Autoconfig is Utility to configure your OracleApplication environment. .xml file is repository ofall configuration from which AutoConfig picksconfiguration and polulates related files.

    What is .lgi files ?

    lgi files are created with patching along with .logfiles . .lgi files are informative log files containinginformation related to patch. You can check .lgi filesto see what activities patch has done. Usuallyinformative logs.

    How will you skip worker during patch ?

    If in your adctrl there are six option shown thenseventh is hidden option.(If there are seven optionsvisible then 8th option is to Skip worker dependingon ad version).

    Which two tables created at start of Apps Patch

    and drops at end of Patch ?

    FND_INSTALLED_PROCESS andAD_DEFFERED_JOBS are the tables that getupdated while applying a patch mainly d or unified

    driver.

    How to compile an Oracle Reports file ?

    Utility adrepgen is used to compile Reports. Synatxis given below adrepgen userid=apps\source = $PRODUCT_TOP\srw\filename.rdfdest=$PRODUCT_TOP\srw\filename.rdfstype=rdffile dtype=rdffile logfile=x.logoverwrite=yes batch=yes dunit=character

  • 8/14/2019 DBA Interview q

    26/32

    What is difference between AD_BUGS and

    AD_APPLID_PATCHES ?

    AD_BUGS holds information about the variousOracle Applications bugs whose fixes have beenapplied (ie. patched) in the Oracle Applicationsinstallation.

    AD_APPLIED_PATCHES holds information aboutthe "distinct" Oracle Applications patches that havebeen applied. If 2 patches happen to have the samename but are different in content (eg. "merged"patches), then they are considered distinct and thistable will therefore hold 2 records.

    What is ADSPLICE UTILITY ?

    ADSPLICE UTILITY in oracle apps is utility toadd a new product.

    How can you licence a product after

    installation ?

    You can use ad utility adlicmgr to licence product inOracle Apps.

    What is MRC ? What you do as Apps DBA for

    MRC ?

    MRC also called as Multiple Reporting Currency in

    oracle Apps. Default you have currency in USDollars but if your organization operating books arein other currency then you as apps dba need toenable MRC in Apps. How to enable MRC comingsoon..

    What is access_log in apache , what entries are

    recored in access_log ? Where is default location

    of thsi file ?

    access_log in Oracle Application Server records all

    users accessing oracle applications 11i. This filelocation is defined in httpd.conf with defaultlocation at$IAS_ORACLE_HOME/Apache/Apache/logs.Entries in this file is defined by directiveLogFormat in httpd.conf Typical entry in access_logis198.0.0.1 - - [10/Sep/2006:18:37:17 +0100] "POST/OA_HTML/OA.jsp?.... HTTP/1.1" 200 28035where 200 is HTTP status code and last digits28035 is bytes dowloaded as this page(Size of page)

    Where is Jserv configuration files stored ?

    Jserv configuration files are stored in$IAS_ORACLE_HOME/Apache/Jserv/etc

    Where is applications start/stop scripts stored ?

    applications start/stop scripts are in directory

    $COMMON_TOP/admin/scripts/$CONTEXT_NAME

    What are main configuration files in Web Server

    (Apache) ?

    Main configuration files in Oracle Apps Web Serverare# httpd.conf, apps.conf, oracle_apache.conf,httpd_pls.conf# jserv.conf, ssp_init.txt, jserv.properties,

    zone.properties# plsql.conf, wdbsvr.app, plsql.conf

    Can C driver in apps patch create Invalid Object

    in database ?

    No , C driver only copies files in File System.Database Object might be invalidated during Ddriver when these objects arecreated/dropped/modified.

    What is dev60cgi and f60cgi ?

    CGI stands for Common Gateway Interface andthese are Script Alias in Oracle Apps used to accessforms server . Usually Form Server access directlyvia http://hostname:port/dev60cgi/f60cgi

    Why does a worker fails in Oracle Apps Patch

    and few scenarios in which it failed for you ?

    Apps Patch worker can fail in case it doesn't find

    expected data, object, files or any thing whichdriver is trying to update/edit/modify. Possiblesymptoms may be underlying tables/objects areinvalid, a prereq patch is missing , login informationis incorrect, inconsistency in seeded data...

    What is difference between mod_osso and

    mod_ose in Oracle HTTP Server ?

  • 8/14/2019 DBA Interview q

    27/32

    mod_osso is Oracle Single Sign-On Module whereas mod_ose is module for Oracle Servlet Engine.mod_osso is module in Oracle's HTTP Serverserves as Conduit between Oracle Apache Serverand Singl Sign-On Server where as mod_ose is alsoanother module in Oracle's HTTP Se