3. What is Schema
?
The set of objects owned by user account is called the schema
4. What is an Index ? How it is implemented in Oracle Database ?
An index is a database structure used by the server to have direct
access
of a row in a table.
An index is automatically created when a unique or primary key
constraint
clause is specified in create table command (Ver 7.0)
5. What is clustres ?
Group of tables physically stored together because they share common
columns and are often used together is called Clusters.
6. What is a cluster key ?
The related columns of the tables are called the cluster key. The
cluster
key is indexed using a cluster index and its value is stores only once for
multiple tables in the cluster.
7. 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 (tables,indexes,views etc)
The server that access the database consists of
SGA (Database buffer, Dictionary Cache Buffers, redo log
buffers,Shared
SQL pool)
SMON
PMON
LGWR
DBWR
ARCH
CKPT
RECO
Dispatcher
User process with associated PGA
8. What is deadlock ? Explain.
Two processes waiting 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.
3.2 Memory Management
9. What is SGA ? How it is different from Ver 6 and Ver 7 ?
The System Global Area in a Oracle database is the area in memory
to
facilitates the transfer of information between users. It holds the
most
recently requested structural information about the database.
The structure is Database buffers, Dictionary Cache, Redo Log Buffer
and
Shared SQL pool (Ver 7) area.
10. What is Shared SQL pool ?
The data dictionary cache is stored in an area in SGA called the
Shared
SQL Pool. This will allow sharing of parsed SQL statements among
concurrent users.
11. What is meant by Program Global Area (PGA) ?
It is area in memory that is used by a Single Oracle User process.
12. What is a data segment ?
Data segment are the physical areas within a database block in which
the
data associated with tables and clusters are stored.
13. 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 that 1 then increase the
SHARED_POOL_SIZE.
3.3 Logical & Physical Architecture of Database
14. 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.
15. What is dictionary cache ?
Dictionary cache is information about the database objects stored in
a
data dictionary table.
16. What is meant by recursive hits ?
Number of times processes repeatedly query the dictionary table is
called
recursive hits. 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.
17. What is meant by redo log buffer ?
Changes made to entries are written to the on-line redo log files so
that
they can be used in roll forward operation 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.
18. How will you swap objects into a different table space for an
existing
database ?
Export the user
Perform import using the command imp system/manager file=export.dp
indexfile=newfile.sql. This will create all definitions into
newfile.sql.
Drop necessary objects.
Run the script newfile.sql after altering the tablespaces.
Import from the backup for the necessary objects.
19. List the Optimal 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 - Tool 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 tablespaces.
20. How will you force database to use particular rollback segment ?
SET TRANSACTION USE ROLLBACK SEGMENT rbs_name
21. 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.
22. How free extents are managed in Ver 6 and Ver 7. ?
Free extents cannot be merged together in Ver 6.0
Free extents are periodically coalesces with the neighboring free
extent
Ver 7.0.
23. Which parameter in Storage clause will reduce no of rows per block ?
PCTFREE parameter
Row size also reduces no of rows per block.
24. What is 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.
25. How does space allocation take place within a block ?
Each block contains entries as follows :
Fixed block header
Variable block header
Row header, row date (Multiple rows may exists)
PCTFREE (% of free space for row updation in future)
26. 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.
27. What is the OPTIMAL parameter ?
It is used to set the optimal length of rollback segment.
28. What is the functionality of SYSTEM tablespace ?
To manage the database level of transactions such as modifications of
the
data dictionary table that record information about the free space
usage.
29. How will you create multiple rollback segments in a database ?
Create a database which implicitly creates a SYSTEM Rollback Segment in
a
SYSTEM tablespace.
Create a Second Rollback Segment name R0 in the SYSTEM tablespace.
Make new rollback segment available (After shutdown, modify init.ora
file
and Start database)
Create other tablespace (RBS) for rollback segments.
Create additional Rollback segment in tablespace (RBS)
Deactivate Rollback Segment R0 and activate the newly created
rollback
segments.
30. How the space utilisation 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).
31. Why query fails sometimes ?
Rollback segment dynamically extent to handle larger transactions
entry
loads.
A single transaction may wipeout all available free space in the
Rollback
Segment Table space. This prevents other user using Rollback segment.
32. How will you monitor the space allocation ?
By querying DBA_SEGMENT table/View
33. How will you monitor rollback segment status ?
Querying the DBA_ROLLBACK_SEGS view
The status available as follows :
IN USE - Rollback Segment is on-line
AVAILABLE - Rollback Segment available bur not on-line
OFF-LINE - Rollback Segment us off-line
INVALID - Rollback Segment dropped
NEEDS RECOVERY - Contains data but need recovery or corrupted
PARTLY AVAILABLE - Contains data from an unresolved transaction
involving
a distributed database
34. 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 RBS header for new transactions entry
Transaction acquired 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 oldest inactive segment
Oldest inactive segment is eliminated
RBS extends
The Data dictionary table for space management are updated
Transaction Completes.
35. How can we plan storage for very large tables ?
Limit the number of extents in the table
Separate the Table from its indexes
Allocate sufficient temporary storage
36. How will you estimate the space required by non-clustered tables ?
Calculate the total block header size
Calculate the available data space per block
Calculate the combined column length 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 the additional space to calculate
the
initial extent size for working area
37. Is it possible to use raw devices as data file and what is the
advantages over file system files ?
Yes.
The advantages over file system files :
I/O will be improved because Oracle is bye-passing the kernal
while
writing into disk.
Disk Corruption will be very less.
38. 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.
39. How to implement the multiple control files for an existing database
?
Shutdown the database
Copy one of the existing control file to new location'
Edit config.ora file by adding new control file name
Restart the database
40. What is meant by Redo Log file mirroring ? 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.
41. 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 of 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.
42. What is use of rollback segment in Database ?
They allow the database to maintain read consistency between
multiple
transactions.
43. 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.
44. What a hit ratio ?
It is a measure of well the data cache buffer is handling requests
for
data.
Hit Ratio = (Logical Reads - Physical reads - Hit Misses) / Logical
reads.
45. When will be a segment released ?
When Segment is dropped.
When Shrink (RBS only)
When truncated (TRUNCATE used with drop storage option)
46. What are disadvantages 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.
47. 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.
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, can cause fragmentation and chained row pieces.
3.4 Database Security & Administration
48. 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.
49. How will you enforce security using stores procedures ?
Don't grant user access directly to tables within 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.
50. What are the dictionary tables used to monitor a database spaces ?
DBA_FREE_SPACE
DBA_SEGMENTS
DBA_DATA_FILES
51. What are responsibilities of a Database Administrator ?
1. Installing and upgrading the Oracle Server and application tools
2. Allocating system storage and planning future storage requirements
for
the database system.
3. Managing primary database structures(tablespaces)
4. Managing primary objects (table,views,indexes)
5. Enrolling users and maintaining system security
6. Ensuring compliance with Oracle license agreement
7. Controlling and monitoring user access to the database
8. Monitoring and optimising the performance of the database
9. Planning for backup and recovery of database information
10. Maintain archived data on tape
11. Backing up and restoring the database
12. Contacting Oracle Corporation for technical support
52. What are requirements one should fulfill to connect to ORACLE
as
internal?
Operating system account has the operating system privileges that
allow
you to connect
One should be authorised to connect as internal
Database has a password for internal connections, and you know the
password must use a dedicated server
53. 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 base tables 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
the
username.
54. What are the database administrators utilities available ?
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 IMPOER (imp) utilities allow you to move existing data
in
ORACLE format to and from ORACLE database.
55. What are the minimum parameters should exist in the parameter
file
(init.ora) ?
DB_NAME - Must set to a text string of not more that 8 characters and
it
will be stored inside the datafiles, redo log 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)
CONTROL_FILES - List of control filenames of the database. If name is
not
mentioned then default name will be used.
DB_BLOCK_SIZE - The default data block size and is operating
system
dependent. It cannot be changed after database creation except by
re-creating the database.
DB_BLOCK_BUFFERS - The maximum 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.
56. What is a trace file and how it is 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.
57. What are roles ? How can we implement roles ?
Roles are easiest way to grant and manage common privileges needed
by
different groups of database users.
Creating roles and assigning privies to roles.
Assign each role to group of users. This will simplify the job of
assigning privileges to individual users.
58. What are the steps to switch a database's archiving mode
between
NOARCHIEVELOG and ARCHIVELOG mode ?
1. Shutdown the database instance
2. Backup the database
3. Perform any operating system specific steps (optional)
4. Start up a new instance and mount but do not open the database
5. Switch the database's archiving mode.
59. 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
60. 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/t.arc (%S - Log sequence number and is
zero left-paded, %s - Log sequence number not paded, %T - Thread
number
left-zero-paded and %t - Thread number not paded). The file name
created
is arch0001.arc %S is used.
LOG_ARCHIEVE_DEST = path
Shut the database and change these parameters in init.ora files.
61. What is the user of ANALYZE command ?
To perform one of these function on an index, table, or cluster :
to collect statistics about object used by the optimizer and store them
in
the data dictionary.
to delete statistics about the object from the data dictionary
to validate the structure of the object
to identify migrated and chained rows of the table or cluster.
3.5 Managing Distributed Databases
62. How can we reduce the network traffic ?
Replication of data in distributed environment
Using snapshots to replicate data
Using remote procedure calls.
63. What is a snapshot ?
Snapshot is an object used to dynamically replicate data between
distributed databases at specified time intervals. In ver 7.0 they
are
read only.
64. What are the various type of snapshots ?
Simple and Complex.
65. Differentiative simple and complex, snapshots
A simple snapshot is based on a query that does not contains GROUP
BY
clauses, CONNECT by clauses, JOINs, Subquery or a set of operations.
A complex snapshots contain at least any one of the above.
66. What is dynamic data replication ?
Updating or inserting records in remote database through database
triggers. It may fail if remote database is having any problem.
67. How can you enforce referential integrity in snapshots ?
Time the references to occur when master tables are not in use.
Perform the references manually immediately after locking the
master
tables.
We can join tables in snapshots by creating a complex snapshot that
will
be based on the master tables.
68. What are the options available to refresh snapshots ?
COMPLETE - Tables are completely regenerated using the snapshot's
query
and the master tables every time the snapshot referenced.
FAST - If simple snapshot used then a snapshot log can be used to
send
only the changes to the snapshot tables.
FORCE - The default value. If possible it performs a FAST refresh;
Otherwise it will perform a COMPLETE refresh.
69. What is a snapshot tag ?
It is a table that maintains a record of modifications to the master
table
in a snapshot. It is stored in the same database as master table and
is
only available for simple snapshots. It should be created before
creating
snapshots.
70. When will the data in the snapshot log be used ?
The data in the snapshot log is used during fast references of the
table's
snapshots.
71. What are the pre-requisites to create a snapshot log ?
We must be able to create a after row trigger on table (i.e. it should
not
be already available)
After giving table previleges.
We cannot specify snapshot log name because oracle uses the name of
the
master table in the name of the database objects that support its
snapshot
log.
The master table name should be less than or equal to 23 characters.
(The table name created will be MLOG$_tablename, and trigger name will
be
TLOG$_tablename)
72. 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
73. What is a two-phase commit ?
Database on other servers can be updated and those transactions can
be
grouped together with others in a logical unit is called two-phase
commit.
They are
The Preparation Phase : An initiating node called the global
coordinator
notifies all sites involved in the transaction to be ready either
commit
or rollback the transaction.
The Commit Phase : If there is no problem with prepare phase, then
all
sites commit their transactions. If a network or node failure occurs,
then
all sites rollback their transactions.
3.6 Managing Backup & Recovery
74. What are the different methods of backing up oracle database ?
Logical Backups
Cold Backups
Hot Backups (Archive log)
75. What is a logical backup ?
Logical backup involves reading a set of database records and writing
them
into a file. Export utility is used for taking backup and Import
utility
is used to recover from backup.
76. What is cold backup ? What are the elements of it ?
Cold backup is taking backup of all physical files after normal
shutdown
of database. We need to take
All Data files
All Control files
All on-line redo log files
Then init.ora file (optional)
77. What are the different kind of export backups ?
Full backup - Complete database
Incremental Backup - Only affected tables from last incremental date
/
Full backup date
Cumulative backup - Only affected table from the last cumulative date
/
Full backup date
78. What is hot backup and how it can be taken ?
Taking backup of archive log files when database is open. For this
the
ARCHIVELOG mode should be enabled. The following files need to be
backed
up :
All data files
All archive log, redo log files
On control file.
79. What is the use of FILE option in EXP command ?
To give the export file name.
80. What is the use of COMPRESS option in EXP command ?
Flag to indicate whether export should compress fragmented segments
into
single extents.
81. What is the use of GRANT option in EXP command ?
A flag to indicate whether grants on database objects will be exported
or
not. Values is 'Y' or 'N'.
82. What is the use of INDEXES option in EXP command ?
A flag to indicate whether indexes on tables will be exported.
83. What is use of ROWS option in EXP command ?
Flag to indicate whether table rows should be exported. If 'N' only
DDL
statements for the database objects will be created.
84. What is the use of CONSTRAINTS option in EXP command ?
A flag to indicate whether constraints on table need to be exported.
85. What is the use of FULL option in EXP command ?
A flag to indicate whether full database export should be performed.
86. What is the use of OWNER option in EXP command ?
List of table accounts should be exported.
87. What is the use of TABLES option in EXP command ?
List of tables should be exported.
88. What is use of RECORD LENGTH option in EXP command ?
Record length in bytes.
89. What is use of INCTYPE option in EXP command ?
Type export should be performed. COMPLETE, CUMULATIVE, INCREMENTAL
90. What is use of RECORD option in EXP command ?
For incremental exports, the flag indicates whether a record will
be
stored in data dictionary tables recording the export.
91. What is the use of PARFILE option in EXP command ?
Name of the parameter file to passed for export.
92. What is the use of ANALYSE (Ver 7) option in EXP command ?
A flag to indicate whether statistical information about the
exported
objects should be written to export dump file.
93. What is use of CONSISTENT (Ver 7) option in EXP command ?
A flag to indicate whether a read consistent version of all the
exported
objects should be maintained.
94. What is the use of Log (Ver 7) option in EXP command ?
The name of file to which log of the export will be written.
95. What is use of FILE option in IMP command ?
The name of file from which import should be performed.
96. What is the use of SHOW option in IMP command ?
A flag to indicate whether file content should be displayed or not.
97. What is the use of IGNORE option in IMP command ?
A flag to indicate whether import should ignore errors encounter
when
issuing CREATE command.
98. What is the use of GRANT option in IMP command ?
A flag to indicate whether grants on database objects will be imported.
99. What is use of INDEXES option in IMP command ?
A flag to indicate whether import should import index on tables or not.
100. What is use of ROWS option in IMP command ?
A flag to indicate whether rows should be imported. I f this is set to
'N'
then only DDL for the database objects will be executed ?
101. What is the use of FULL option in IMP command ?
A flag to indicate whether full import should be done or not.
102. What is the use of FROMUSER option in IMP command ?
A list of database accounts whose objects should be read from the
export
dump file.
103. What is use of TOUSER option in IMP command ?
A list of database accounts into which objects in the export dump
file
will be imported
104. What is use of TABLES option in IMP command ?
A list of tables to be imported.
105. What is use of RECORDLENGTH option in IMP command ?
The length of the record in bytes of the export dump file.
106. What is use of INCTYPE option in the IMP command ?
The type of import being performed.
107. What is use of COMMIT option in IMP command ?
A flag to indicate whether import should commit after each array. If
'N'
then commit will take place at table level
108. What is use of PARFILE option in IMP command ?
Name of the parameter file to passed for import command.
109. What is use of INDEXFILE option in IMP command ?
If filename is given then all the DDL will be created in the given file.
110. What is use of DESTROY (Ver 7) option in IMP command ?
A flag to indicate whether the create tablespace command found in
dump
files from full exports will be executed.
111. What is use of LOG option in IMP command ?
Name of the file to which the log of the import will be written.
112. Consider a case below : User is taking the backup in the
following
fashion :
Type F I I I I C I I I I C I I
Date 1 2 3 4 5 6 7 8 9 10 11 12 13
F - Full Backup
I - Incremental Backup
C - Cumulative Backup
Suppose database crash on 14th morning. How can we retrieve the database
?
Create the database
Import from the Full backup which was taken on 1st
Import from Cumulative backups which was taken on 6th
Import from Cumulative backups which was taken on 1th
Import from the Incremental backups 12,13 respectively.
Now the database will be available to latest status provided there is
no
transaction taken place after the 13th incremental backup.
113. List the steps to restore the database if data file lost. (Assume
we are taking hot
backups)
Copy the lost file from the backup to the original location
Start the instance
Mount the database
Recover the database using recover database command
Open the database
114. What are the points to be taken care when we are using SQL*Loader
for
importing data from flat files ?
Whether table and indexes are properly sized.
Direct option being used or not (Ver 7)
If one time load do not create any index until data has been loaded
and
table size is verified.
115. What are the advantages of using direct path option in SQL*Loader ?
It bypasses the normal processing of insert statements and instead
writes
directly to tables data blocks.
When direct option is used index become invalid and once the load
complete
the new key is merged with all old one and bring the status to valid.
Data should be presorted otherwise it needs the double the size in
tablespace.
116. What are areas a DBA can monitor the database using SQLDBA command?
DBA can monitor the following areas to do fine tuning of the database :
Processes
Sessions
Tables(Locks etc)
SQL Area
Library Cache
Latch
Locks
File I/O
System I/O
Rollback Segments
Statistics (System, Sessions)
Apart from this all DBA activities can be performed through SQLDBA
command.
DDE ¡V OLE
DDE - Dynamic Data Exchange.
DLL - Dynamic Link Library
OLE - Object Linking and Embedding.
MAPI ¡V Messaging Application Program Interface
No comments:
Post a Comment