Sunday, 1 July 2018

Interview Q and A for Oracle Architecture Part - 2

101. What is Log Switch ?
The point at which ORACLE ends writing to one online redo log file and begins writing to another is called a log switch.

102. What are the steps involved in Instance Recovery ?
R_olling forward to recover data that has not been recorded in data files, yet has been recorded in the on-line redo log, including the contents of rollback segments.
Rolling back transactions that have been explicitly rolled back or have not been committed as indicated by the rollback segments regenerated in step a. Releasing any resources (locks) held by transactions in process at the time of the failure. Resolving any pending distributed transactions undergoing a two-phase commit at the time of the instance failure.

103. What is a Database instance ? Explain
A database instance (Server) is a set of memory structure and background processes that access a set of database files. The process can be shared by all users. The memory structure that are used to store most queried data from database. This helps up to improve database performance by decreasing the amount of I/O performed against data file.

104. What are the basic element of Base configuration of an oracle Database ?
It consists of one or more data files. one or more control files. two or more redo log files. The Database contains multiple users/schemas, one or more rollback segments, one or more tablespaces, Data dictionary Tables, User objects (table,indexes,views etc.,), The server that access the database consists of SGA (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) RECO Dispatcher, User Process with associated PGS,

105. What is a deadlock ? Explain .
Two processes wating to update the rows of a table which are locked by the other process then deadlock arises. In a database environment this will often happen because of not issuing proper row lock commands. Poor design of front-end application may cause this situation and the performance of server will reduce drastically. These locks will be released automatically when a commit/rollback operation performed or any one of this processes being killed externally.

106. What are the factors causing the reparsing of SQL statements in SGA?
Due to insufficient Shared SQL pool size. Monitor the ratio of the reloads takes place while executing SQL statements. If the ratio is
greater than 1 then increase the SHARED_POOL_SIZE.

107. What is Database Buffers ?
Database buffers are cache in the SGA used to hold the data blocks that are read from the data segments in the database such as tables, indexes and clusters DB_BLOCK_BUFFERS parameter in INIT.ORA decides the size.

108. What is dictionary cache ?
Dictionary cache is information about the databse objects stored in a data dictionary table.

109. What is meant by recursive hints ?
Number of times processes repeatedly query the dictionary table is called recursive hints. It is due to the data dictionary cache is too small. By increasing the SHARED_POOL_SIZE parameter. we can optimize the size of Data Dictionary Cache.

110. What is meant by redo log buffer ?
Change made to entries are written to the on-line redo log files. So that they can be used in roll forward operations during database recoveries. Before writing them into the redo log files, they will first brought to redo log buffers in SGA and LGWR will write into files frequently. LOG_BUFFER parameter will decide the size

111. List the Optional Flexible Architecture (OFA) of Oracle database ? or How can we organise the tablespaces in Oracle database to have maximum performance ?
SYSTEM - Data dictionary tables. DATA - Standard operational tables. DATA2- Static tables used for standard operations INDEXES - Indexes for Standard operational tables. INDEXES1 - Indexes of static tables used for standard operations. TOOLS - Tools table. TOOLS1 - Indexes for tools table. RBS - Standard Operations Rollback Segments, RBS1,RBS2 - Additional/Special Rollback
segments. TEMP - Temporary purpose tablespace TEMP_USER - Temporary tablespace for users. USERS - User tablespace.

112. How will you force database to use particular rollback segment ?
SET TRANSACTION USE ROLLBACK SEGMENT rbs_name.

113. What is meant by free extent ?
A free extent is a collection of continuous free blocks in tablespace. When a segment is dropped its extents are reallocated and are marked as free.

114. How free extents are managed in Ver 6.0 and Ver 7.0 ?
Free extents cannot be merged together in Ver 6.0. Free extents are periodically coalesces with the neighboring free extent in Ver 7.0

115.Which parameter in Storage clause will reduce no. of rows per block?
PCTFREE parameter Row size also reduces no of rows per block.

116. What is the significance of having storage clause ?
We can plan the storage for a table as how much initial extents are required, how much can be extended next, how much % should leave free for managing row updations etc.,

117. How does Space allocation table place within a block ?
Each block contains entries as follows, Fixied block header, Variable block header, Row Header,row date (multiple rows may exists), PCTEREE (% of free space for row updation in future)

118. What is the role of PCTFREE parameter is Storage clause ?
This is used to reserve certain amount of space in a block for expansion of rows.

119. What is the OPTIMAL parameter ?
It is used to set the optimal length of a rollback segment.

120. What is the functionality of SYSTEM table space ?
To manage the database level transactions such as modifications of the data dictionary table that record information about the free space usage.

