dbaXchange.com


Database Resources
- RDBMS Server
-
Database Administration
-
Performance Tuning
-
Backup and Recovery
-
Oracle Utilities

-
SQL and PLSQL
-
Network Administration
-
Client Applications
-
Miscellaneous Stuff

Oracle's technology Sites

http://technet.oracle.com

http://metalink.oracle.com

http://asktom.oracle.com/

http://www.oramag.com


Search this site or the web


Site search Web search powered by FreeFind



 

Category     : Database Resources -> RDBMS Server

DB Version  : Oracle 8i / 9i

OS Details    : Sun Solaris9

 

Ever wonder as to how to stop a process temporarily that's taking up too much of the machine's resources so that the important batch jobs complete on time? The preferred method within oracle for resource management is to use resource limits and resource manager plans that are available starting oracle8i. If those options have not been configured for your instance then you can still control process priorities indirectly through the use of oracle's oradebug utility.

Using this method, a process can be suspended indefinitely until you resume it again. Here's how it works:

Step 1:

Identify the oracle session that's taking up too much of the machine's resources and get the process id for it using this query:

SQL> select spid from v$process a,v$session b where a.addr = b.paddr and b.sid=<session id to be suspended>;

Step 2:

Have oradebug utility identify the process id:

SQL> oradebug setospid <value from the query above>

Step 3:

Suspend the process indefinitely:

SQL> oradebug suspend

Step 4:

Allow the other processes to complete and after they are done processing, resume the suspended process:

SQL> oradebug resume