4D v16

Réplication via le SQL

Accueil

 
4D v16
Réplication via le SQL

Réplication via le SQL  


 

 

4D propose un mécanisme permettant de répliquer ou de synchroniser les données de deux ou plusieurs bases 4D via le SQL. Cette fonctionnalité spécifique autorise la mise en place d’une ou plusieurs base(s) miroir, garantissant la disponibilité permanente des données. 

Le principe est le suivant : une base de données cible réplique en local les données d’une base de données source distante. La mise à jour s’effectue périodiquement par la base locale qui va chercher les données sur la base distante. La réplication est effectuée au niveau de la table : vous répliquez les données d’une table de la base distante dans une table de la base locale.
Ce principe s'appuie sur des "marqueurs" (stamps) et des commandes SQL spécifiques.

Dans l'éditeur de structure, une propriété de table permet d’activer le mécanisme de réplication dans la base distante et la base locale. Côté base locale, la commande SQL REPLICATE permet de rapatrier les données d’une table de la base distante puis de les intégrer dans une table de la base locale. La commande SQL SYNCHRONIZE permet quant à elle d’effectuer la synchronisation des deux tables.

Chaque table de la base 4D se voit attribuer trois champs "virtuels" : __ROW_ID, __ROW_STAMP et __ROW_ACTION. Ces champs sont appelés virtuels pour les différencier des champs "classiques", car ils disposent de propriétés spécifiques : ils sont renseignés automatiquement, peuvent être lus mais non modifiés par les utilisateurs et n’apparaissent pas dans les tables système de la base. Le tableau suivant décrit ces champs ainsi que leur mode d’utilisation :

Champ virtuelTypeContenuUtilisation
__ROW_IDInt32ID d’enregistrementDans toute instruction SQL sauf REPLICATE ou SYNCHRONIZE
__ROW_STAMPInt64Informations de réplication de l’enregistrementDans toute instruction SQL
__ROW_ACTIONInt16Type d’action effectuée sur l’enregistrement : 1 = Ajout ou modification, 2 = SuppressionUniquement avec la commande REPLICATE ou SYNCHRONIZE

Lorsque les mécanismes de réplication sont activés, dès qu’un enregistrement est créé, modifié ou supprimé, les informations correspondantes sont automatiquement mises à jour dans les champs virtuels de cet enregistrement.

Par défaut les mécanismes permettant la réplication ne sont pas activés. Vous devez les activer explicitement côté base distante et côté base locale pour chaque table utilisée dans la réplication ou synchronisation.

A noter que l’activation ne déclenche pas la réplication ; pour que les données soient effectivement répliquées dans la base locale ou synchronisées, vous devez utiliser les commandes REPLICATE ou SYNCHRONIZE

Pour activer le mécanisme interne de réplication, vous devez utiliser dans chaque table (côté base distante et côté base locale) la propriété de table Activer réplication, accessible dans l’Inspecteur des tables :

Note : Pour que le mécanisme de réplication puisse fonctionner, une clé primaire doit avoir été définie dans les tables impliquées côté base distante et côté base locale. Vous pouvez effectuer cette création via l’éditeur de structure ou les commandes SQL. Si aucune clé primaire n'a été définie, l'option est grisée.

Lorsque cette option est cochée, 4D génère les informations nécessaires au mécanisme de réplication des enregistrements de la table (basées notamment sur la clé primaire de la table). Ces informations sont stockées dans les champs virtuels __ROW_STAMP et __ROW_ACTION.

Note : Il est possible d’activer et d’inactiver la génération des informations de réplication via les commandes SQL CREATE TABLE et ALTER TABLE, en utilisant les mots-clés ENABLE REPLICATE et DISABLE REPLICATE. Pour plus d’informations, reportez-vous à la description de ces commandes.

ATTENTION : L'action de cocher cette option entraîne la publication d'informations nécessaires aux mécanismes de réplication. Pour des raisons de sécurité, l'accès à ces informations doit être protégé -- comme doivent l'être les accès à vos données lorsqu'elles sont publiées. Par conséquent, lorsque vous implémentez un système de réplication à l'aide de cette option, vous devez veiller à ce que :

Une fois que le mécanisme de réplication est activé dans chaque table de chaque base, vous pouvez l’exploiter depuis la base locale à l’aide de la commande SQL REPLICATE. Pour plus d'informations, reportez-vous à la description de cette commande.



Voir aussi  

REPLICATE

 
PROPRIÉTÉS 

Produit : 4D
Thème : Utiliser le SQL dans 4D
Nom intl. : Replication via SQL

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Référence SQL ( 4D v16)