121. How the space utilization takes place within rollback segments ?
It will try to fit the transaction in a cyclic fashion to all existing extents. Once it found an extent is in use then it forced to acquire a new extent (No. of extents is based on the optimal size)

122. Why query fails sometimes ?
Rollback segment dynamically extent to handle larger transactions entry loads. A single transaction may wipeout all avaliable free space in the Rollback Segment Tablespace. This prevents other user using Rollback segments.

123. How will you monitor the space allocation ?
By quering DBA_SEGMENT table/view.

124. How will you monitor rollback segment status ?
Querying the DBA_ROLLBACK_SEGS view, IN USE - Rollback Segment is on-line. AVAILABLE - Rollback Segment available but not on-line. OFF-LINE - Rollback Segment off-line, INVALID - Rollback Segment Dropped. NEEDS RECOVERY - Contains data but
need recovery or corupted. PARTLY AVAILABLE - Contains data from an unresolved transaction involving a distributed database.

125. 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 entry, Transaction acquires blocks in an extent of RBS The entry attempts to wrap into second extent. None is available, so that the RBS must extent. The RBS checks to see
if it is part of its OPTIMAL size. RBS chooses its oldest inactive segment. Oldest inactive segment is eliminated. RBS extents. The Data dictionary table for space management are updated. Transaction Completes.

126. How can we plan storage for very large tables ?
Limit the number of extents in the table
Separate Table from its indexes.
Allocate Sufficient temporary storage.

127. How will you estimate the space required by a non-clustered tables?
Calculate the total header size, Calculate the available dataspace per data block, Calculate the combined column lengths of the average row. Calculate the total average row size. Calculate the average number rows that can fit in a block. Calculate the number of blocks and bytes required for the table. After arriving the calculation, add 10 % additional space to calculate the initial extent size for a working table.

128. It is possible to use raw devices as data files and what is the advantages over file. system files ?
Yes. The advantages over file system files. I/O will be improved because Oracle is byepassing the kernnel which writing into disk. Disk Corruption will be very less.

129. What is a Control file ?
Database's overall physical architecture is maintained in a file called control file. It will be used to maintain internal consistency and guide recovery operations. Multiple copies of control files are advisable.

130. How to implement the multiple control files for an existing database ?
Shutdown the databse. Copy one of the existing control file to new location. Edit lnlt ora file by adding new control file.name. Restart the database.

131. What is meant by Redo Log file mirrorring ? How it can be achieved?
Process of having a copy of redo log files is called mirroring. This can be achieved by creating group of log files together, so that LGWR will automatically writes them to all the members of the current on-line redo log group. If any one group fails then database automatically switch over to next group. It degrades performance.

132. What is advantage of having disk shadowing/ Mirroring ?
Shadow set of disks save as a backup in the event of disk failure. In most Operating System if any disk failure occurs it  automatically switchover to place of failed disk. Improved performance because most OS support volume shadowing can direct file I/O request to use the shadow set of files instead of the main set of files. This reduces I/O load on the main set of disks.

133. What is use of Rollback Segments In Database ?
They allow the database to maintain read consistency between multiple transactions.

134. What is a Rollback segment entry ?
It is the set of before image data blocks that contain rows that are modified by a transaction. Each Rollback Segment entry must be completed within one rollback segment. A single rollback segment can have multiple rollback segment entries.

135. What is hit ratio ?
It is a measure of well the data cache buffer is handling requests for data. Hit Ratio =
(Logical Reads - Physical Reads - Hits Misses)/ Logical Reads.

136. When will be a segment released ?
When Segment is dropped. When Shrink (RBS only). When truncated (TRUNCATE used with drop storage option).

137. What are disadvanteges of having raw devices ?
We should depend on export/import utility for backup/recovery (fully reliable). The tar command cannot be used for physical file backup, instead we can use dd command which is less flexible and has limited recoveries.

138. List the factors that can affect the accuracy of the estimations ?
The space used transaction entries and deleted records does not become free immediately after completion due to delayed cleanout. Trailling nulls and length bytes are not stored. Inserts of, updates to and deletes of rows as well as columns larger
than a single datablock, can cause fragmentation an chained row pieces.

139. What is user Account in Oracle database ?
An user account is not a physical structure in Database but it is having important relationship to the objects in the database and will be having certain privileges.

140. How will you enforce security using stored procedures ?
Don't grant user access directly to tables within the application. Instead grant the ability to access the procedures that access the tables. When procedure executed it will execute the privilege of procedures owner. Users cannot access tables except via the procedure.

141. What are the dictionary tables used to monitor a database spaces ?
DBA_FREE_SPACE, DBA_SEGMENTS, DBA_DATA_FILES.

