Mon résumé de cette session des TechDays 2008 qui a eu lieu ajourd'hui.
Par Christian Robert, formateur chez Winwise, Technical Leader et MVP SQL Server.
Introduction
A priori la migration de SQL Server 2005 vers SQL Server 2008 ne pose pas de problème. C'est surtout sur les nouvelles fonctionnalités de SQL Server 2008 qu'il va falloir travailler.
Nous parlerons de la migration depuis SQL Server 2000 et SQL Server 2005.
SQL Server 2008 est en beta avec une date de sortie prévue au 3ème trimestre 2008.
Prérequis
Sur le CD d'installation de SQL Server 2005 ou SQL Server 2008 il y a un assistant SQL Advisor qui est capable d'indiquer les points bloquants qui pourraient empêcher la migration.
Les lots DTS ne sont pas un point bloquant: l'outil "DTS run" est livré avec SQL Server 2005 et SQL Server 2008 pour faire tourner les lots DTS. C'est le designer qui n'est pas livré, donc on ne peut pas en créer de nouveaux.
La migration
1. Verifier l'integrite de la base en exécutant la requête "dbcc checkdb"
2.a Migration méthode 1: on insère le CD de SQL Server, indique l'instance existante comme instance à installer; le wizard va dire que l'instance existe déjà et demande si l'on veut la migrer. Cette méthode n'est pas recommandée car en cas de problème elle pourrait laisser la base dans un état semi migré. Cette méthode est donc à privilégier pour les installations sur les serveurs vierges.
2b Migration méthode 2: faire une sauvegarde de la base (All tasks / Backup). Avantage: cela peut se faire sans arrêter la base. Dans les propriétés de la base, aller dans Options et indiquer "State/Database read-only=false" pour s'assurer que personne n'accède à la base. Les utilisateurs sont alors droppés. On fait alors un Restore (choisir "From device" et pointer sur le fichier précédemment sauvegardé puis dans la liste "To database" choisir la base qui vient d'être ajoutée depuis le fichier).
2c Migration méthode 3: copie de fichier, alias detach/attach. Toute base est constituée de 2 fichiers: les données principales (tables systèmes) et mdf (transactions, c'est à dire requêtes qui ont été effectuées sur la base). Le rattachement vers une version plus récente de SQL Server ne pose pas de problème, et ce depuis SQL Server 7.
Post migration
On fait:
dbcc updateusage(0)
C'est important car certaines métadonnées ne sont pas toujours mises à jour sur SQL Server 2000.
Exécuter ensuite
dbcc checkdb() with data_purity
En effet les types datetime et float peuvent contenir des types erronés. Cetteccommande vérifie que ce n'est pas le cas.
Exécuter enfin:
sp_uppdatestats
Car à partir de SQL Server 2008 plus de données statistiques sont intégrées pour aider dans certains types de recherche (par exemple un "like" dans un "where").
Astuce: depuis SQL Server 2005, dans "tasks/all tasks", la fonction "Publish Web Service" permet d'obtenir les scripts SQL de recréation de la base et d'insertion des lignes. Cela permet de faire une migration arrière, à condition bien sûr que l'on n'ait pas utilisé de fonctionnalités non supportées par la base vers laquelle on migre...
Comments