Introduction

SQL Server 2012 met à disposition de nombreux outils permettant de faciliter la montée de version d’une base de données SQL 2005, 2008 ou 2008 R2 vers SQL Server 2012.

Le plus connu est SQL Server Upgrade Advisor qui permet d’analyser la structure ou le code T-SQL contenu dans une base de données pour détecter des éléments incompatibles avec une montée de version comme, par exemple, une fonctionnalité supprimée en 2012.

Si SQL Upgrade Advisor s’avère indispensable pour réaliser une analyse a priori des incompatibilités, il ne permet pas de faire de véritables tests de non régression.

Ce billet présente la démarche permettant de réaliser facilement des tests de non régressions lors d’une montée de version vers SQL Server 2012.

 

Upgrade Assistant for SQL Server 2012 (UAFS)

UAFS est un outil gratuit qui vous permet de déterminer, dans un environnement de test, si une application qui s'exécute sur SQL Server 2005, 2008 ou 2008 R2 s'exécutera correctement sur SQL Server 2012. Cet outil utilise l’outil SQL Server 2012 Distributed Replay (DReplay) permettant de rejouer des traces de production dans un environnement de test afin d’identifier :

  • les problèmes de compatibilité
  • les problèmes de performance

 

Méthodologie

La mise en œuvre de tests de non régression lors d’une mise à niveau d’une base de données 200X vers 2012 se décompose en plusieurs étapes.

 

1. Capture de l’activité de production

Cette étape consiste à capturer les ordres SQL s’exécutant sur la base de données à migrer. La mise en œuvre de cette capture se fait à l’aide d’UAFS ou manuellement en activant une trace Profiler de type Replay sur l’instance à migrer. On veillera à effectuer une sauvegarde complète de la base production – si possible pendant une période sans activité - avant de lancer la capture de traces SQL Server.

La principale difficulté de la prise de trace est de capturer une activité qui couvre l’ensemble du code T-SQL de l’application. Cela nécessite une bonne connaissance de l’applicatif.

Remarque : La prise de trace sur la production induit un overhead qui peut, dans certains cas, impacter l’activité. Lorsque c’est possible on préfèrera capturer les traces dans un environnement de pré-production afin de ne pas impacter l’activité de production.

 

2. Construction de l’environnement de test en version 200X (référence)

On construit un environnement de test avec la même version SQL Server que l’instance de production. La base de production y est restaurée depuis la sauvegarde effectuée en Production.

 

3. Rejouer l'activité de production dans un environnement de test de référence

Après avoir copié la base production sur une plateforme de test dans la version de SQL Server de la base de  production, on rejoue l’activité capturée en production. Afin que l’activité soit reproduite à l’identique d’une activité réelle, UAFS utilise Distributed Replay pour simuler l’activité de plusieurs utilisateurs se connectant en parallèle sur l’instance – comme dans la réalité.

  

 

4. Construction de l’environnement de test en version 2012

On construit une instance SQL Server 2012 dans l’environnement de test sur un matériel identique à l’environnement de test de référence. On restaure ensuite la base production sur cet environnement. La structure de la base est automatiquement migrée en version 2012.

 

5. Rejouer l'activité de production sur l'environnement de test en 2012

On rejoue les traces de production sur l’environnement de test mis à niveau en 2012.

 

6. Analyse des écarts

La dernière étape consiste à analyser les écarts de comportement sur la base l’instance de test de référence (200X) et la base de l’instance de test migrée en 2012. Comme les instances sont hébergées sur le même type de matériel, il possible d’identifier à la fois les problèmes de comportement et de performance liés à la migration comme, par exemple, des changements dans les plans d’exécution.

 

 

La suite SQL Server 2012 fournit tous les outils facilitant les montées de version.

Une démarche simple basée sur Distributed Replay permet de prévenir toutes les mauvaises surprises lors de la mise en production d’une base fraîchement migrée en 2012. 

 

 

Microsoft Services accompagne régulièrement les clients dans la mise en œuvre de montées de version SQL Server.

Pour plus d’informations sur les offres packagées Microsoft Consulting Services, rendez-vous sur http://www.microsoft.com/france/services

Plus d’informations sur les blogs « SQL Server chez les clients ».

 

Sébastien Grosbois, Consultant BI/SQL, Microsoft Consulting Services

Après quelques années passées dans un cabinet de conseil spécialisé en bases de données, j’ai rejoint Microsoft Services en 2001. Je suis actuellement Consultant Senior SQL Server & BI.