142. What are the responsibilities of a Database Administrator ?
Installing and upgrading the Oracle Server and application tools. Allocating system storage and planning future storage requirements for the database system. Managing primary database structures (tablespaces). Managing primary objects (table,views,indexes). Enrolling users and maintaining system security. Ensuring compliance with Oralce license agreement. Controlling and monitoring user access to the database. Monitoring and optimising the performance of the database. Planning for backup and recovery of database information. Maintain archived data on tape. Backing up and restoring the database. Contacting Oracle Corporation for technical support.

143. What are the roles and user accounts created automatically with the database ?
DBA - role Contains all database system privileges. SYS user account - The DBA role will be assigned to this account. All of the basetables and views for the database's dictionary are store in this schema and are manipulated only by ORACLE.
SYSTEM user account - It has all the system privileges for the database and additional tables and views that display administrative information and internal tables and views used by oracle tools are created using this username.

144. What are the database administrators utilities avaliable ?
SQL * DBA - This allows DBA to monitor and control an ORACLE database.
SQL * Loader - It loads data from standard operating system files (Flat files) into ORACLE database tables.
Export (EXP) and Import (imp) utilities allow you to move existing data in ORACLE format to and from ORACLE database.

145. What are the minimum parameters should exist in the parameter file (init.ora) ?
DB NAME - Must set to a text string of no more than 8 characters and it will be stored inside the datafiles, redo log files and control files and control file while database creation.
DB_DOMAIN - It is string that specifies the network domain where the database is created. The global database name is identified by setting these parameters (DB_NAME & DB_DOMAIN)
CONTORL FILES - List of control filenames of the database. If name is not mentioned then default name will be used. DB_BLOCK_BUFFERS - To determine the no of buffers in the buffer cache in SGA.
PROCESSES - To determine number of operating system processes that can be connected to ORACLE concurrently. The value should be 5 (background process) and additional 1 for each user.
 ROLLBACK_SEGMENTS - List of rollback segments an ORACLE instance acquires at database startup.
Also optionally LICENSE_MAX_SESSIONS,LICENSE_SESSION_WARNING and LICENSE_MAX_USERS.

146. What is a trace file and how is it created ?
Each server and background process can write an associated trace file. When an internal error is detected by a process or user process, it dumps information about the error to its trace. This can be used for tuning the database.

147. What are roles ? How can we implement roles ?
Roles are the easiest way to grant and manage common privileges needed by different groups of database users. Creating roles and assigning provies to roles. Assign each role to group of users. This will simplify the job of assigning privileges to individual users.

148. How can you enable automatic archiving ?
Shut the database. Backup the database. Modify/Include LOG_ARCHIVE_START_TRUE in init.ora file. Start up the database.

149. How can we specify the Archived log file name format and destination ?
By setting the following values in init.ora file. LOG_ARCHIVE_FORMAT = arch %S/s/T/tarc (%S - Log sequence number and is zero left paded, %s - Log sequence number not padded. %T - Thread number lef-zero-paded and %t - Thread number not padded). The file name created is arch 0001 are if %S is used. LOG_ARCHIVE_DEST = path.

150. What is the use of ANALYZE command ?
To perform one of these function on an index,table, or cluster: - to collect statisties about object used by the optimizer and store them in the data dictionary. - to delete statistics about the object used by object from the data dictionary. - to validate the structure of the object. - to identify migrated and chained rows of the table or cluster.

151. What are the benefits of distributed options in databases ?
Database on other servers can be updated and those transactions can be grouped together with others in a logical unit. Database uses a two phase commit.

152. How do you switch from an init.ora file to a spfile?
Issue the create spfile from pfile command.

153. Explain the difference between a data block, an extent and a segment.
A data block is the smallest unit of logical storage for a database object. As objects grow they take chunks of additional storage that are composed of contiguous data blocks. These groupings of contiguous data blocks are called extents. All the extents that an object takes when grouped together are considered the segment of the database object.

154. Give two examples of how you might determine the structure of the table DEPT.
Use the describe command or use the dbms_metadata.get_ddl package.

156. Where would you look for errors from the database engine?
In the alert log.

157. Explain the difference between ARCHIVELOG mode and NOARCHIVELOG mode and the benefits and disadvantages to each.
ARCHIVELOG mode is a mode that you can put the database in for creating a backup of all transactions that have occurred in the database so that you can recover to any point in time. NOARCHIVELOG mode is basically the absence of ARCHIVELOG mode
and has the disadvantage of not being able to recover to any point in time. NOARCHIVELOG mode does have the advantage of not having to write transactions to an archive log and thus increases the performance of the database slightly.

