|
|
Interview Questions and answer for Data Base Administrator
|
2. Data Base Administrator
|
| 2.1 Give one method for
transferring a table from one schema to another
|
| 2.2 What is the purpose
of the IMPORT option IGNORE? What is it?s default setting?
|
| 2.3 You have a rollback
segment in a version 7.2 database that has expanded beyond optimal, how can it
be restored to optimal?
|
| 2.4 If the DEFAULT and
TEMPORARY tablespace clauses are left out of a CREATE USER command what
happens? Is this bad or good? Why?
|
| 2.5 What are some of the
Oracle provided packages that DBAs should be aware of?
|
| 2.6 What happens if the
constraint name is left out of a constraint clause?
|
| 2.7 What happens if a
tablespace clause is left off of a primary key constraint clause?
|
| 2.8 What is the proper
method for disabling and re-enabling a primary key constraint?
|
| 2.9 What happens if a
primary key constraint is disabled and then enabled without fully specifying
the index clause?
|
| 2.10 (On UNIX)
When should more than one DB writer process be used? How many should be used?
|
| 2.11 You are
using hot backup without being in archivelog mode, can you recover in the event
of a failure? Why or why not?
|
| 2.12 What causes the
"snapshot too old" error? How can this be prevented or mitigated?
|
| 2.13 How can you tell
if a database object is invalid?
|
2.14 A user is getting
an ORA-00942 error yet you know you have granted them permission on the table,
what else should you check?
|
| 2.15 A developer is
trying to create a view and the database won?t let him. He has the "DEVELOPER"
role which has the "CREATE VIEW" system privilege and SELECT grants on the
tables he is using, what is the problem?
|
| 2.16 If you have an
example table, what is the best way to get sizing data for the production table
implementation?
|
| 2.17 How can you find
out how many users are currently logged into the database? How can you find
their operating system id?
|
| 2.18 A user selects
from a sequence and gets back two values, his select is: SELECT pk_seq.nextval
FROM dual; What is the problem?
|
| 2.19 How can you
determine if an index needs to be dropped and rebuilt?
|
2.1 Give one method for transferring a table from one schema to another.
|
|
There are several possible methods, export-import, CREATE TABLE... AS SELECT,
or COPY.
|
2.2 What is the purpose of the IMPORT option IGNORE? What is it?s default
setting?
|
|
The IMPORT IGNORE option tells import to ignore "already exists" errors. If it
is not specified the tables that already exist will be skipped. If it is
specified, the error is ignored and the tables data will be inserted. The
default value is N.
|
2.3 You have a rollback segment in a version 7.2 database that has expanded
beyond optimal, how can it be restored to optimal?
|
|
Use the ALTER TABLESPACE ..... SHRINK command.
|
2.4 If the DEFAULT and TEMPORARY tablespace clauses are left out of a CREATE
USER command what happens? Is this bad or good? Why?
|
|
The user is assigned the SYSTEM tablespace as a default and temporary
tablespace. This is bad because it causes user objects and temporary segments
to be placed into the SYSTEM tablespace resulting in fragmentation and improper
table placement (only data dictionary objects and the system rollback segment
should be in SYSTEM).
|
2.5 What are some of the Oracle provided packages that DBAs should be aware of?
|
|
Oracle provides a number of packages in the form of the DBMS_ packages owned by
the SYS user. The packages used by DBAs may include: DBMS_SHARED_POOL,
DBMS_UTILITY, DBMS_SQL, DBMS_DDL, DBMS_SESSION, DBMS_OUTPUT and DBMS_SNAPSHOT.
They may also try to answer with the UTL*.SQL or CAT*.SQL series of SQL
procedures. These can be viewed as extra credit but aren?t part of the answer.
|
2.6 What happens if the constraint name is left out of a constraint clause?
|
|
The Oracle system will use the default name of SYS_Cxxxx where xxxx is a system
generated number. This is bad since it makes tracking which table the
constraint belongs to or what the constraint does harder.
|
2.7 What happens if a tablespace clause is left off of a primary key constraint
clause?
|
|
This results in the index that is automatically generated being placed in then
users default tablespace. Since this will usually be the same tablespace as the
table is being created in, this can cause serious performance problems.
|
2.8 What is the proper method for disabling and re-enabling a primary key
constraint?
|
|
Expected answer: You use the ALTER TABLE command for both. However, for the
enable clause you must specify the USING INDEX and TABLESPACE clause for
primary keys.
|
2.9 What happens if a primary key constraint is disabled and then enabled
without fully specifying the index clause?
|
|
The index is created in the user?s default tablespace and all sizing
information is lost. Oracle doesn?t store this information as a part of the
constraint definition, but only as part of the index definition, when the
constraint was disabled the index was dropped and the information is gone.
|
2.10 (On UNIX) When should more than one DB writer process be used? How many
should be used?
|
|
If the UNIX system being used is capable of asynchronous IO then only one is
required, if the system is not capable of asynchronous IO then up to twice the
number of disks used by Oracle number of DB writers should be specified by use
of the db_writers initialization parameter.
|
2.11 You are using hot backup without being in archivelog mode, can you recover
in the event of a failure? Why or why not?
|
|
You can?t use hot backup without being in archivelog mode. So no, you couldn?t
recover.
|
2.12 What causes the "snapshot too old" error? How can this be prevented or
mitigated?
|
|
This is caused by large or long running transactions that have either wrapped
onto their own rollback space or have had another transaction write on part of
their rollback space. This can be prevented or mitigated by breaking the
transaction into a set of smaller transactions or increasing the size of the
rollback segments and their extents.
|
2.13 How can you tell if a database object is invalid?
|
|
By checking the status column of the DBA_, ALL_ or USER_OBJECTS views,
depending upon whether you own or only have permission on the view or are using
a DBA account.
|
2.14 A user is getting an ORA-00942 error yet you know you have granted them
permission on the table, what else should you check?
|
|
Expected answer: You need to check that the user has specified the full name of
the object (select empid from scott.emp; instead of select empid from emp;) or
has a synonym that points to the object (create synonym emp for scott.emp;)
|
2.15 A developer is trying to create a view and the database won?t let him. He
has the "DEVELOPER" role which has the "CREATE VIEW" system privilege and
SELECT grants on the tables he is using, what is the problem?
|
|
You need to verify the developer has direct grants on all tables used in the
view. You can?t create a stored object with grants given through views.
|
2.16 If you have an example table, what is the best way to get sizing data for
the production table implementation?
|
|
The best way is to analyze the table and then use the data provided in the
DBA_TABLES view to get the average row length and other pertinent data for the
calculation. The quick and dirty way is to look at the number of blocks the
table is actually using and ratio the number of rows in the table to its number
of blocks against the number of expected rows.
|
2.17 How can you find out how many users are currently logged into the
database? How can you find their operating system id?
|
|
There are several ways. One is to look at the v$session or v$process views.
Another way is to check the current_logins parameter in the v$sysstat view.
Another if you are on UNIX is to do a "ps -ef|grep oracle|wc -l? command, but
this only works against a single instance installation.
|
2.18 A user selects from a sequence and gets back two values, his select is:
SELECT pk_seq.nextval FROM dual; What is the problem?
|
|
Somehow two values have been inserted into the dual table. This table is a
single row, single column table that should only have one value in it.
|
2.19 How can you determine if an index needs to be dropped and rebuilt?
|
|
: Run the ANALYZE INDEX command on the index to validate its structure and then
calculate the ratio of LF_BLK_LEN/LF_BLK_LEN+BR_BLK_LEN and if it isn?t near
1.0 (i.e. greater than 0.7 or so) then the index should be rebuilt. Or if the
ratio BR_BLK_LEN/ LF_BLK_LEN+BR_BLK_LEN is nearing 0.3.
|
|