Maintenance de la base de données DB2

Pour que la base de données DB® fonctionne correctement, vous devez sauvegarder régulièrement les données et exécuter des actions de maintenance.

Pourquoi et quand exécuter cette tâche

La configuration de DB2 impacte fortement les performances. Une bonne administration de la base de données nécessite la réalisation de certaines actions standard. Si vous le pouvez, demandez à un administrateur spécialiste de DB2 de surveiller la santé et les performances de DB2. Dans d'autres cas, vous devez suivre les procédures décrites dans cette rubrique pour préserver la bonne condition de votre base de données.

Effectuez des sauvegardes régulières

Effectuez des sauvegardes régulières des données stockées dans la base de données.

Nous vous conseillons de sauvegarder la base de données avant de mettre à niveau le serveur afin de faciliter la récupération en cas de défaillance.

Procédure

  1. Effectuez des sauvegardes régulières des données stockées dans la base de données. Nous vous conseillons de sauvegarder la base de données avant de mettre à niveau le serveur afin de faciliter la récupération en cas de défaillance.
    1. Arrêtez le serveur .
    2. Dans l'interface de ligne de commande DB2, lancez la commande suivante : db2 backup database TEMADB.
      Remarque : TEMADB est le nom de base de données par défaut. Si vous n'êtes pas certain qu'il s'applique à votre base de données, voir : Vérification du nom de base de données.
    3. Démarrez le serveur.

      La sauvegarde est créée dans le répertoire de travail en cours, et le nom du fichier contient le nom d'instance et l'horodatage de la procédure de sauvegarde (par exemple : TLMA.0.db2inst1.NODE0000.CATN0000.20101105000715.001).

      Pour plus d'informations sur les stratégies de sauvegarde des bases de données, voir : Développement d'une stratégie de développement et de reprise.

Maintenance DB2 : Réorganiser les statistiques de table et d'actualisation des index
  1. Réorganisez la table pour la mettre en conformité avec l'index et récupérer de l'espace :
    1. Arrêtez le serveur BigFix Inventory.
    2. Dans l'interface de ligne de commande DB2®, lancez les commandes suivantes :
      • db2 connect to TEMADB
      • db2 -x "select 'reorg table',substr(rtrim(tabschema)||'.'||rtrim(tabname),1,50),' allow no access;'from syscat.tables where type = 'T' and tabschema in ('ADM','SAM','DBO') order by tabschema,tabname " > reorgs.sql
      • db2 -tvf reorgs.sql
      • db2 terminate
    3. Démarrez le serveur BigFix Inventory.
  2. Vérifiez que les statistiques sont à jour. Par défaut, les statistiques DB2® sont exécutées automatiquement. Si cette option est désactivée, vous devez exécuter manuellement les commandes suivantes :
    1. Arrêtez le serveur BigFix Inventory.
    2. Dans l'interface de ligne de commande DB2®, lancez les commandes suivantes :
      • db2 connect to TEMADB
      • db2 -x "select 'runstats on table',substr(rtrim(tabschema)||'.'||rtrim(tabname),1,50),' and indexes all;'from syscat.tables where type = 'T' and tabschema in ('DBO','SAM','ADM') order by tabschema,tabname " > runstats.sql
      • db2 -tvf runstats.sql
      • db2 terminate
    3. Démarrez le serveur.
    Récupérer le stockage/réduire la taille de la base de données

    Pour réduire la taille de l'espace de table et éviter les fichiers .LGR volumineux, suivez les instructions ci-dessous.

    • Comment identifier les pages utilisées dans un espace de table
      • db2 inspect check tablespace name USERSPACE1 results keep inspect.log
        • Cela générera un fichier inspect.log sur le répertoire de diagnostic de l'instance (généralement <instance directory>/sqllib/db2dump). En cas de multinœud, la commande générera un fichier pour chaque nœud, en ajoutant le numéro de nœud à la fin du nom de fichier. Par exemple : inspect.log.000, inspect.log.001, etc. ou elle générera des dossiers distincts pour les nœuds, c'est-à-dire : DIAG000, DIAG0001, etc.
    • Pour formater la sortie, vous devez accéder à l'emplacement où se trouve le fichier de sortie et exécuter :
      • db2inspf inspect.log inspect.out
        • Cela générera inspect.out dans le répertoire actuel

    Veuillez noter qu'il se peut que vous deviez attendre un certain temps pour que les commandes ci-dessous s'exécutent. Veuillez donc exécuter ces commandes à quelques minutes d'intervalle.

    • Pour récupérer l'espace, veuillez exécuter :
      • db2 "ALTER TABLESPACE USERSPACE1 LOWER HIGH WATER MARK "
    • Pour réduire la taille de USERSPACé1, veuillez exécuter :
      • db2 "ALTER TABLESPACE USERSPACE1 REDUCE MAX
    • Pour vérifier toute modification dans "Cote d'alerte haute (pages)"
    • db2 "LIST TABLESPACES SHOW DETAIL"
    Vérification de l'espace occupé par des tableaux individuels
    • Pour obtenir la taille des tableaux dans temadb, veuillez exécuter :
      • db2 “select char(date(TAB.STATS_TIME))||'-'||char(time(TAB.STATS_TIME))
                            as STATSTIME, substr(TAB.TABSCHEMA,1,3) as TABSCHEMA, substr(TAB.TABNAME,1,35)
                            as TABNAME, CARD as ROWS, (COL_OBJECT_P_SIZE + DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE
                            + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) as TAB_ALLOC_KB, 
                            (COL_OBJECT_L_SIZE + DATA_OBJECT_L_SIZE + INDEX_OBJECT_L_SIZE + LONG_OBJECT_L_SIZE
                            + LOB_OBJECT_L_SIZE + XML_OBJECT_L_SIZE) as TAB_USED_KB, DICTIONARY_SIZE AS DICT_P_SIZE,
                            DATA_OBJECT_P_SIZE AS DATA_P_SIZE, INDEX_OBJECT_P_SIZE AS INDEX_P_SIZE, 
                            LOB_OBJECT_P_SIZE AS LOB_P_SIZE, LONG_OBJECT_P_SIZE AS LONG_P_SIZE, 
                            XML_OBJECT_P_SIZE AS XML_P_SIZE, DATA_OBJECT_L_SIZE AS DATA_L_SIZE, INDEX_OBJECT_L_SIZE AS INDEX_L_SIZE,
                            LOB_OBJECT_L_SIZE AS LOB_L_SIZE, LONG_OBJECT_L_SIZE AS LONG_L_SIZE, XML_OBJECT_L_SIZE AS XML_L_SIZE 
                            from syscat.tables TAB join sysibmadm.admintabinfo ADMTI on TAB.tabname=ADMTI.tabname and 
                            TAB.tabschema=ADMTI.tabschema where TAB.TABSCHEMA IN ('DBO','SAM','ADM') order by TABSCHEMA,
                            TABNAME with ur"

Que faire ensuite

Pour examiner de plus près les requêtes qui sont utilisées par le serveur BigFix Inventory, vous devez utiliser la commande de l'assistant de conception de DB2 (db2advis). Elle vous aide à trouver de nouveaux index susceptibles d'améliorer les performances de la base de données. L'assistant de conception utilise la sortie des moniteurs DB2 pour suggérer la création de nouveaux index. Les suggestions sont basées sur les requêtes trouvées dans les superviseurs. Pour plus d'informations sur Design Advisor, consultez la documentation DB2 :
DB2 11.5