Monday, 26 May 2014

DB2 V9.7 Pending Free Pages

Pending free pages is a big headache in db2 v9.7. This is with automatic storage tablespaces.
Pending free pages does not release space back to File system.

Following query gives the top 25 tablespaces based on TBSP_PENDING_FREE_PAGES in desc order.

select char(TBSP_NAME,20) TBSP_NAME, sum(TBSP_USED_PAGES)TBSP_USED_PAGES, sum(TBSP_FREE_PAGES)TBSP_FREE_PAGES, sum(TBSP_TOTAL_PAGES)TBSP_TOTAL_PAGES, sum(TBSP_PAGE_TOP) TBSP_PAGE_TOP, sum(TBSP_PENDING_FREE_PAGES)TBSP_PENDING_FREE_PAGES FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t where TBSP_CONTENT_TYPE NOT IN  ('USRTEMP','SYSTEMP') group by tbsp_name order by  TBSP_PENDING_FREE_PAGES desc fetch first 25 rows only

So far, DB2 does not give any option which application is holding the pending free pages so that it can be killed.  Raised this concern with IBM labs.

So far I was successful in the following ways

1. take the back of tablespace
2. db2_all "db2 connect to <dbname> ;db2 list tablespaces show detail;db2 terminate;" > /dev/null
3. Sometimes stopping eventmonitors also help

Below two methods I use to verify if the extent movement is in lock wait status.

1. db2 "select * from sysibmadm.SNAPLOCKWAIT"
2.db2 list applications global show detail | grep <instanceName> | grep -v db2fw | grep -v db2bp | grep -i db2ExtMov 

Wednesday, 7 May 2014

Saturday, 19 April 2014

DB2 v9.7 - SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2

xx Apr 20xx 09:52:06,363 [quartzScheduler_Worker-3] ERROR org.hibernate.util.JDBCExceptionReporter - DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-206;42703;THIS_.ISO_CNTRY_CD, DRIVER=3.50.152
xx Apr 20xx 09:52:06,363 [quartzScheduler_Worker-3] ERROR org.hibernate.util.JDBCExceptionReporter - DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-206;42703;THIS_.ISO_CNTRY_CD, DRIVER=3.50.152


Users were facing this issue after deployment. Tired doing rebind package but it did not work.


Later realized that ISO_CNTRY_CD column does not exist in the table.  they changed the column name in the job and issue got resolved.

Tuesday, 28 January 2014

Partition detach hanged in DB2 v9.7

I accidentally issued folloiwng command twice and it was showing partition detach status for a while for small table.

alter table T1 detach partition PART5 intoT1_02

db2 list utilities was showing AIC was running for 90 mins..

db2 list utilities show detail | grep -p -i detach
ID                               = 1208
Type                             = ASYNCHRONOUS PARTITION DETACH
Database Name                    = DB1
Partition Number                 = 0
Description                      = Finalize detach for partition '9' of table 'T1' and make table 'T1_02' available
Start Time                       = 01/28/2014 10:48:37.682113
State                            = Executing
Invocation Type                  = Automatic
Progress Monitoring:
      Description                = Waiting for old access to the partitioned table to complete.
      Start Time                 = 01/28/2014 13:08:40.480134

db2pd -util

Database Partition 0 -- Active -- Up 93 days 14:48:44 -- Date 2014-01-28-13.18.33.334414

Utilities:
Address            ID         Type                   State      Invoker    Priority   StartTime           DBName   NumPhases  CurPhase   Description
0x0780000001FAE4C0 1208       ASYNCHRONOUS PARTITION DETACH 1          1          0          Tue Jan 28 10:48:37 DB1  -1          -1          Finalize detach for partition '9' of table 'T1' and make table 'T1_02' available

Progress:
Address            ID         PhaseNum   CompletedWork                TotalWork                    StartTime           Description

I killed the hanging application as per the following link..
http://www-01.ibm.com/support/docview.wss?uid=swg21601085

Hope this helps..

Sunday, 26 January 2014

Introduction to Unix LVM

the following link gives nice introduction to LVM aka logical volume manager

unix LVM

http://www.youtube.com/watch?v=BysRGDgqtwY

Friday, 24 January 2014

DB2 V9.7 - db2fmpterm

This is new for me. Today i encountered high memory usage by fenced user id in V9.7 FP 6 running on AIX.
FMP process count is unusually high and contributing to high memory usage.

We restarted instance to fix the issue. However, meanwhile IBM suggested to use
" db2fmpterm <pid of offending> " to kill fmp process rather than recycling the instance.

Hope this helps.

Sunday, 19 January 2014

DB2 V9.7 - Reduce Tablespace Size

I have got an opportunity to work with different versions of DB2 LUW environments.
This is what I follow if I need to reduce the size/hwm of tablespace.

For TBS migrated to V9.7 -with Automatic storage  - alter tablespace tbs reduce
For TBS migrated to V9.7 - without Automatic storage  - alter tablespace tbsname reduce (all 1000)   - 1000 is no.of pages
For TBS created in V9.7 - Automatic storage - alter tablespace tbsname reduce max
For TBS created in V9.7 - without Automatic storage - alter tablespace tbsname lower high water mark

Monitor the progress in V9.7 using below command
select varchar(tbsp_name, 15) as tbsp_name, tbsp_state from table (mon_get_tablespace('TBS1',-2)) as t;



Hope this helps.