Thursday, March 10, 2016

backing up Logical Logs to file (compressed)


LTAPEDEV /opt/informix/backup/logs

# BACKUP_FILTER       - Specifies the pathname of a filter program
# RESTORE_FILTER      - Specifies the pathname of a filter program
BACKUP_FILTER 'pigz -p 8'
RESTORE_FILTER gunzip

Restart listener dynamically

onmode -P start

Monday, March 7, 2016

memory usage per session

sysscblst
- sid
- username
- hostname
- memtotal
- memused

Wednesday, July 27, 2011

Installer issues v11.5

I've seen error during an installation of informix v11.5 specially during the phase Branding Installed Files: "java.text.ParseException: Unparseable date"

if you see that, try to install it with the following options:

./installserver -javahome none –console

./ids_install -javahome -console

Also I've seen the following error during an 11.5.FC8W2 installation on solaris 10 in a local zone:
Creating uninstaller...
id: illegal option -- u
Usage: id [-ap] [user]
/opt/informix/kk/gskit/installgskit: test: argument expected

apparently the script is using a wrong "id" command and IBM considers it as a cosmetic error

Thursday, January 20, 2011

Spot mutex locks

#!/bin/ksh
#set -x
## param 1: min number of times a waiter has to appear on the list to be considered as a mutex lock
## param 2: consecutive number of times to sample "output onstat -g lmx"
## param 3: wait time between samplings
## it only shows the session holding a mutex in a partition
## recomendation: waiters.sh 2 5 5


_npollings=1
_samplings=$2
_interval=$3

while true
do
while [ _npollings -lt $_samplings ]
do
onstat -g lmx
((_npollings+=1))
done | awk -v max_waiters=$1 '
BEGIN { _alertit = 0 }
/^[0-9]/ {
if ($3 in holdinglock)
holdinglock[$3]++;
else
holdinglock[$3]=1;

}

/^[ \t]+/ {
if ( $1 in waiters)
waiters[$1]++;
else
waiters[$1]=1;
}
END {
for (_waiter in waiters)
{
if (waiters[_waiter] >= max_waiters)
_alertit=1;
}
if (_alertit == 1)
for (_holder in holdinglock) {
if ( substr(_holder,1,3) == "pt_" )
printf "%s\n",substr(_holder,4);
}
}
' | while read _holder
do
date
echo "SELECT FIRST 1 t.dbsname, t.tabname FROM systabnames t where lower(hex(t.partnum)) like \"%"$_holder"%\";" | dbaccess sysmaster
done| tee -a new_mutex_counts.out
sleep $_interval
done

Monday, December 20, 2010

Sessions doing sorts to disk

select username,
syssesprof.sid,
total_sorts,
dsksorts,
max_sortdiskspace
from syssesprof, syssessions
where syssesprof.sid = syssessions.sid
order by max_sortdiskspace desc

You can use a SQL statement to obtain information regarding each of the temporary tables that are currently created




    SELECT t.tabname ,t.dbsname,t.owner,
    DECODE(d.is_logging,1,"Y","N") AS db_with_log,
    s.name AS dbspace,
    DBINFO("UTC_TO_DATETIME",ti_created) AS created,
    DECODE(hex(mod(ti_flags,256)/16),6,"Y","N") AS
    table_using_log,ti_npused AS num_usedpages,
    ti_nptotal AS num_pages
    FROM sysmaster:systabnames t, sysmaster:systabinfo i,
    sysmaster:sysdbspaces s, sysmaster:sysdatabases d
    WHERE t.partnum=ti_partnum AND
    d.name=t.dbsname AND
    s.dbsnum=TRUNC(t.partnum/1048576) AND
    hex(mod(ti_flags,256)/16) IN ( 6,2 )