Friday, October 24, 2008

100 Usefull Oracle Questions and Answers.

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.

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.

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).

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).

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.

Choose the right hierarchy, from largest to smallest, from this list of logical database structures?
Database, tablespace, segment, extent, data blocks.

Which component of the SGA contains the parsed SQL code?
The library cache contains the parsed SQL code. During parsing, Oracle allocates a shared SQL area for the statement in the library cache, and stores its parsed representation there. If a query is executed again before its aged out of the library cache, Oracle will use the parsed code and execution plan from the library cache.

Name the stages of processing a DML statement. What stages are parts of processing a query?
When processing a query or select statement, the parsing operation occurs first, followed by the fetch operation and the execute operation. However, when processing a DML statement, the parse operation is conducted as well as the execute operation, but not the fetch operation.

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.

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.

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.


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.

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.

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.

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.

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.

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.

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.

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.

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.

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.
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 #’;

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.

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.

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.

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.

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.

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.

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.

Which parameter in the ORAPWD utility is optional?
The parameter ENTRIES is optional. You must specify a password file name and the SYS password. The password file created will be used for authentication.

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.

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.

User SCOTT has opened a SQL * Plus session and left for lunch. When you queried the V$SESSION view, the STATUS was INACTVE. You terminated SCOTT’s session in V$SESSION?
When you terminate a session that is INACTIVE, the STATUS in V$SESSION will show as KILLED. When SCOTT tries to perform any database activity in the SQL *Plus window, he receives an error that his session is terminated. When an ACTIVE session is killed, the changes are rolled back and an error message is written to the user’s screen.

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.

When performing the command SHUTDOWN TRANASACTIONAL, Oracle performs the following tasks in what order?
1) Wait for all user transactions to complete;
2) Closes all sessions;
3) Performs a checkpoint;
4) Closes the data files and redo log files;
5) Dismounts the database;
6) Terminates the instance.
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.

How many panes are there in the Enterprise Manager console?
There are four panes in the Enterprise Manager console: Navigator, Group, Jobs, and Events.
The Navigator pane displays a hierarchical view of all the databases, listeners, nodes, and other services in the network and all their relationships. The Group pane enables you to graphically view and construct logical administrative groups of objects for more efficient management and administration. The Jobs pane is the user interface to the Job Scheduling System, which can be used to automate repetitive tasks at specified times on one or multiple databases. The Events pane is the user interface to the Event Management System, which monitors the network for problem events.

Using SQL*Plus, list two options which show the value of the parameter DB_BLOCK_SIZE?
The SHOW PARAMETER command (SHOW PARAMETER
DB_BLOCK_SIZE or SHOW ALL) will show the current value of the parameter. If you provide parameter name, its value is shown; if you omit the parameter name, all the values are shown. SHOW ALL in SQL *Plus will display the SQL *Plus environment settings, not the parameters.

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.

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.

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.

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

Which DB administration tools are included in the DBA Studio Pack?
The DBA Management Pack is a set of tools integrated with the OEM, which helps administrators with their daily routine tasks. These tools provide complete database administration, via GUI tools (vs. SQL *Plus), and can be accessed by using the OEM, through DBA Studio, or by individually accessing each tool.
The DB Studio Pack includes Instance Manager, Schema Manager, Storage Manager, and Security Manager. Instance Manager allows you to startup or shut down an instance; modify parameters; view and change memory allocations, redo logs, and archival status; age resource allocations and long-running sessions. Schema Manager allows you to create, alter, or drop any schema object, including advanced queries and Java-stored procedures. You can clone any object. Storage Manager allows you to manage tablespaces, data files, rollback segments, redo log groups, and archive logs. Security Manager allows you to change the security privileges for users and roles, and create and alter users, roles, and profiles.

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.

You have specified the LOGFILE clause in the CREATE DATABASE command as follows. What happens if the size of the log file redo0101.log, which already exists, is 10MB?
LOGFILE GROUP 1
(‘/oradata02/PR0D01/redo0101.log’,
‘/oradata03/PR0D01/redo0102.log’) SIZE 5M REUSE,
GROUP 2
(‘/oradata02/PR0D01/redo0201.log’,
‘/oradata03/PR0D01/redo0202.log’) SIZE 5M REUSE
The CREATE DATABASE command fails. To use the REUSE clause, the file that exists should be the same size as the size specified in the command.

