La conservation des données vous permet de contrôler le mode d'apparition des données dans votre base de données cible en cas de changements des métadonnées, des structures de données ou en cas de migration des données d'une table à l'autre.
Optim Database
Administrator prend en charge les changements étendus. Les changements étendus sont nécessaires lorsqu'une instruction ALTER ne permet pas d'implémenter le changement facilement. Un changement étendu sauvegarde et conserve les données de table, supprime la table puis la crée à nouveau avant de recharger les données. Vous devez également sauvegarder et conserver les données que vous migrez d'une table à l'autre.
Lorsque vous cliquez sur le lien Aperçu des commandes dans l'Editeur de script de gestion des changements, Optim Database
Administrator génère les commandes pour les changements. Le produit génère automatiquement
les commandes de déchargement et de rechargement lorsqu'il détecte que les données doivent être
préservées.Les commandes de maintenance DB2 sont de même générées automatiquement. Si vous souhaitez modifier les commandes, vous pouvez aussi cliquer sur Options de données pour démarrer l'assistant Personnaliser la conservation des données. L'assistant vous guide à travers le processus de modification des méthodes de déchargement et de rechargement à utiliser, des commandes de déchargement et de rechargement, ainsi que pour la modification du choix des commandes de maintenance DB2 à générer.
La conservation des données est utile dans les situations suivantes :
- Lors de la suppression d'une table
- Lorsque vous supprimez une table, vous souhaiterez peut-être stocker les données de cette table dans un fichier pour les utiliser ultérieurement, en particulier si vous avez besoin d'annuler les changements.
- Lors de la création d'une table
- Lorsque vous créez une table, vous envisagerez peut-être de la remplir avec des
données issues d'une autre table. Vous pouvez migrer les données vers la table en utilsant l'action Migrer les données dans l'élément de menu principal Gestion des changements. Vous pouvez alors personnaliser les données que vous voulez charger en cliquant sur Options des données dans la section Commandes de l'Editeur de script de gestion des changements. L'assistant Personnaliser la préservation des données démarre. L'assistant vous guide dans le processus de mappage des données que vous voulez décharger d'une table puis charger dans une nouvelle.
Conseil : Pour intégrer les données d'un fichier à une nouvelle table, vous pouvez utiliser l'utilitaire CHARGER ou IMPORTER. Dans la Liste d'objets, cliquez avec le bouton droit de la souris sur la nouvelle table, et sélectionnez l'action désirée dans le menu.
- Lors de changements destructifs
- Lorsque vos changements impliquent la suppression d'une table, puis sa re-création,
vous devez décharger les données de cette table puis les recharger.
- Migration des données d'une base de données vers une autre
- Lorsque vous migrez des données, vous devez les décharger de la table source, puis les recharger dans la table cible.
Sur la page Informations de déchargement et de rechargement de l'assistant Personnaliser la préservation des données, vous pouvez exécuter plusieurs actions.
Vous pouvez sélectionner une table et la case à cocher Requête de changement pour personnaliser la commande de déchargement de la table. Vous pouvez également cocher la case Mappage des changements pour personnaliser la commande de rechargement. D'autres pages de l'assistant conçues pour vous aider à personnaliser les commandes de déchargement et de rechargement s'affichent. La personnalisation des commandes de changement liées à la conservation des données est nécessaire pour déployer correctement certains changements.
Restriction : Lorsque vous générez des commandes de changement, les entrées de conservation des données par défaut
sont toujours régénérées. Les commandes de conservation des données générées précédemment ne sont pas intégrées dans la réexécution de l'assistant Personnaliser la conservation des données.
Méthodes des commandes de déchargement et de rechargement
Optim Database
Administrator prend en charge
différentes méthodes de déchargement et rechargement de données. Vous pouvez sélectionner et personnaliser la méthode de déchargement et de rechargement des données sur la page Spécifiez les informations de déchargement et de rechargement de données de l'assistant Personnaliser la conservation des données.
Le type de commande de déchargement que vous sélectionnez détermine si la conservation des données est de type interne ou externe, comme le montre le tableau suivant :
Tableau 1. Méthodes de déchargement prises en charge et type de conservation des donnéesFournisseur de déchargement |
Type de conservation des données |
EXPORT pour format de données DEL |
Externe |
EXPORT pour format de données IXF |
Externe |
Déchargement à hautes performances (commandes de déchargement DB2 HPU) |
Externe |
Fournisseur de conservation de données internes |
Interne |
Fournisseur de conservation de curseur de données internes |
Interne |
Avec la conservation de données de type externe, les données sont
sauvegardées dans des fichiers externes. Les données sont déchargées sur les fichiers externes avec des commandes Export ou DB2 HPU.
Les données sont rechargées à partir de fichiers externes avec des commandes IMPORT ou LOAD,
selon la méthode de commande de rechargement que vous avez choisie.Lorsque vous migrez des données d'une table à une autre, utilisez la conservation externe des données afin que ces dernières soient sauvegardées dans un fichier externe.
Avec la conservation de données de type
interne, les données sont sauvegardées en interne dans la base de données.
Lorsqu'une table est modifiée,
la table est renommée dans la base de données pour créer une table reflet (shadow table). Après la re-création de la table, les données sont transférées de cette copie de table vers la table
modifiée recréée. Le transfert a lieu avec des instructions INSERT ou
via un chargement à partir du curseur en fonction de la méthode de commande de déchargement
que vous avez sélectionnée.
Par défaut, les tables reflet sont renommées avec le préfixe 'SHAD_'. Si une table du même nom existe déjà, elle est supprimée avant la création de la copie de table. Vous pouvez personnaliser les options des méthodes de déchargement internes
pour indiquer l'utilisation d'un autre préfixe ou pour créer la table reflet avec un
autre préfixe si une table avec le même nom existe déjà.
La conservation interne des données peut être plus rapide que la conservation externe car il n'y a pas d'opération d'entrée-sortie dans les fichiers. Toutefois, assurez-vous de disposer d'espace suffisant dans votre base de données
lorsque vous utilisez la conservation des données interne.
Configuration : Pour indiquer le déchargement à hautes performances comme méthode de déchargement, DB2 High
Performance Unload (HPU) for Multiplatforms ou DB2 High Performance Unload (HPU) for Workgroups
doit être installé. Autrement les méthodes de déchargement générées sont vouées à l'échec. Ces
produits sont facturés et installés séparément.
Lorsque les données sont
rechargées dans une table dotée d'un déclencheur, le déclencheur est activé uniquement
si les données sont rechargées avec des commandes d'importation (Import) ou à partir du
fichier de données avec des instructions INSERT. Le déclencheur n'est pas activé lorsque les données sont rechargées à l'aide de commandes Load
ou à partir d'un fichier de données avec un chargement à partir du curseur car l'utilitaire de chargement ne peut
pas appliquer les règles métier associées à un déclencheur. Si vous ne souhaitez pas
activer les déclencheurs, utilisez des commandes Load (ou le chargement à partir du curseur)
ou modifiez les commandes de changement générées de sorte que les déclencheurs soient créés
après le chargement des données.
Important : Si vous optez pour une méthode de rechargement qui active les déclencheurs, vous devez examiner le fichier de commandes de changement pour vérifier
l'ordre de rechargement des données. Optim Database
Administrator ne recharge pas automatiquement les données de sorte que les déclencheurs soient activés comme vous l'envisagez
Techniques avancées de conservation des données
Les techniques avancées de conservation
des données comprennent les opérations suivantes :
- Suppression de colonnes
- La suppression de colonnes peut se gérer facilement via la personnalisation des commandes de
déchargement et de rechargement générées. Vous pouvez modifier les commandes pour vous assurer que les données figurant dans les colonnes supprimées sont conservées. Vous pouvez également personnaliser la commande de rechargement pour garantir que les colonnes déchargées sont mappées aux colonnes rechargées de manière appropriée.
- Ajout de colonnes de type NON NULL
- L'ajout de colonnes NOT NULL est simple à condition que la colonne ait une valeur par défaut. Dans le cas contraire, personnalisez la clause SELECT dans la commande de déchargement sur la page Personnaliser les commandes de déchargement de l'assistant Personnaliser la conservation des données.
- Utilisation de la fonction de transtypage automatique
- Si les types de données des colonnes de déchargement et de rechargement ne correspondent pas, vous
pouvez utiliser une fonction de transtypage automatique pour y remédier. Lorsque vous sélectionnez Transtypage automatique sur la page Informations de déchargement et de rechargement ou sur la page Personnaliser les commandes de déchargement de l'assistant Personnaliser la conservation des données, Optim Database
Administrator ajoute automatiquement une fonction de colonne CAST dans la clause SELECT de l'instruction export ou unload. Vous pouvez sélectionner Requête par défaut pour revenir à la clause
SELECT par défaut.
Restriction : Les autres changements que vous effectuez
dans la clause SELECT sont perdus si vous sélectionnez les options Transtypage automatique ou Requête
par défaut.
Commandes de maintenanceDB2 prises en charge
Tout au long du processus de gestion des changements, il se peut que des modules de base de données spécifiques
deviennent inopérants et des statistiques imprécises. Par exemple, DB2 marque
des modules comme étant non valides ou inopérants lorsque vous supprimez des objets. Vous aurez sans doute à
émettre des commandes rebind pour créer à nouveau ces modules en fonction des statistiques les plus récentes. Les commandes de maintenance DB2 maintenance sont les suivantes :
- Commandes d'actualisation des statistiques (runstats)
- La régénération des statistiques est importante après avoir apporté des changements à une base de données ou après
le chargement des données dans les tables.
- Commandes de réorganisation (reorg)
- Vous devez réorganiser tous les index lorsqu'une table est modifiée. Lorsqu'un espace table est modifié, il faut également réorganiser toutes les tables et tous les index. Optim Database
Administrator émet des commandes REORG TABLE par défaut lorsque vous générez un modèle, sauf si vous désélectionnez cette option sur la page Commandes de maintenance de l'assistant Personnaliser la conservation des données. Optim Database
Administrator génère également
des commandes de mise à jour des statistiques (runstats) pour actualiser les statistiques après la réorganisation
d'une table. Vous devez également rétablir les accès à tous les modules d'application pour tirer profit
des données réorganisées.
Pour plus d'informations sur l'impact des commandes
reorg, voir le manuel DB2 Command Reference.
- Commandes rebind
- Vous devez redéfinir les accès aux modules si vos commandes de changement contiennent les instructions DROP suivantes :
- TABLE
- TRIGGER
- MQT
- UDF
- VIEW
- ALIAS
- INDEX
- STRUCTURE TYPE
Pour améliorer les performances si vous effectuez plusieurs changements, redéfinissez vos accès aux modules. Optim Database
Administrator génère des commandes de redéfinition des accès pour les modules affectés par les changements définis dans le script de gestion des changements.
- Commandes de vidage du cache de module
- Pour améliorer les performances après la mise à jour des statistiques, videz le cache du module de sorte que les instructions SQL dynamique utilisent les dernières statistiques.