Oracle DBA Interview Questions – Part 2
Below are the few of Oracle database interview questions, Watch this space for more questions & answers.
Please provide your comments, Feedback welcome.
1) List components of an Oracle instance?
An Oracle instance is comprised of memory structures and background processes.
The Systems Global Area (SGA) and shared pool are memory structures. The process monitor is a background process (DBWn, LGWR, ARCn, and PMON). The Oracle database consists of the physical components such as data files; redo log files, and the control file.
2)Which background process and associated database component guarantees that committed data is saved even when the changes have not been recorded in the data files?
LGWR (log writer) and online redo log files. The log writer process writes data to the buffers when a transaction is committed. LGWR writes to the redo log files in the order of events (sequential order) in case of a failure.
3)What is the maximum number of database writer processes allowed in an Oracle instance?
The maximum is ten. Every Oracle instance begins with only one database writer process, DBW0. Additional writer processes may be started by setting the initialization parameter DB_WRITER_PROCESSES (DBW1 through DBW9).
4)Which background process is not started by default when you start up the Oracle instance?
ARCn. The ARCn process is available only when the archive log is running (LOG_ARCHIVE_START initialization parameter set to true). DBWn, LGWR, CKPT, SMON, and PMON are the default processes associated with all instances (start by default).
5)Describe a parallel server configuration?
In a parallel server configuration multiple instances known as nodes can mount one database. In other words, the parallel server option lets you mount the same database for multiple instances. In a multithreaded configuration, one shared server process takes requests from multiple user processes.
6)Choose the right hierarchy, from largest to smallest, from this list of logical database structures?
Database, tablespace, segment, extent, data blocks.
7)Which background process is responsible for writing the dirty buffers to the database files?
The purpose if the DBWn is to write the contents of the dirty buffer to the database file.
This occurs under two circumstances – when a checkpoint occurs or when the server process searches the buffer cache for a set threshold.
8)Which component in the SGA has the dictionary cache?
The dictionary cache is part of the shared pool. The shared pool also contains the library cache and control structures.
10)When a server process is terminated abnormally, which background process is responsible for releasing the locks held by the user?
The process monitor (PMON) releases the locks on tables and rows held by the user during failed processes and it reclaims all resources held by the user. PMON cleans up after failed user processes.
11)What is a dirty buffer?
A dirty buffer refers to blocks in the database buffer cache that are changed, but are not yet written to the disk.
12)If you are updating one row in a table using the ROWID in the WHERE clause (assume that the row is not already in the buffer cache), what will be the minimum amount of information read to the database buffer cache?
The block is the minimum amount of information read/copied to the database buffer cache.
13)What happens next when a server process is not able to find enough free buffers to copy the blocks from disk?
To reduce I/O contention, the DBWn process does not write the changed buffers immediately to the disk. They are written only when the dirty buffers reach a threshold or when there are not enough free buffers available or when the checkpoint occurs.
14)Which memory structures are shared? Name two.
The library cache contains the shared SQL areas, private SQL areas, PL/SQL procedures, and packages, and control structures. The large pool is an optional area in the SGA.
15)When a SELECT statement is issued, which stage checks the user’s privileges?
Parse checks the user’s privileges, syntax correctness, and the column names against the dictionary. Parse also determines the optional execution plan and finds a shared SQL area for the statement.
16)Which memory structure records all database changes made to the instance?
The redo log files holds information on the changes made to the database data. Changes are made to the database through insert, update, delete, create, alter, or drop commands.
17)What is the minimum number of redo log files required in a database?
The minimum number of redo log files required in a database is two because the LGWR (log writer) process writes to the redo log files in a circular manner.
18)When is the system change numbers assigned?
System changed numbers (SCN) are assigned when a transaction is committed. The SCN is a unique number acting as an internal timestamp, used for recovery and read-consistent queries. In other words, the SCN number is assigned to the rollback statement to mark it as a transaction committed.
19)Name the parts of the database buffer pool?
The database buffer pool consists of the keep buffer pool; recycle buffer pool, and the default buffer pool.
The keep buffer pool retains the data block in memory.
The recycle buffer pool removes the buffers from memory when it’s not needed.
The default buffer pool contains the blocks that are not assigned to the other pools.
20)List all the valid database start-up option?
STARTUP MOUNT, STARTUP NOMOUNT, and STARTUP FORCE.
STARTUP NOMOUNT is used for creating a new database or for creating new control files. STARTUP MOUNT is used for performing specific maintenance operations such as renaming data files, enabling or disabling archive logging, renaming, adding or dropping redo log files, or for performing a full database recovery. Finally, STARTUP FORCE is used to start a database forcefully, (if you have problems starting up an instance.) STARTUP FORCE shuts down the instance if it is already running and then restarts it.
21)Which two values from the V$SESSION view are used to terminate a user session?
The session identifier (SID) and the serial number (SERIAL #) uniquely identify each session and both are needed to kill a session. Ex. SQL > ALTER SYSTEM KILL SESSION ‘SID’,’ SERIAL #’;
22)To use operating system authentication to connect the database as an administrator, what should the value of the parameter REMOTE_LOGIN_PASSWORDFILE be set to?
The value of the REMOTE_LOGIN_PASSWORDFILE parameter should be set to NONE to use OS authentication. To use password file authentication, the value should be either EXCLUSIVE or SHARED.
23)What information is available in the alert log files?
The alert log store information about block corruption errors, internal errors, and the non-default initialization parameters used at instance start-up. The alert log also records information about database start-up, shutdown, archiving, recovery, tablespace modifications, rollback segment modifications, and the data file modifications.
24)Which parameter value is use to set the directory path where the alert log file is written?
The alert log file is written in the BACKGROUND_DUMP_DEST directory. This directory also records the trace files generated by the background processes. The USER_DUMP_DEST directory has the trace files generated by user sessions. The CORE_DUMP_DEST directory is used primarily on UNIX platforms to save the core dump files. ALERT_DUMP_DEST is not a valid parameter.
25)Which SHUTDOWN option requires instance recovery when the database is started the next time?
SHUTDOWN ABORT requires instance recovery when the database is started the next time. Oracle will also roll back uncommitted transactions during start-up. This option shuts down the instance without dismounting the database.
26)Which SHUTDOWN option will wait for the users to complete their uncommitted transactions?
When SHUTDOWN TRANSACTIONAL is issued, Oracle waits for the users to either commit or roll back their pending transactions. Once all users have either rolled back or committed their transactions, the database is shut down. When using SHUTDOWN IMMEDIATE, the user sessions are disconnected and the changes are rolled back. SHUTDOWN NORMAL waits for the user sessions to disconnect from the database.
26)How do you make a database read-only?
To put a database into read-only mode, you can mount the database and open the database in read-only mode. This can be accomplished in one step by using STARTUP OPEN READ ONLY.
27)Which role is created by default to administer databases?
The DBA role is created when you create the database and is assigned to the SYS and SYSTEM users.
28)Which privilege do you need to connect to the database, if the database is started up by using STARTUP RESTRICT?
RESTRICTED SESSION privilege is required to access a database that is in restrict mode. You can start up the database in restrict mode by using STARTUP RESTRICT, or change the database to restricted mode by using ALTER SYSTEM ENABLE RESTRICTED SESSION.
29)At which stage of the database start-up is the control file opened?
The control file is opened when the instance mounts the database. The data files and redo log files are opened after the database is opened. When the instance is started, the background processes are started.
30)Which command will “bounce” the database-that is, shut down the database and start up the database in a single command?
STARTUP FORCE will terminate the current instance and start up the database. It is equivalent to issuing SHUTDOWN ABORT and STARTUP OPEN.
31)When performing the command SHUTDOWN TRANASACTIONAL, what actions oracle performs internally?
SHUTDOWN TRANSACTIONAL waits for all user transactions to complete. Once no transactions are pending, it disconnects all sessions and proceeds with the normal shutting down process. The normal shut down process performs a checkpoint, closes data files and redo log files, dismounts the database, and shuts down the instance.
32)When you issue the command ALTER SYSTEM ENABLE RESTRICTED SESSION, what happens to the users who are connected to the database?
If you enable the RESTRICTED SESSION when users are connected, nothing happens to the already connected sessions. Future sessions are started only if the user has the RESTRICTED SESSION privilege.
33)Which view has information about users who are granted SYSDBA or SYSOPER privilege?
A dynamic view of V$PWFILE_USERS has the username and a value of TRUE in column SYSDBA if the SYSDBA privilege is granted, or a value of TRUE in column SYSOPER if the SYSOPER privilege is granted.
34)What is the recommended configuration for control files?
Oracle allows multiplexing of control files. If you have two control files on two disks, one disk failure will not damage both control files.
35)How many control files are required to create a database?
You do not need any control files to create a database; the control files are created when you create a database, based on the filenames specified in the CONTROL_FILES parameter of the parameter file
36)Which environment variable or registry entry variable is used to represent the instance name?
The Oracle_SID environment variable is used to represent the instance name. When you connect to the database without specifying a connect string, Oracle connects you to this instance.
37)Which initialization parameter cannot be changed after creating the database?
The block size of the database cannot be changed after database creation. The database name can be changed after re-creating the control file with a new name, and the CONTROL_FILES parameter can be changed if the files are copied to a new location.
38)Which script creates the data dictionary views?
The catalog.sql script creates the data dictionary views. The base tables for these views are created by the script sql.bsq, which is executed when you issue the CREATE DATABASE command.
39)How do you correct a procedure that has become invalid when one of the tables it is referring to was altered to drop a constraint?
The invalid procedure, trigger, package, or view can be recompiled by using the ALTER COMPILE command.
40)How many data files can be specified in the DATAFILE clause when creating a database?
You can specify more than one data file; the files will be used for the SYSTEM tablespace. The files specified cannot exceed the number of data files specified in the MAXDATAFILES clause.
41)Who owns the data dictionary?
The SYS user owns the data dictionary. The SYS and SYSTEM users are created when the database is created.
What is the default password for the SYS user?
The default password for the SYS user is CHANGE_ON_INSTALL, and for SYSTEM it is MANAGER. You should change these passwords once the database is created.
43)What is the prefix for dynamic performance views?
The dynamic performance views have a prefix of V$. The actual views have the prefix of V_$, and the synonyms have a V$ prefix. The views are called dynamic performance views because they are continuously updated while the database is open and in use, and their contents related primarily to performance.
44)What piece of information is not available in the control file?
The instance name is not available. The control files include the following:
Database name the control file belongs to, database creation timestamp, data files, redo log files, tablespace names, current log sequence number, most recent checkpoint information, and Recovery Manager’s backup information.
45)When you create a control file, the database has to be:
46)Which data dictionary view provides the names of the control files?
V$CONTROLFILES shows the names of the control files.
47)The initialization parameter file has LOG_CHECKPOINT_INTERVAL = 60; what does this mean?
LOG_CHECKPOINT_INTERVAL ensures that no more than a specified number of redo log blocks (OS blocks) need to be read during instance recovery. LOG_CHECKPOINT_TIMEOUT ensures that no more than a specified number of seconds worth of redo log blocks need to be read during instance recovery.
48) What will happen if ARCn could not write to a mandatory archive destination?
Oracle will write a message to the alert file and all database operations will be stopped. Database operation resumes automatically after successfully writing the archived log file. If the archive destination becomes full you can make room for archives either by deleting the archive log files after copying them to a different location, or by changing the parameter to point to a different archive location.
49What are the valid status codes in the V$LOGFILE view?
Valid status codes V$LOGFILE views include STALE, INVALID, DELETED, or the status can be blank. STALE means the file contents are incomplete; INVALID means the file is not accessible; DELETED means the file is no longer used; and blank status means the file is in use.
50)If you have two redo log groups with four members each, how many disks does Oracle recommend to keep the redo log files?
You should keep a minimum of two redo log groups, with a recommended two members in each group. Oracle recommends that you keep each member of a redo log group on a different disk. The maximum number of redo log groups is determined by the MAXLOGFILES database parameter. The MAXLOGMEMBERS database parameter specifies the maximum number of members per group.
51)When does the SMON process automatically coalesce the tablespaces?
When the PCTINCREASE default storage of the tablespace is set to 0. You can manually coalesce a tablespace by using ALTER TABLESPACE COALESCE.
52)How would you drop a tablespace if the tablespace were not empty?
Use DROP TABLESPACE INCLUDING CONTENTS.
The INCLUDING CONTENTS clause is used to drop a tablespace that is not empty. Oracle does not remove the data files that belong to the tablespace; you need to do it manually using an OS command. Oracle updates only the control file.
53)Which command is used to enable the auto-extensible feature for a file, if the file is already part of a tablespace?
To enable auto=extension, use ALTER DATABASE DATAFILE AUTOEXTEND ON NEXT MAXSIZE .
54)How would you determine how much sort space is used by a user session?
The V$SORT_USAGE shows the active sorts in the database; it shows the space used, username, SQL address, and hash value. It also provides the number of EXTENTS and number of BLOCKS used by each sort session, and the username. The V$SORT can be joined with V$SESSION or V$SQL to obtain more information on the session or the SQL statement causing the sort.
55)When a table is updated, where is the before image information (which can be used for undoing the changes) stored?
Rollback segment. Before any DML operation, the undo information (before-image of data) is stored in the rollback segments. This information is used to undo the changes and to provide a read-consistent view of the data.
56)Which parameter specifies the number of transaction slots in a data block?
INITRANS specifies the number of transaction slots in a data block. A transaction slot is used by Oracle when the data block is being modified. INITRANS reserves space for the transactions in the block.
57)Which data dictionary view would you query to see the free extents in a tablespace?
DBA_FREE_SPACE shows the free extents in a tablespace. DBA_EXTENTS shows all the extents that are allocated to a segment.
58)Which portion of the data block stores information about the table having rows in this block?
Row Data. The table directory portion of the block stores information about the table having rows in the block. The row directory stores information such as row address and size of the actual rows stored in the row data area.