Wednesday, June 8, 2011

Which CPU is servicing the interupts

Issue the mpstat  command. Refer to intr and xcal columns for interrupts. Usually when the value of these two columns are equal, it is network interrupt.

To find out which CPU is servicing network (NIC) and IO (HBA) interrupts you can also  invoke the following command

intrstat 10 10

Create Statspack

"snapshot" is  snapshot of database statistics and performance information as of a specific point in time.

There is no such thing as "comparing two snapshots". To get information about database activity and/or performance, you have to generate the StatsPack report for the duration between two snapshots.
Thus, for example, a StatsPack report for the duration between Snapshot 1 and Snapshot 2 shows activity and performance information for that time duration.

Script to take snapshot:

echo "connect to sql plus and taking a snap"

sqlplus "/nolog" << !
connect perfstat/perfstat
variable snap_before number ;
begin :snap_before :=statspack.snap; end;
/
print snap_before
!
sleep 60
echo "starting second snapshot"

sqlplus "/nolog" << !
connect perfstat/perfstat
variable snap_after number ;
variable snap_before number ;
begin
:snap_after := statspack.snap ;
end ;
end ;
/
print snap_after ;
begin
select :snap_after -1 into :snap_before from dual ;
end ;
/

define begin_snap=:snap_before
define end_snap=:snap_after
define report_name=snapshot
@$ORACLE_HOME/rdbms/admin/spreport

Cluster verification Utility

  • To view what prerequisites are failing
    • ./runcluvfy.sh comp sys -n  t5120-241-06,t5220-241-03 -p crs
  • To generated a fixup script in /tmp/ directory to fix the prerequisites that are failing
    • ./runcluvfy.sh stage -pre crsinst -fixup -fixupdir /tmp/ritu.sh  -n t5120-241-06,t5220-241-03
  • Additional commands:
    • ./runcluvfy.sh -help
    • ./runcluvfy.sh stage -list or stage -help
    •  ./runclvfy.sh comp -list or comp -help
    • System requirement verification
      • ./runcluvfy.sh comp sys -n {node list} -p {crs|database} -verbose
    • Storage verification
      • ./runcluvfy.sh comp ssa -n {node list}  -s {storageid_list] - verbose
  • Detailed Documentation:

Monday, May 9, 2011

WARNING: oradism not setup correctly in alert log

If you see the following warning in alert file :

WARNING: -------------------------------
WARNING: oradism not set up correctly.
Dynamic ISM can not be locked. Please
setup oradism, or unset sga_max_size.
[diagnostic 0, 16, 64882]
----------------------------------------

the solution is as under:

1- cd $ORACLE_HOME/bin

2- chmod 4550 oradism
3- chmod g+s oradism
4- chown root:dba oradism
5- Bounce the database

Refer to Metalink note 374367.1 for additional info.

Tuesday, April 5, 2011

Sort Area in PGA

If parallel servers are disabled, than the max size of the sort area is determined by _smm_max_size parameter. The value is in KB. The _pga_max_size is the max size of a single session pga. It is expressed in bytes.

You can view this paramter as under:
select a.ksppinm name, b.ksppstvl value from sys.x$ksppi a,sys.x$ksppcv b where
a.indx = b.indx and a.ksppinm='_smm_max_size';
select a.ksppinm name, b.ksppstvl value from sys.x$ksppi a,sys.x$ksppcv b where
a.indx = b.indx and a.ksppinm='_pga_max_size';
show parameters 'pga%';
For 10gR2:

When max_parallel_servers is set to 0:

If pga_aggr_target < 500mb , _smm_max_size is set to 20% of PAT (pga_aggr_target)
if PAT is between 500mb and 1gb , _smm_max_size is set to 100M
if PAT > 1GB, _smm_max_size is set to 10% of PAT

When parallel operations are enabled

Upper bound limited to 50% of PAT/DOP

when DOP <=5, _smm_max_size is used
when DOP > 5 _smm_px_max_size/DOP limits the max memory usuage

_pga_max_size defaults to 2* _smm_max_size

Thursday, March 24, 2011

Recipes

Meetha pooda or sweet pancake is made in many parts of India including Punjab and Rajasthan. In Punjab, it is served as breakfast. You can also make it as an anytime sweet.
Recipe of meetha pooda (chilla)
1 cup whole wheat flour (atta)
1/2 cup sugar
1/2 tsp saunf (fennel) powder
2-3 green cardamom (hari elaichi) - crushed
Ghee (clarified butter) or oil to shallow fry
1. In a bowl, mix all the ingredients except oil or ghee. Add water slowly mixing with other hand. Add enough water to make lump free batter of consistency thicker than that of pakoda (fritters). Beat well.
2. Heat a non- stick tava (griddle). Grease it and turn the heat to low. Pour a ladlefull or 2 tablespoon batter in the center of the tava.
3. Spread it gently in the outward circular motion like you would do for a chilla or an omellete. Spread it with the back of a ladle (karchhi). Turn the heat to medium.
4. After 2 minutes, drizzle some oil or ghee on the pooda. Remove it with the help of a wide, thin spatula and turn over.
5. Cook the other side also for 2 minutes and remove from the tava. Your meetha pooda is ready. Similarly make other poodas from rest of the batter.
Always spread the pooda on low heat and cook it on medium heat.
If the first pooda sticks to the tava, don’t get disheartened. It usually happens with the first puda. As the tava get seasoned, rest of the meetha puda will turn out fine.

Out Of Memory Error

Execute prctl $$ command to  use the current shell process to determine resource limits


A threshold value on a resource control constitutes a point at which local actions can be triggered or global actions, such as logging, can occur.
Each threshold value on a resource control must be associated with a privilege level. The privilege level must be one of the following three types:
basic
Can be modified by the owner of the calling process.
privileged
Can be modified by the current process (requiring sys_resource privilege) or by prctl(1) (requiring proc_owner privilege).
system
Fixed for the duration of the operating system instance.
A resource control is guaranteed to have one system value, which is defined by the system, or resource provider. The system value represents how much of the resource the current implementation of the operating system is capable of providing.
Any number of privileged values can be defined, and only one basic value is allowed. Operations that are performed without specifying a privilege value are assigned a basic privilege by default.

If you see "Out of memory errors" , you may want to enable logging of resource control limit threshold.
By default, Solaris 10  does not  log resource limit threshold notifications. You can see whether they are enabled or not by using the “rctladm” command:

To turn on the syslog for "project.max-shm-memory", issue the following:
rctladm -e syslog project.max-shm-memory



To set the process.max-address.space to 20GB, add the following line to /etc/project
         

user.ben:12345::::process.max-address.space=(privileged,20000000000,deny)

An example of /etc/project:
user.oracle:100::::process.max-address-space=(privileged,40240000000,deny);proce
ss.max-data-size=(priv,10737418240,deny);process.max-sem-nsems=(priv,8192,deny);
process.max-stack-size=(priv,10737418240,deny);project.max-file-descriptor=(priv
,65536,deny);project.max-sem-ids=(priv,100,deny);project.max-shm-ids=(priv,8192,
deny);project.max-shm-memory=(privileged,2199023255552,deny)




This setting however only takes effect for new processes and not for existing process.

ie prctl $$ (will continue to show old value for process.max-address-space)
'
$ su oracle -c 'sh -c "prctl $$"' (will show the new value as you are starting a new shell)
or ...su oracle -c 'sh -c "xterm"'