Post

Survivor DB2

Survivor DB2

Comando útiles de db2.

Mostrar bases de datos disponibles:

1
db2 list active databases

Mostrar configuracion de la base de datos:

1
db2 get db cfg for MIBBDD

Cambiar el archivado de logs a disco:

1
db2 update db cfg for MIBBDD using LOGARCHMETH1 DISK:/ruta/a/alguna/parte

Mostrar usuarios de una base de datos:

1
2
MySQL     : SELECT User,Host FROM mysql.user;
PostgreSQL: SELECT * FROM pg_user;

Mostrar las tablas de la base de datos:

1
db2 list tables for all

Mostrar las tablas de la base de datos que contengan COSA en su nombre:

1
db2 "select * from syscat.tables where tabname like '%COSA%' order by tabname 

Verificar backup completo de los logs:

1
db2adutl query full db BBDD

Verificar fecha y hora de los logs:

1
db2adutl query logs

Sacar roles, grants, mascaras si las hay etc…de la BBDD o de una tabla dada, o tablespace:

1
2
db2look -d BBDD -z ESQUEMA -c -r -e -x -t TABLA/OBJETOABUSCAR -nofed
db2look -d BBDD -z ESQUEMA -e -m 

Uso del log transaccional:

1
db2 "select * from sysibmadm.log.utilization"

Ver si hay alguna transacción pendiente/en duda/enganchada:

1
2
3
4
5
6
7
8
9
db2 list indoubt transactions with prompting 
r 1 (Rollback, Forguet)

db2 get snapshot for application applid *LOCAL.instancia.1234556789

db2pd -transaction -db BBDD
db2pd -locks -db BBDD
db2p -transactions tran=222 -db BBDD
db2 force applications \(3333\)

Ver el estado de una tabla:

1
db2 load query table ESQUEMA.TABLA

Si necesita un reorg:

1
db2 reorg table ESQUEMA.TABLA

Si tiene un problema de integridad:

1
db2 set integrity for TABLA immediate checked

Si la tabla esta en load pending:

1
2
db2 "load from /RUTA/DEL/FICHERO/DONDE/HACELA/CARGA/ of del terminate into ESQUEMA.TABLA copy yes use SISTEMAARCHIVADO"
db2 "load from /RUTA/DEL/FICHERO/DONDE/HACELA/CARGA/ of del terminate into ESQUEMA.TABLA copy yes to /dev/null" <-- Si nos da igual que no se guarde en el log

Si esta en load pending, pero no hay ningun fichero de carga:

1
2
db2 "load from /dev/null of del terminate into ESQUEMA.TABLA copy yes use SISTEMAARCHIVADO"
db2 "load from /dev/null of del terminate into ESQUEMA.TABLA copy yes to /dev/null" <-- Si nos da igual que no se guarde en el log

Si la tabla está en estado backup pending:

1
db2 backup databse BBDD tablespace \NOMBRETABLESPACE1,NOMBRETABLESPACE2\ online use SISTEMAARCHIVADO

Operativa con tablas y tablespaces.

Obtener tablas y su tamaño en kilobytes, megabytes y gigabytes (sin índices):

1
2
3
4
5
6
7
8
db2 "SELECT SUBSTR(TABSCHEMA,1,18) TABSCHEMA, SUBSTR(TABNAME,1,30) TABNAME, 
(DATA_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) AS TOTAL_SIZE_IN_KB,
(DATA_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024 AS TOTAL_SIZE_IN_MB, 
(DATA_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) / (1024*1024) AS TOTAL_SIZE_IN_GB 
FROM SYSIBMADM.ADMINTABINFO 
WHERE TABSCHEMA='MIESQUEMA' 
AND TABNAME IN (SELECT TABNAME FROM SYSCAT.TABLES WHERE TBSPACE='MITABLESPACE') 
ORDER BY 4"

Obtener tablas y su tamaño en kilobytes, megabytes y gigabytes (incluyendo índices):

1
2
3
4
5
6
7
8
db2 "SELECT SUBSTR(TABSCHEMA,1,18) TABSCHEMA, SUBSTR(TABNAME,1,30) TABNAME, 
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) AS TOTAL_SIZE_IN_KB,
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024 AS TOTAL_SIZE_IN_MB, 
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) / (1024*1024) AS TOTAL_SIZE_IN_GB 
FROM SYSIBMADM.ADMINTABINFO 
WHERE TABSCHEMA='MIESQUEMA' 
AND TABNAME IN (SELECT TABNAME FROM SYSCAT.TABLES WHERE TBSPACE='MITABLESPACE') 
ORDER BY 4"

Ordenado por tabla y tablespaces Obtener tamaño de las tablas en relación con su tablespace:

1
2
3
4
5
6
7
8
9
db2 "SELECT SUBSTR(a.TABSCHEMA,1,18) TABSCHEMA, SUBSTR(a.TABNAME,1,30) TABNAME, 
substr(b.tbspace,1,20) tbspace, 
(a.DATA_OBJECT_P_SIZE + a.LONG_OBJECT_P_SIZE + a.LOB_OBJECT_P_SIZE + a.XML_OBJECT_P_SIZE) AS TOTAL_SIZE_IN_KB,
(a.DATA_OBJECT_P_SIZE + a.LONG_OBJECT_P_SIZE + a.LOB_OBJECT_P_SIZE + a.XML_OBJECT_P_SIZE)/1024 AS TOTAL_SIZE_IN_MB, 
(a.DATA_OBJECT_P_SIZE + a.LONG_OBJECT_P_SIZE + a.LOB_OBJECT_P_SIZE + a.XML_OBJECT_P_SIZE) / (1024*1024) AS TOTAL_SIZE_IN_GB 
FROM SYSIBMADM.ADMINTABINFO a, SYSCAT.TABLES b 
WHERE a.TABSCHEMA='MIESQUEMA' AND b.TABSCHEMA='MIESQUEMA' AND a.tabname=b.tabname 
ORDER BY 5"

This post is licensed under CC BY 4.0 by the author.