L’assurance qualité (QA) est un aspect crucial du processus de développement pour toute entreprise qui vise à fournir un produit fiable et à rester compétitive sur le marché. L’un des principaux composants de la QA est les données et les bases de données qu’elle utilise. Ces données sont généralement stockées dans un environnement distinct de l’environnement de production, et pour garantir le meilleur processus d’assurance qualité possible, les données de l’environnement de production doivent être copiées dans l’environnement de QA.
Lorsqu’il s’agit de synchroniser les données entre les environnements de production et de QA, il existe deux options principales :
- Sauvegarde et restauration de la base de données en direct : Bien que cette approche puisse fonctionner pour les petites bases de données, elle devient une opération coûteuse pour les grandes bases de données avec de nombreuses tables et des millions de lignes. De plus, si les bases de données sont hébergées dans un environnement cloud comme Azure, qui ne prend pas en charge la restauration d’une sauvegarde, cette option n’est pas réalisable. L’automatisation du processus de synchronisation avec les opérations de sauvegarde et de restauration peut également être un défi.
- Utilisation d’outils de comparaison tels que xSQL Data Compare : C’est souvent l’option préférée pour les grandes bases de données avec des données en constante évolution. xSQL Data Compare permet des processus de comparaison et de synchronisation hautement personnalisables et facilement automatisables.
Prenons en compte un scénario où vous avez une base de données de production avec une table contenant 5 millions de lignes qui doit être synchronisée avec la base de données de QA. Si vous deviez utiliser l’option de sauvegarde et de restauration, les 5 millions de lignes seraient insérées dans la base de données de QA, même si seulement une fraction d’entre elles est désynchronisée. Cela entraîne des opérations inutiles et une charge de travail accrue pour le serveur.
xSQL Data Compare offre une solution plus efficace en générant un script de synchronisation uniquement pour les lignes qui sont désynchronisées. De plus, étant donné que le processus de synchronisation est généralement effectué périodiquement, par exemple chaque semaine, il n’est pas nécessaire de comparer les 5 millions de lignes. Au lieu de cela, vous pouvez spécifier une clause WHERE dans xSQL Data Compare pour comparer uniquement les enregistrements qui ont été modifiés au cours de la dernière semaine.
Voici un exemple de condition WHERE qui compare uniquement les enregistrements modifiés au cours de la dernière semaine :
ModifiedDate >= DATEADD(DAY, -7, GETDATE())
En utilisant cette approche, vous pouvez réduire considérablement la charge de travail sur le serveur et optimiser le processus de synchronisation.
L’automatisation du processus de synchronisation est également essentielle pour gagner du temps pour les administrateurs de bases de données ou les personnes responsables de cette tâche. xSQL Data Compare fournit une version en ligne de commande qui vous permet de planifier les tâches de comparaison et de synchronisation pour qu’elles s’exécutent périodiquement à l’aide du Planificateur de tâches Windows. Les mêmes options spécifiées dans l’interface utilisateur peuvent être configurées dans un fichier XML et transmises en tant que paramètre à xSQLDataCmd.exe.
Voici un exemple de fichier de configuration XML pour effectuer la même comparaison que dans le scénario précédent :
<?xml version="1.0" encoding="utf-8"?>
<SqlDataCompareCmdConfig xmlns="http://www.xsqlsoftware.com/schemas/xSQLDataCompareCmdSchema.xsd">
<LeftDatabase>
<SqlServer>Production</SqlServer>
<DatabaseName>AdventureWorks2012</DatabaseName>
<TrustedConnection>true</TrustedConnection>
</LeftDatabase>
<RightDatabase>
<SqlServer>QualityAssurance</SqlServer>
<DatabaseName>AdventureWorksCopy</DatabaseName>
<TrustedConnection>true</TrustedConnection>
</RightDatabase>
<TablesMappingRules />
<TablePairs>
<Pair Action="Include">
<LeftObject Name="Sales.SalesOrderHeader" />
<RightObject Name="Sales.SalesOrderHeader" />
<WhereClause>ModifiedDate >= DATEADD(DAY, -7,GETDATE())</WhereClause>
</Pair>
</TablePairs>
<CommandLineOptions>
<ErrorLogName>xSQL</ErrorLogName>
<ErrorLogType>WindowsLog</ErrorLogType>
<OverwriteComparisonLog>true</OverwriteComparisonLog>
<Direction>RightAsLeft</Direction>
<Synchronize>true</Synchronize>
</CommandLineOptions>
</SqlDataCompareCmdConfig>
En planifiant cette tâche dans le Planificateur de tâches Windows, xSQL Data Compare synchronisera automatiquement toutes les modifications apportées à la base de données de production au cours de la dernière semaine.
Si le schéma de votre base de données de production a changé et est désynchronisé avec la base de données de QA, vous pouvez utiliser xSQL Schema Compare pour synchroniser d’abord les schémas avant de synchroniser les données.
En conclusion, xSQL Data Compare offre une large gamme d’options de personnalisation pour une synchronisation efficace des données dans divers scénarios. En utilisant ses fonctionnalités, vous pouvez optimiser l’environnement de QA et gagner du temps pour les administrateurs de bases de données. Pour plus d’informations sur les personnalisations disponibles, consultez la documentation en ligne de xSQL Data Compare.
CodeProject