Which command should be issued before you can execute the CREATE DATABASE command?
You must start up the instance to create the database. Connect to the database by using the SYSDBA privilege and start the instance by using the command STARTUP NOMOUNT.

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.

What does OFA stand for?
OFA- Optimal Flexible Architecture is a set of guidelines to organize the files related to the Oracle database and software for better management and performance.

When creating a database, where does Oracle find information about the control files that need to be created?
The control file names and locations are obtained from the initialization parameter file. The parameter name is CONTROL_FILES. If this parameter is not specified, Oracle creates a control file; the location and name depend on the OS platform

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.

Which prefix for the data dictionary views indicate that the contents of the view belong to the current user?
DAB_prefixed views are accessible to the DBA or anyone with the SELECT_CATALOG_ROLE privilege; these views provide information on all the objects in the database and have an OWNER column. The ALL_views show information about the structures owned by the user.

Which data dictionary view shows information about the status of a procedure?
The DBA_OBJECTS dictionary view has information on the objects, their creation, and modification timestamp and status.

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.

Which event trigger from the following cannot be created at the database level?
DML event triggers should always be associated with a table or view. They cannot be created at the database level. All other event triggers can be created at the database level.

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.

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.

Which data dictionary view provides information on the version of the database and installed components?
The dictionary view PRODUCT_COMPONENT_VERSION shows information about the database version. The view V$VERSION has the same information.

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.

Which clauses in the CREATE DATABASE command specify limits for the database?
The control file size depends on the following limits (MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES, MAXINSTANCES), because Oracle pre-allocates space in the control file.

Which clauses in the CREATE DATABASE command specify limits for the database?
The control file size depends on the following limits (MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES, MAXINSTANCES), because Oracle pre-allocates space in the control file.
MAXLOGFILES - specifies the maximum number of redo log groups that can ever be created in the database.
MAXLOGMEMBERS – specifies the maximum number of redo log members (copies of the redo logs) for each redo log group.
MAXLOGHISTORY – is used only with Parallel Server configuration. It specifies the maximum number of archived redo log files for automatic media recovery.
MAXDATAFILES – specifies the maximum number of data files that can be created in this database. Data files are created when you create a tablespace, or add more space to a tablespace by adding a data file.
MAXINSTANCES – specifies the maximum number of instances that can simultaneously mount and open this database. If you want to change any of these limits after the database is created, you must re-create the control file.

Which optional component in the database creation process sets up functions and procedures to store, access, and analyze data needed for Geographical Information Systems (GIS)?
The Oracle Spatial component installs procedures and functions needed to access spatial data. This option can be installed after creating the database by running the script catmd.sql.

What is the best method to rename a control file?
Use the ALTER DATABASE RENAME FILE command.
Shut down the database, rename the control file by using an OS command, and restart the database after changing the CONTROL_FILES parameter.
Put the database in RESTRICTED mode and issue the ALTER DATABASE RENAME FILE command.
Shut down the database, change the CONTROL_FILES parameter, and start up the database.
Re-create the control file using the new name.


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.

When you create a control file, the database has to be:
Not mounted. If you mount the database it automatically opens the database.

Which data dictionary view provides the names of the control files?
V$CONTROLFILES shows the names of the control files.

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.

Which data dictionary view shows that the database is in ARCHIVELOG mode?
The V$DATABASE view shows if the database is in ARCHIVELOG mode or in NOARCHIVELOG mode.

What is the biggest advantage of having the control files on different disks?
By storing the control file on multiple disks, you avoid the risk of a single point of failure.

Which file is used to record all changes made to the database and is used only when performing an instance recovery?
Redo logs are used to record all changes to the database. The redo log buffer in the SGA is written to the redo log file periodically by the LGWR process, which is used to roll forward, or to update, the data files during an instance recovery.

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.

How many ARCn processes can be associated with an instance?
You can have a max of 10 ARCn processes associated with an instance.

