Opérations prises en charge avec l'évolution automatique des schémas

L'évolution automatique des schémas est prise en charge sur les cibles Oracle, MySQL, PostgreSQL, SQL Server, Db2 LUW, DB2400, Teradata et Oracle TimesTen.

L'évolution automatique des schémas est prise en charge sur les sources Oracle, MySQL, PostgreSQL, SQL Server, Db2 LUW, Db2 zOS, DB2400, Sybase, Teradata, Oracle TimesTen et Snowflake.

Les opérations prises en charge sont les suivantes :

L'évolution automatique des schémas prend en charge les opérations suivantes en fonction des modifications de schéma, détectées à partir des enregistrements de métadonnées dans les fichiers trace pour conserver la synchronisation du schéma de la source et des tables cible :

En fonction des métadonnées de chaque colonne source, le type de données le mieux adapté est choisi par défaut pour la colonne cible correspondante.

REMARQUE : Vérifiez les mappages de type de données par défaut applicables pour le scénario de réplication de base de données source spécifique à la base de données cible à partir de Mappage de type de données avant d'implémenter l'évolution automatique des schémas.

Dans tous les cas, les types de données cible peuvent être différents du type de données source. Dans la mesure du possible, le choix du type de données cible est fait de telle sorte que le type cible soit toujours compatible et suffisamment grand (avec la même taille que la colonne source ou plus large) pour pouvoir prendre en charge les données de la colonne source correspondante. Dans certains cas où aucun type approprié n'est disponible pour le type de données de colonne source correspondant sur la base de données cible (comme les types disponibles sur la base de données cible peuvent entraîner la troncation des données), une erreur est renvoyée à l'utilisateur avec une recommandation appropriée.

Créer la table manquante

AutoSchema prend en charge les cas d'utilisation suivants :

Modification de la table existante

Si des colonnes sont ajoutées, supprimées ou modifiées sur la source, les instructions LDD ALTER TABLE correspondantes sont générées et exécutées sur les tables cible mises en correspondance correspondantes. Le schéma automatique prend en charge les modifications liées uniquement au type (y compris le nom du type de données, la longueur, la précision et l'échelle, le cas échéant) et à la contrainte de nullité. Toutefois, elle n'honore aucune modification apportée aux autres attributs de colonne. Si des modifications de schéma liées au type/à la capacité nulle sont détectées sur les colonnes source, elles sont propagées sur les colonnes cible.

Une ou plusieurs modifications de schéma sur la table source peuvent entraîner l'utilisation d'instructions LDD ALTER TABLE uniques ou multiples sur les tables cible mises en correspondance, comme cela est pris en charge sur la base de données cible spécifique. Le nombre d'instructions LDD sur la cible dépend de la syntaxe prise en charge sur une base de données cible spécifique, par exemple dans les cas suivants :

  1. Peu de bases de données n'autorisent pas l'ajout/la suppression/la modification de plusieurs colonnes dans un seul élément ALTER TABLE DDL.

  2. Peu de bases de données ne permettent pas de modifier à la fois le type et la nullabilité des colonnes dans une instruction ALTER TABLE DDL unique.

Dans ce cas, le nombre requis d'instructions ALTER TABLE DDL est exécuté sur la table cible, en fonction des exigences de la base de données cible.

Il est possible que le schéma automatique ait un impact sur la base de données cible nécessitant une action supplémentaire. Par exemple, si une valeur ALTER TABLE MODIFY COLUMN peut entraîner une certaine troncation des données, différentes bases de données peuvent le gérer de différentes manières. Une base de données peut détecter que certaines données existantes peuvent être tronquées par l'opération et provoquer l'arrêt de la réplication, ce qui se produit généralement entre Oracle et MySQL, lorsque MySQL est exécuté avec le mode strict activé. Toutefois, si MySQL est configuré en mode non strict, la traction peut se produire sans avertissement.

Pour IBM i, selon la configuration du système, le processus Replicat peut sembler se bloquer. Pour certaines actions sur Db2 (anciennement Db2 LUW) et Db2 z/OS, certaines actions peuvent nécessiter une réorganisation des tables. Sur Db2 z/OS, une colonne de suppression ne sera pas reconnue tant qu'une réorganisation n'aura pas été effectuée. Pour Db2, la table pourrait se retrouver dans un état de réorganisation en attente et cesser d'autoriser d'autres opérations sur celle-ci.

REMARQUE : Si nécessaire, vous pouvez ajouter sélectivement OPTYPE ADDCOLUMN, OPTYPE DROPCOLUMN et OPTYPE MODIFYCOLUMN aux critères d'inclusion/exclusion DDL AUTOSCHEMA.