Tuesday, September 6, 2011

When To Use Database Resident Connection Pooling

Database resident connection pooling is useful when multiple clients access the database and when any of the following apply  :
  • A large number of client connections need to be supported with minimum memory usage.
  • The client applications are similar and can share or reuse sessions.
  • Applications are similar if they connect with the same database credentials and use the same schema.
  • The client applications acquire a database connection, work on it for a relatively short duration, and then release it.
  • Session affinity is not required across client requests.
  • There are multiple processes and multiple hosts on the client side.
Advantages of Database Resident Connection Pooling : Using database resident connection pooling provides the following advantages :
  • Enables resource sharing among multiple middle-tier client applications.
  • Improves scalability of databases and applications by reducing resource usage.
  • Provides pooling for architectures with multi-process, single-threaded application servers.

Enjoy   :-) 


Suspending and Resuming a Database

The ALTER SYSTEM SUSPEND  statement halts  all  input  and  output  (I/O)  to  datafiles (file header and file data)  and  control files. The  suspended  state  lets  us  back  up  a database  without  I/O interference. When  the database  is suspended  all  preexisting I/O operations are  allowed  to complete and any  new  database  accesses  are  placed  in a  queued state. The  suspend   command is  not  specific  to  an  instance. In  an  Oracle  Real  Application  Clusters  environment, when  we issue the  suspend command  on  one  system,  internal  locking  mechanisms  propagate  the  halt request across  instances, thereby  quiescing  all active   instances  in  a  given cluster. However, if someone starts  a  new instance another instance is being suspended, the new instance will not be suspended .

Using  the  ALTER SYSTEM RESUME  statement to resume normal database operations. The SUSPEND and  RESUME commands  can  be  issued  from  different  instances. For example, if instances 1, 2, and 3 are  running, and  we  issue  an  ALTER SYSTEM  SUSPEND  statement  from  instance 1, then  we  can issue  a RESUME  statement from instance 1, 2, or 3 with the same effect. The suspend/resume feature is useful  in systems that allow us to mirror a disk or file  and  then split  the  mirror, providing an alternative  backup  and  restore  solution. If we  use  a system  that is  unable to split a mirrored disk from an existing database while writes are occurring, then we can use the suspend/resume feature to facilitate the split. 

The  suspend/resume  feature is  not a  suitable  substitute  for  normal  shutdown  operations, because  copies  of a  suspended  database can  contain  uncommitted  updates. The  following statements  illustrate suspend and resume usage. The V$INSTANCE view is queried to confirm database status.

SQL> alter system suspend;
System altered

SQL> select database_status from v$instance;
DATABASE_STATUS
------------------------
SUSPENDED

SQL> alter system resume ;
System altered

SQL> select database_status from v$instance ;
DATABASE_STATUS
-------------------------
ACTIVE


Enjoy         :-) 


V$ Views over the years

The  Dynamic  Performance Views are  very  helpful  in  monitoring our  database  for real  time performance. The dynamic  performance  views (we  will call  them the V$ views to shorten  the  name)  are real-time or almost real time views into the guts of Oracle.  

Scripts  are  now  floating  around  which  take  advantage  of  these  views  to  supply  detailed  information about  what  is  going  on  in  the SGA  in  near-real  time. It  is  not  uncommon  to  see  scripts  which  join v$session  to  v$sqlarea  to  v$sqltext  to  get  details  of  what  SQL  is  being  run  by  which  user  right  now  and  how expensive that SQL  is.

The  V$ Views  are  like the  speedometer and  the  tachometer in our car, they  tell  us  how  fast  the  car (or the database) is  going (or not), or  like  the timing  light  that  helps  us  to  adjust  the timing .  They provide  almost  immediate  feedback  as  to  the  condition  of  the  database. Below  are  the  stats  which shows how rapidly oracle dynamic views are increasing. 

Version                 V$ Views          X$ Tables
---------                  -----------            -----------
6                              23                    ? (35)
7                              72                      126
8.0                           132                     200
8.1                           185                     271
9.0                           227                     352
9.2                           259                     394
10.1.0.2                   340 (+31%)        543 (+38%)
10.2.0.1                   396                     613
11.1.0.6                   484 (+22%)        798 (+30%)


Enjoy        :-)