158. Give the stages of instance startup to a usable state where normal users may access it.
STARTUP NOMOUNT - Instance startup
STARTUP MOUNT - The database is mounted
STARTUP OPEN - The database is opened

159. What column differentiates the V$ views to the GV$ views and how?
The INST_ID column which indicates the instance in a RAC environment the information came from.

160. How would you go about generating an EXPLAIN plan?
Create a plan table with utlxplan.sql.
Use the explain plan set statement_id = 'tst1' into plan_table for a SQL statement
Look at the explain plan with utlxplp.sql or utlxpls.sql

161. How would you go about increasing the buffer cache hit ratio?
Use the buffer cache advisory over a given workload and then query the v$db_cache_advice table. If a change was necessary then I would use the alter system set db_cache_size command.

162. Explain an ORA-01555
You get this error when you get a snapshot too old within rollback. It can usually be solved by increasing the undo retention or increasing the size of rollbacks. You should also look at the logic involved in the application getting the error message.

163. Explain the difference between $ORACLE_HOME and $ORACLE_BASE.
ORACLE_BASE is the root directory for oracle.
ORACLE_HOME located beneath ORACLE_BASE is where the oracle products reside.

164. How would you determine the time zone under which a database was operating?
select DBTIMEZONE from dual;

165. Explain the use of setting GLOBAL_NAMES equal to TRUE.
Setting GLOBAL_NAMES dictates how you might connect to a database. This variable is either TRUE or FALSE and if it is set to TRUE it enforces database links to have the same name as the remote database to which they are linking.
166. Name three advisory statistics you can collect.
Buffer Cache Advice, Segment Level Statistics, & Timed Statistics
Database Cache Advisory
Shared Pool Advisory
PGA Advisory
SHARED_POOL_ADVICE
PGA_TARGET_ADVICE
DB_CACHE_ADVICE


167. Where in the Oracle directory tree structure are audit traces placed?
In unix $ORACLE_HOME/rdbms/audit, in Windows the event viewer

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

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

170. What background process refreshes materialized views?
The Job Queue Processes.

171. How would you determine what sessions are connected and what resources they are waiting for?
Use of V$SESSION and V$SESSION_WAIT

172. How would you force a log switch?
ALTER SYSTEM SWITCH LOGFILE;

173. Give two methods you could use to determine what DDL changes have been made.
You could use Logminer or Streams

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

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

176. Name a tablespace automatically created when you create a database.
The SYSTEM tablespace.

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

178. How do you add a data file to a tablespace?
ALTER TABLESPACE <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>

179. How do you resize a data file?
ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;

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

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

182. How would you determine who has added a row to a table?
Turn on fine grain auditing for the table.

183. How can you rebuild an index?
ALTER INDEX <index_name> REBUILD;

184. Explain what partitioning is and what its benefit is.
Partitioning is a method of taking large tables and indexes and splitting them into smaller, more manageable pieces.

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

186. How can you enable a trace for a session?
Use the DBMS_SESSION.SET_SQL_TRACE or  Use ALTER SESSION SET SQL_TRACE = TRUE;

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

188. Name two files used for network connection to a database.
TNSNAMES.ORA and SQLNET.ORA

189. What are the four Oracle system processes that must always be up and running for the database to be useable
The four Oracle system processes that must always be up and running for the database to be useable include DBWR (Database Writer), LGWR (Log Writer), SMON (System Monitor), and PMON (Process Monitor).

190. What are database files, control files and log files. How many of these files should a database have at least? Why?
Database Files. The database files hold the actual data and are typically the largest in size. Depending on their sizes, the tables (and other objects) for all the user accounts can go in one database file—but that's not an ideal situation because it does not make
the database structure very flexible for controlling access to storage for different users, putting the database on different disk drives, or backing up and restoring just part of the database.
You must have at least one database file but usually, more than one files are used. In terms of accessing and using the data in the tables and other objects, the number (or location) of the files is immaterial. The database files are fixed in size and never grow bigger than the size at which they were created.
Control Files :The control files and redo logs support the rest of the architecture. Any database must have at least one control file, although you typically have more than one to guard against loss. The control file records the name of the database, the date and time it was created, the location of the database and redo logs, and the synchronization information to ensure that all three sets of files are always in step. Every time you add a new database or redo log file to the database, the information is recorded in the control files.
Redo Logs: Any database must have at least two redo logs. These are the journals for the database; the redo logs record all changes to the user objects or system objects. If any type of failure occurs, the changes recorded in the redo logs can be used to bring the database to a consistent state without losing any committed transactions. In the case of non-data loss failure, Oracle can apply the information in the redo logs automatically without intervention from the DBA. The redo log files are fixed in size and never grow dynamically from the size at which they were created.


No comments:

Post a Comment