jeudi 23 octobre 2014

Résoudre les conflits de réplication Mysql

En fonction de la gravité de l'erreur (OK si la donnée existe déjà sur le slave et est rigoureusement identique), on peut bypasser l'erreur. Executer le sql suivant :
stop slave;SET GLOBAL sql_slave_skip_counter = 1;start slave;
Mieux vaut vérifier à chaque modification: c'est pourquoi on utilise seulement la valeur 1 pour sql_slave_skip_counter.

Trouver les index non utilisés dans DB2

1) déterminer les id de ts et de table
db2 "SELECT TBSPACEID, TABLEID FROM SYSCAT.TABLES \
WHERE TABSCHEMA = 'schema' AND TABNAME = 'table'";
2) déterminer le nombre de scans d'index (champs 8, si = 0 jamais lu)
db2pd -db sbl -tcbstats all tbspaceid=13 tableid=4 | \
grep -p "TCB Index Stats:" | \
awk '{  if ($8 == "0") { print $3} }'
3) il ne reste plus qu'à déterminer le nom des index
db2 "select INDNAME FROM SYSCAT.INDEXES WHERE TABSCHEMA = 'schema' \
AND TABNAME = 'table' AND IID in (liste des ids de l'etape 2)"

statut de DB2 HADR en SQL

 
$  db2 "select cast(HADR_LOCAL_HOST as varchar(10)) as local, \
cast(HADR_REMOTE_HOST as varchar(10)) as remote,  \
cast(DB_NAME  as varchar(10)) as db, HADR_STATE, \
HADR_CONNECT_STATUS from SYSIBMADM.SNAPHADR"

LOCAL      REMOTE     DB         HADR_STATE     HADR_CONNECT_STATUS
---------- ---------- ---------- -------------- -------------------
PROD       BACK       DATABASE   PEER           CONNECTED

  1 record(s) selected.