Commandes DB2

From Tuxunix
Jump to: navigation, search
  • Récupérer les informations de la version de DB2
db2licm -l
  • Récupérer les informations de configuration de DB2
db2 get dbm cfg
  • Récupérer les informations de configuration de la base de données XXXX
db2 get db cfg for XXXX
  • Afficher les requêtes SQL
db2 get snapshot for dynamic sql on XXXX
  • Afficher l'état de la mémoire DB2
db2mtrk -i -d -v -r 10

ajouter une adresse email pour recevoir les mails d'alertes (se connecter avec l'utilisateur db2inst1 avec putty)

db2cc -hc
  • Rotation des logs de débug
db2diag -A
  • Afficher l'historique des logs
db2diag -H
  • Afficher les logs d'une date précise
db2diag -t 2009-08-26
  • Correspondance message d'erreur DB2
db2 ? sql1218
  • Surveillance DB2
db2top
  • Exécution des requêtes via un fichier
time db2 -tf xxx.sql
  • Afficher la version db2
#> db2ls
  • Afficher la version db2text
#> db2nsels
  • Lister les bases disponibles
#> db2 list db directory
  • Lister les Tables et les vues
#> db2 list tables
  • Lister les indexes
#> db2 "SELECT NAME, TBCREATOR FROM SYSIBM.SYSINDEXES where TBCREATOR = 'nomSchema'"
  • Ajouter les droits SELECT à un utilisateur sur un schéma précis :
#!/bin/sh

DBNAME="test"
SCHEMANAME="TOTO"
USERNAME="loginTest"

db2 "CONNECT TO $DBNAME"
TABLES=`db2 -x "SELECT tabname FROM syscat.tables WHERE tabschema=UPPER('$SCHEMANAME')"`
for TABLENAME in $TABLES;
  do db2 "GRANT SELECT ON $SCHEMANAME.$TABLENAME TO USER $USERNAME"
done
db2 "DISCONNECT $DBNAME"
  • Description de table
#> db2 describe table syscat.tables
                               Data type                     Column
Column name                     schema    Data type name      Length     Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
TABSCHEMA                       SYSIBM    VARCHAR                    128     0 No
TABNAME                         SYSIBM    VARCHAR                    128     0 No
OWNER                           SYSIBM    VARCHAR                    128     0 No
OWNERTYPE                       SYSIBM    CHARACTER                    1     0 No
TYPE                            SYSIBM    CHARACTER                    1     0 No
STATUS                          SYSIBM    CHARACTER                    1     0 No
BASE_TABSCHEMA                  SYSIBM    VARCHAR                    128     0 Yes
  • Liste des processus en background
#> db2pd -utilites
  • Arrêter un processus DB2
#> db2 list applications show detail | grep Backup

Récuperer le "Application Id", puis stopper le process :

#> db2 "force application (application_id)"
  • Lister le schéma de la table
#> db2look -d nombase >fichier.out
  • Connaitre le numéro de la semaine en cours
#> db2 "values week (current timestamp)"
  • Exporter la configuration DB2 sur un autre environnement
#> db2cfexp exportConfDb2.conf template
  • Importer la configuration DB2 sur un autre environnement

Attention à modifier le nom du HOST (DB2SYSTEM) avant l'import (si sur machine différente avec un nom différent)

#> db2cfimp exportConfDb2.conf
  • Quelques requêtes :
#> db2 "CREATE TABLE PERSON (SSN INTEGER NOT NULL, NAME CHAR (30))"
#> db2 "insert into PERSON (SSN, NAME) VALUES (1, 'TERRIER')"
#> db2 "select NAME from PERSON"
#> db2 -x "select NAME from PERSON"
#> db2 create index SCHEMA.IX_NOM_1 on SCHEMA.TABLE (
 ID_UNIQ_SCHEMA asc )
collect statistics  ALLOW REVERSE SCANS;
#> db2 alter table  SCHEMA.ENREGISTREMENT
  add constraint FK_ACTION_SCHEMA foreign key (SCHEMA_ID)
     references SHCEMA.TABLE (SCHEMA_ID)
     on delete restrict on update restrict;
  • Commit/Rollback

Un commit et un rollback prend effet seulement sur la connexion active!!

ScreenCommitRollbackDb2.jpg


  • Liste les tables en état pending
#> db2 "select tabschema, tabname, load_status from SYSIBMADM.ADMINTABINFO where TABSCHEMA = 'nomSchema'"