What 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.

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.

What happens if you issue the following command?
ALTER DATABASE ADD LOGFILE
(‘/logs/file1’ REUSE, ‘/logs/file2’ REUSE)
The statement creates a new log group with two members. When the GROUP option is specified, you must see a higher integer value. Oracle will automatically generate a group number if the GROUP option is not specified. Use the SIZE option if you are creating a new file. Use the REUSE option if the file already exists.

What packages are associated with the LogMiner utility?
DBMS_LOGMNR is used to add and drop files (including redo log files) and to start the LogMiner utility. DBMS_LOGMNR_D is used to create the data dictionary. The script dbmslogmnrd.sql creates the DBMS_LOGMNR_D package.

Querying which view will show whether automatic archiving is enabled?
Automatic archiving is enabled by setting the initialization parameter LOG_ARCHIVE_START = TRUE. Querying the parameter view, V$PARAMETER, will show all parameter values. Also, the ARCHIVE LOG LIST command will show whether automatic archiving is enabled.

If you need to have your archive log files named with the log sequence numbers as arch_0000001, arch_0000002, and so on (zero filled, fixed width), what should be the value of the LOG_ARCHIVE_FORMAT parameter?
The LOG_ARCHIVE_FORMAT parameter should be arch_%S. Of the four formatting variables available, %S specifies the log sequence number, leading zero filled. %s specifies the log sequence number; %t specifies the thread; and %T specifies the thread, leading zero filled.

List the steps needed to rename a redo log file.
1) shut down the database;
2) use an OS command to rename the redo log file;
3) STARTUP MOUNT;
4) ALTER DATABASE RENAME FILE ‘oldfile’ TO ‘newfile’;
5) ALTER DATABASE OPEN; and 6) back up the control file.

Which parameter is used to limit the number of dirty buffers in the buffer cache, thereby limiting the time required for instance recovery?
By setting the parameter FAST_START_TO_TARGET to the desired number of blocks, the instance recovery time can be controlled. This parameter limits the number of I/O operations that Oracle should perform for instance recovery. If the number of operations required for recovery at any point in time exceeds this limit, then Oracle writes the dirty buffers to disk until the number of I/O operations needed for instance recovery is reduced to the limit.

Create a statement that will add a member /logs/redo22.log to log file group 2?
ALTER DATABASE ADD
LOGFILE ‘/logs/redo/22.log
When adding log files, you should specify the group number or specify all the existing group members.
In using the ARCn (archive) process, redo log files are copied to other locations on or off site. This process allows for recovery in case of failure, establishing a standby database, or allows auditing of the database through LogMiner.

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.

Which operation is permitted on a read – only tablespace?
A table can be dropped from a read-only tablespace. When a table is dropped, Oracle does not have to update the data file; it updates the dictionary tables. Any change to data or creation of new objects is not allowed in a read-only tablespace.

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.

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 .

The database block size is 4KB. You created a tablespace using the following command.
CREATE TABLESPACE USER_DATA DATAFILE ‘C:/DATA01.DBF’;
If you create an object in the database without specifying any storage parameters, what will be the size of the third extent that belongs to the object?
When you create a tablespace with no default storage parameters, Oracle assigns (5 X DB_BLOCK_SIZE) to INTIAITAL and NEXT; PCTINCREASE is 50. The third extent would be 50 % more than the second. The first extent is 20KB, the second is 20KB, and third is 32KB (because the block size is 4kb).

What are the recommended INITIAL and NEXT values for a temporary tablespace, to reduce fragmentation?
The recommended INITIAL and NEXT should be equal to each other and it should be a multiple of SORT_AREA_SIZE plus DB_BLOCK_SIZE to reduce the possibility of fragmentation. Keep PCTINCREASE equal to zero. Fro example, if you r sort area size is 64 kb and database block size is 8KB, provide the default storage of the temporary tables as (INITIAL 136K PCTINCREASE 0 MAXEXTENST UNLIMITED).

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.

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.

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.

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.

What is the minimum number of extents a rollback segment can have?
The roll back segment should always have at least two extents. When creating a rollback segment, the MINEXTENTS value should be two or more.

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.




No comments: