How do you find out from the RMAN catalog if a particular archive log has been backed-up?
How can you tell how much space is left on a given file system and how much space each of the file system’s subdirectories take-up?
Define the SGA and how you would configure SGA for a mid-sized OLTP environment? What is involved in tuning the SGA?
What is the cache hit ratio, what impact does it have on performance of an Oracle database and what is involved in tuning it?
Other than making use of the statspack utility, what would you check when you are monitoring or running a health check on an Oracle 8i or 9i database?
How do you tell what your machine name is and what is its IP address?
How would you go about verifying the network name that the local_listener is currently using?
You have 4 instances running on the same UNIX box. How can you determine which shared memory and semaphores are associated with which instance?
What view(s) do you use to associate a user’s SQLPLUS session with his o/s process?
What is the recommended interval at which to run statspack snapshots, and why?
What spfile/init.ora file parameter exists to force the CBO to make the execution path of a given statement use an index, even if the index scan may appear to be calculated as more costly?
Assuming today is Monday, how would you use the DBMS_JOB package to schedule the execution of a given procedure owned by SCOTT to start Wednesday at 9AM and to run subsequently every other day at 2AM.
How would you edit your CRONTAB to schedule the running of /test/test.sh to run every other day at 2PM?
What do the 9i dbms_standard.sql_txt() and dbms_standard.sql_text() procedures do?
In which dictionary table or view would you look to determine at which time a snapshot or MVIEW last successfully refreshed?
How would you best determine why your MVIEW couldn’t FAST REFRESH?
How does propagation differ between Advanced Replication and Snapshot Replication (read-only)?
Which dictionary view(s) would you first look at to understand or get a high-level idea of a given Advanced Replication environment?
How would you begin to troubleshoot an ORA-3113 error?
Which dictionary tables and/or views would you look at to diagnose a locking issue?
An automatic job running via DBMS_JOB has failed. Knowing only that “it’s failed”, how do you approach troubleshooting this issue?
How would you extract DDL of a table without using a GUI tool?
You’re getting high “busy buffer waits” - how can you find what’s causing it?
What query tells you how much space a tablespace named “test” is taking up, and how much space is remaining?
Database is hung. Old and new user connections alike hang on impact. What do you do? Your SYS SQLPLUS session IS able to connect.
Database crashes. Corruption is found scattered among the file system neither of your doing nor of Oracle’s. What database recovery options are available? Database is in archive log mode.
Illustrate how to determine the amount of physical CPUs a Unix Box possesses (LINUX and/or Solaris).
How do you increase the OS limitation for open files (LINUX and/or Solaris)?
Provide an example of a shell script which logs into SQLPLUS as SYS, determines the current date, changes the date format to include minutes & seconds, issues a drop table command, displays the date again, and finally exits.
Explain how you would restore a database using RMAN to Point in Time?
How does Oracle guarantee data integrity of data changes?
Which environment variables are absolutely critical in order to run the OUI?
What SQL query from v$session can you run to show how many sessions are logged in as a particular user account?
Why does Oracle not permit the use of PCTUSED with indexes?
What would you use to improve performance on an insert statement that places millions of rows into that table?
What would you do with an “in-doubt” distributed transaction?
What are the commands you’d issue to show the explain plan for “select * from dual”?
In what script is “snap$” created? In what script is the “scott/tiger” schema created?
If you’re unsure in which script a sys or system-owned object is created, but you know it’s in a script from a specific directory, what UNIX command from that directory structure can you run to find your answer?
How would you configure your networking files to connect to a database by the name of DSS which resides in domain icallinc.com?
You create a private database link and upon connection, fails with: ORA-2085: connects to . What is the problem? How would you go about resolving this error?
I have my backup RMAN script called “backup_rman.sh”. I am on the target database. My catalog username/password is rman/rman. My catalog db is called rman. How would you run this shell script from the O/S such that it would run as a background process?
Explain the concept of the DUAL table.
What are the ways tablespaces can be managed and how do they differ?
From the database level, how can you tell under which time zone a database is operating?
What’s the benefit of “dbms_stats” over “analyze”?
Typically, where is the conventional directory structure chosen for Oracle binaries to reside?
You have found corruption in a tablespace that contains static tables that are part of a database that is in NOARCHIVE log mode. How would you restore the tablespace without losing new data in the other tablespaces?
How do you recover a datafile that has not been physically been backed up since its creation and has been deleted. Provide syntax example.
how the oracle will be install on the sun sulsolaris os?,
which command will be run on the sun (os) systems ?
what is advantage over the window operating systems to sun soloris for the oracle point of view !!!
20. How would you begin to troubleshoot an ORA-3113 error?
ORA-03113 –> An unexpected end-of-file was processed on the communication channel. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down. This message could occur when any of the following commands have been issued:
ALTER SYSTEM KILL SESSION … IMMEDIATE
ALTER SYSTEM DISCONNECT SESSION … IMMEDIATE
SHUTDOWN ABORT/IMMEDIATE/TRANSACTIONAL
If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of Oracle Support Services.
Database is hung. Old and new user connections alike hang on impact. What do you do? Your SYS SQLPLUS session IS able to connect.
I think it looks like Archive log destination is full.
1.If you have seperate backup script for archive log please use that.
2.Or move some archive log fils to diffrent location to get free space.
3.Try to connect the DB now.
What is the cache hit ratio, what impact does it have on performance of an Oracle database and what is involved in tuning it?
Performance directly propotional to CacheHitRatio. Tune the DB buffer cache (allocating keep & recycle,adjusting the size of the different caches,pinning the sql,setting the buffer_pool storage parameter) & library cache (adjusting the shared_pool_size)
How would you go about verifying the network name that the local_listener is currently using?
LSNRCTL> show current_listener
Current Listener is LISTENER
LSNRCTL> show log_status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname.domain.net)(PORT=1521)))
LISTENER parameter “log_status” set to ON
The command completed successfully
LSNRCTL>
Dual is a table which is created by oracle along with the data dictionary. It consists of exactly one column whose name is dummy and one record. The value of that record is X. Like
SQL> desc dual
Name Null? Type
———————– ——– —————-
DUMMY VARCHAR2(1)
Assuming today is Monday, how would you use the DBMS_JOB package to schedule the execution of a given procedure owned by SCOTT to start Wednesday at 9AM and to run subsequently every other day at 2AM.
What spfile/init.ora file parameter exists to force the CBO to make the execution path of a given statement use an index, even if the index scan may appear to be calculated as more costly?
Answer:
optimizer_index_cost_adj parameter can be set to help CBO to decide an execution plan, which effects the speed of SQL query.
we can also make necessary changes to the following parameters to effect CBO performance:
optimizer_search_limit & optimizer_max_permutations
An automatic job running via DBMS_JOB has failed. Knowing only that “it’s failedâ€Â, how do you approach troubleshooting this issue?
Answer:
First try to run the job manually by executing
exec dbms_job.run(jobno);
it certainly fires message but most of the times it wll not refer to the actual problem. In this case try to run the actual procedure scheduled for this job (contents of “WHAT” filed for this job no in dbms_job table)
exec procedure_name;
This will give you the exact the failure message. Once u come up with the solution for the problem try fix this back to job que by executing the job once manually by
What query tells you how much space a tablespace named “test†is taking up, and how much space is remaining?
Answer:
select
(a.bytes-b.bytes)/1024/1024 “used space (MB)” ,
b.bytes/1024/1024 “Free space (MB)”
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name ) a,
(select tablespace_name,sum(bytes) bytes from dba_free_space group by tablespace_name ) b
where a.tablespace_name=b.tablespace_name
and a.tablespace_name=’TEST’
/
(OR)
select (a.bytes-b.bytes)/1024/1024 “used space MB” ,b.bytes/1024/1024 “Free space MB” from
(select sum(bytes) bytes from dba_data_files where tablespace_name=’ADMIN’) a,
(select sum(bytes) bytes from dba_free_space where tablespace_name=’ADMIN’) b
/
Database crashes. Corruption is found scattered among the file system neither of your doing nor of Oracle’s. What database recovery options are available? Database is in archive log mode.
Answer:
If the database allows u to identify the corrupted blcoks and are happened to be less in no then u can go for blcok wise recovery using RMAN.
other wise go for complete recovery.
Provide an example of a shell script which logs into SQLPLUS as SYS, determines the current date, changes the date format to include minutes & seconds, issues a drop table command, displays the date again, and finally exits.
Explain how you would restore a database using RMAN to Point in
Time?
Answer:
Shut down the target database if it is open
Mount the target database
Check the format of NLS_LANG & NLS_DATE_FORMAT variables
Start RMAN and connect to target database
run{
set until time ’specify the time u want to recover the database
upto’;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
}
What SQL query from v$session can you run to show how many sessions
are logged in as a particular user account?
Answer:
SELECT username, COUNT(*) count
FROM v$session
GROUP BY username;
Why does Oracle not permit the use of PCTUSED with indexes
This is because an index is a complex data structure, not randomly organized like a heap table ( a normal table u get when u type create table syntax) Data must go where it ‘belongs’. Unlike a heap where blocks are sometimes available for inserts, blocks are always available for new entries in an index. If the data belongs on a given block because of its values, it will go there regardless of how full or empty the block is.
PCTFREE will reserve space on a newly created index, but not for subsequent operations on it for much the same reason as why
PCTUSED is not used at all.
The same thigh is true even for index organized tables too…
[...] technology to “major” in, as to become truly adept in one field. Whether it’s Oracle, MySQL or SQL Server, it still requires tons of time and attention to master: After you’ve [...]
37 Comments on Oracle on Linux/Unix questions
how the oracle will be install on the sun sulsolaris os?,
which command will be run on the sun (os) systems ?
what is advantage over the window operating systems to sun soloris for the oracle point of view !!!
20. How would you begin to troubleshoot an ORA-3113 error?
ORA-03113 –> An unexpected end-of-file was processed on the communication channel. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down. This message could occur when any of the following commands have been issued:
ALTER SYSTEM KILL SESSION … IMMEDIATE
ALTER SYSTEM DISCONNECT SESSION … IMMEDIATE
SHUTDOWN ABORT/IMMEDIATE/TRANSACTIONAL
If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of Oracle Support Services.
42. ORA-2085
The problem may be that the databasa link nad database name is different.
Create the database link with same name as the database to which it connect
What would you use to improve performance on an insert statement that places millions of rows into that table?
1.Disable the constraint.
2.Drop the non-unique indexes.
3.Set Undo tablespace properly.
4.Create a big redo log groups.
What are the ways tablespaces can be managed and how do they differ?
1.Dictionary managed and locally managed.
Dictionary managed.
——————-
Here To allocate next extent it gets free blocks info from data dictionary every time, it’s a i/o contention issue.
Locally managed.
—————
In Locally managed tablespace free blocks information is available as bitmap in data file headers. No need to go dictionary.
SEGMENT SPACE MANAGEMENT AUTO option is still useful with LMT.
Regards,
Padmanathan
Database is hung. Old and new user connections alike hang on impact. What do you do? Your SYS SQLPLUS session IS able to connect.
I think it looks like Archive log destination is full.
1.If you have seperate backup script for archive log please use that.
2.Or move some archive log fils to diffrent location to get free space.
3.Try to connect the DB now.
How do you tell what your machine name is and what is its IP address?
1.uname -n
2.ifconfig -a
How would you extract DDL of a table without using a GUI tool?
Use DBMS_METADATA package and use GET_DDL procedure.
Padmanathan
What’s the benefit of “dbms_stats†over “analyze�
It gathers the table and index statistics and it will be used by Oracle Optimizer.
Which dictionary tables and/or views would you look at to diagnose a locking issue?
1.v$locked_object
2.v$lock
3.How can you tell how much space is left on a given file system and how much space each of the file system’s subdirectories take-up?
df -h
du -h
2. How do you find out from the RMAN catalog if a particular archive log has been backed-up?
issue LIST BACKUP BY FILE; and verify under the ‘List of Archived Log Backups’ for that particular file.
What is the cache hit ratio, what impact does it have on performance of an Oracle database and what is involved in tuning it?
Performance directly propotional to CacheHitRatio. Tune the DB buffer cache (allocating keep & recycle,adjusting the size of the different caches,pinning the sql,setting the buffer_pool storage parameter) & library cache (adjusting the shared_pool_size)
How would you go about verifying the network name that the local_listener is currently using?
LSNRCTL> show current_listener
Current Listener is LISTENER
LSNRCTL> show log_status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname.domain.net)(PORT=1521)))
LISTENER parameter “log_status” set to ON
The command completed successfully
LSNRCTL>
Check the semaphore and kernal params
dd13alyn /u01/oracle > cd /proc/sys/kernal
dd13alyn /proc/sys/kernel > cat sem
4096 16000 4096 150
dd13alyn /proc/sys/kernel > cat shmmax
3221225472
dd13alyn /proc/sys/kernel > cat shmmni
4096
dd13alyn /proc/sys/kernel > cat shmall
2621440
How do you tell what your machine name is and what is its IP address?
hostname
host -T hostname
How does Oracle guarantee data integrity of data changes?
Using Constraints & Database Triggers
How would you edit your CRONTAB to schedule the running of /test/test.sh to run every other day at 2PM?
00 14 */2 * * /test/test.sh > out.log 2>&1
this logs the process executed in test.sh to out.log even if the process errors out.
In which dictionary table or view would you look to determine at which time a snapshot or MVIEW last successfully refreshed?
ALL_MVIEW_REFRESH_TIMES
What’s the benefit of “dbms_stats†over “analyze�
The answer posted is wrong.
analyze can be used to gather statistics for tables and indexes as well
analyze table T compute statistics
analyze index i compute statistics
Here are the main differences:
with dbms_stats you can export/import stats
with dbms_stats you can gather system stats
with dbms_stats you can set stats
with dbms_stats you can gather statistics of STALE tables or indexes
with dbms_stats you can gather local partition staistics (more granularity)
with dbms_stats you can gather statistics for external tables
Explain the concept of the DUAL table?
Dual is a table which is created by oracle along with the data dictionary. It consists of exactly one column whose name is dummy and one record. The value of that record is X. Like
SQL> desc dual
Name Null? Type
———————– ——– —————-
DUMMY VARCHAR2(1)
SQL> select * from dual;
D
-
X
Assuming today is Monday, how would you use the DBMS_JOB package to schedule the execution of a given procedure owned by SCOTT to start Wednesday at 9AM and to run subsequently every other day at 2AM.
declare
jno number;
begin
dbms_job.submit(JNo, ’scott.procedure_name;’, TRUNC(SYSDATE+2)+9/24, ‘TRUNC(SYSDATE+1)+14/24′);
dbms_output.put_line(jno);
end;
/
What view(s) do you use to associate a user’s SQLPLUS session with his o/s process?
Answer:
V$session and v$process(spid is the os process)
What spfile/init.ora file parameter exists to force the CBO to make the execution path of a given statement use an index, even if the index scan may appear to be calculated as more costly?
Answer:
optimizer_index_cost_adj parameter can be set to help CBO to decide an execution plan, which effects the speed of SQL query.
we can also make necessary changes to the following parameters to effect CBO performance:
optimizer_search_limit & optimizer_max_permutations
How would you best determine why your MVIEW couldn’t FAST REFRESH?
Answer: from dba_mview_refresh_times
An automatic job running via DBMS_JOB has failed. Knowing only that “it’s failedâ€Â, how do you approach troubleshooting this issue?
Answer:
First try to run the job manually by executing
exec dbms_job.run(jobno);
it certainly fires message but most of the times it wll not refer to the actual problem. In this case try to run the actual procedure scheduled for this job (contents of “WHAT” filed for this job no in dbms_job table)
exec procedure_name;
This will give you the exact the failure message. Once u come up with the solution for the problem try fix this back to job que by executing the job once manually by
exec dbms_job.run(jobno);
What query tells you how much space a tablespace named “test†is taking up, and how much space is remaining?
Answer:
select
(a.bytes-b.bytes)/1024/1024 “used space (MB)” ,
b.bytes/1024/1024 “Free space (MB)”
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name ) a,
(select tablespace_name,sum(bytes) bytes from dba_free_space group by tablespace_name ) b
where a.tablespace_name=b.tablespace_name
and a.tablespace_name=’TEST’
/
(OR)
select (a.bytes-b.bytes)/1024/1024 “used space MB” ,b.bytes/1024/1024 “Free space MB” from
(select sum(bytes) bytes from dba_data_files where tablespace_name=’ADMIN’) a,
(select sum(bytes) bytes from dba_free_space where tablespace_name=’ADMIN’) b
/
Database crashes. Corruption is found scattered among the file system neither of your doing nor of Oracle’s. What database recovery options are available? Database is in archive log mode.
Answer:
If the database allows u to identify the corrupted blcoks and are happened to be less in no then u can go for blcok wise recovery using RMAN.
other wise go for complete recovery.
Provide an example of a shell script which logs into SQLPLUS as SYS, determines the current date, changes the date format to include minutes & seconds, issues a drop table command, displays the date again, and finally exits.
Answer:
The contents of shell script
sqlplus ‘/as sysdba’
select sysdate from dual;
select to_char(sysdate,’DD-MM-YYYY HH24:MM:SS’) from dual;
drop table table_name;
select sysdate from dual;
exit;
EOF
Explain how you would restore a database using RMAN to Point in
Time?
Answer:
Shut down the target database if it is open
Mount the target database
Check the format of NLS_LANG & NLS_DATE_FORMAT variables
Start RMAN and connect to target database
run{
set until time ’specify the time u want to recover the database
upto’;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
}
Which environment variables are absolutely critical in order to run
the OUI?
Answer:
ORACLE_HOME, ORACLE_SID,ORACLE_BASE,PATH & LD_LIBRARY_PATH
What SQL query from v$session can you run to show how many sessions
are logged in as a particular user account?
Answer:
SELECT username, COUNT(*) count
FROM v$session
GROUP BY username;
Why does Oracle not permit the use of PCTUSED with indexes
This is because an index is a complex data structure, not randomly organized like a heap table ( a normal table u get when u type create table syntax) Data must go where it ‘belongs’. Unlike a heap where blocks are sometimes available for inserts, blocks are always available for new entries in an index. If the data belongs on a given block because of its values, it will go there regardless of how full or empty the block is.
PCTFREE will reserve space on a newly created index, but not for subsequent operations on it for much the same reason as why
PCTUSED is not used at all.
The same thigh is true even for index organized tables too…
What would you do with an “in-doubt†distributed transaction?
Rollback.
What are the commands you’d issue to show the explain plan for “select * from dual�
Answer:
set autotrace traceonly explain;
select * from dual;
What’s the benefit of “dbms_stats†over “analyze�
dbms_stats can be done though the table is being used or locked but analyze cannot
One Trackback
[...] technology to “major” in, as to become truly adept in one field. Whether it’s Oracle, MySQL or SQL Server, it still requires tons of time and attention to master: After you’ve [...]