SQL2005, la migration Atelier 316 Par : Maurice Pelchat Spécialiste SQL Server Société GRICS
SQL2005, la migration Introduction Pourquoi? Comment? Outils disponibles Processus de migration Quand? Perspectives d avenir
Introduction Migration très attendue... Plusieurs reports du successeur de SQL2000 SQL7 utilisé depuis 10 ans dans les C.S. SQL2000 adopté par la moitié des C.S. Supporter SQL7 c est se priver de fonctionnalités ayant impact sur la performance et l efficacité du développement Attendre SQL2005 en valait la peine Gains de performance Plate-forme beaucoup plus riche en fonctionnalités
Pourquoi? Problématique SQL2000 Standard limité à 2 Gb de cache Si volume actif des données dépasse 8 Gig, les serveurs deviennent «I/O Bound» Cause de sous-performance sur serveurs équipés de processeurs dernier cri Matériel d entrée-sortie bien plus dispendieux que mémoire et processeurs Mémoire 2Gb = Limite du monde 32 bits
Pourquoi? SQL Server 2005 x64 (64 bits) peut utiliser toute la mémoire que le matériel offre SQL2005 64 bits disponible en Édition Standard, recommandé par la Société GRICS Pas plus cher que SQL2005 32 bits Plus de mémoire = moins de lectures sur disque augmentation de la performance meilleure utilisation des processeurs
Pourquoi? Univers 64 bits Nécessite WIN2003 x64 Std ou Entreprise Processeurs AMD 64 bits Opteron ou Intel Xeons ayant les extensions AMD 64 bits Extensions 64 bits présentes depuis 1 an et plus dans tous les processeurs serveurs et même sur les processeurs «desktop» Compatibilité avec les applications 32 bits car ce sont aussi des processeurs 32 bits ex: SQL2000 32 bits sous WIN2003 x64
Pourquoi? Mode x64 ou x86 (32 bits): Mêmes prix Mode x64 (AMD, XEON) Mode IA64 (Itanium) Prix SQL 2005 sur Edition Standard 515.36$ (5 licences) CAL 46.01$ Par processeur (socket) : 3,349.86$ Prix SQL 2005 sur Edition Entreprise 4955.76$ (5 licences) CAL 46.01$ Par processeur (socket) : 13,963.11$ Licence «par processeur» requise si application Internet avec un nombre de clients indéterminé Processeurs multi-coeurs n influencent pas le prix
Pourquoi? Consolidation Exige accroissement mémoire, possible en 64 bits, BD d historiques grossissent Économies dans l aspect licence et multi-instance Exige sous-systèmes d entrée-sortie plus performants du moins pour les écritures Augmentation de performance pour les applications avec serveurs liés, car ils ne sont plus requis! Solutions de relève sont plus impératives Grappe avec basculement Depuis SQL2005 seulement, en édition Standard Maximum de 2 nœuds dans la grappe Relève passive ne requiert pas seconde licence SQL
La migration Outils de migration Plus qu un changement de version Une évolution de nos applications : Support de l Unicode pour applications WEB Implantation des requis pour l indépendance face au jeu de caractères du serveur Jeu de caractères Latin1_General_CI_AI Via quatre «procédures stockées» GRICS
Outils de migration Objectifs des outils de migration Simplifier au maximum la migration Processus lot «lancer et oublier» Éliminer la majorité des opérations manuelles Permettre validation et reprise après correction jusqu à ce que tout soit OK Continuer avec SQL7 ou SQL2000 tant que la migration n est pas à point Faciliter support et diagnostic via un mécanisme de journalisation détaillé
Outils de migration Procédures stockées GRICS Exécutée sur SQL7 ou SQL2000 Sp_Grics_BackupsMigr Exécutées du serveur SQL2005 Sp_Grics_MigrerDataBdVersSQL2005 Sp_Grics_MigrerCodeBdVersSQL2005 Sp_Grics_MonitorMigrVersSQL2005 Possibilité de céduler les traitements
Outils de migration Sur serveur SQL7 ou SQL2000 : Exec Sp_Grics_BackupsMigr @MigrPathBkps='G:\SQL2kBkps' @lstbnq = 'Banque1 Banque2 BanqueN' Crée fichiers backups nombd_bdgricsamigr.bkp Si répertoire de backup est accessible des deux instances SQL, la copie des fichiers de backup n est pas nécessaire
Outils de migration Sur serveur SQL2005 : Exec Sp_Grics_MigrerDataBdVersSQL2005 @MigrPathBkps='G:\SQL2kBkps' @MigrPathData= D:\SQL2005Data' @MigrPathLogs= E:\SQL2005Logs' @lstbnq = 'Banque1 Banque2 BanqueN La procédure clone la base de données restaurée avec changements nécessaires sur le type des données
Outils de migration Sp_Grics_MigrerDataBdVersSQL2005 Crée banque SQL2005 sous nombd original avec seulement 2 fichiers nombd.mdf et nombd_log.ldf Restore backup d origine sur SQL2005 avec nom nombd_bdgricsamigr Clone structures, index, contraintes, défauts Convertit types «caractères» en leur type unicode équivalent Varchar(n) et char(n) avec n>1 nvarchar(n) Si n>4000 ou type Text nvarchar(max) Image Varbinary(max)
Outils de migration Sur serveur SQL2005 : Exec Sp_Grics_MigrerCodeBdVersSQL2005 @lstbnq = 'Banque1 Banque2 BanqueN' Convertit et recrée dans la base de données migrée : vues, fonctions, procédures stockées et déclencheurs La conversion consiste à : Remplacer les types caractères par leur équivalent Unicode Dans la définition des tables temporaires Dans les variables Ajouter des clauses dans la création des tables temporaires.
Outils de migration Sur serveur SQL2005 : Sp_Grics_MigrerCodeBdVersSQL2005 est un processus séparé car : Existence de dépendances entre bases de données au niveau des vues. Conversion du code usager assez fiable mais non garantie Alternative à la procédure : utiliser les programmes d installation????db de nos applications
Processus de migration Contraintes de migration à cause des dépendances Interdépendances entre bases de données requièrent migration commune Exemples de dépendances : Paie et vues vers son historique, Avant-Garde et vues vers son historique, La Procure et vues utilisant les serveurs liés Aussi référence inter-banques dans vues maison
Outils de migration Sur serveur SQL2005 : Exec Sp_Grics_MonitorMigrVersSQL2005 @nombnq = 'Banque1, @FiltreErr = 0, @OrdreRecent = 1 Journaux dans la base de données BdJournalMigr, créée par migration des données BDJournalMigr peut aussi être envoyé à la Société GRICS si diagnostic difficile
Processus de migration Aspect organisationnel - 1 ère étape Se former sur SQL 2005 Cours de mise à niveau d une journée offert par la Société GRICS SQL Server Management Studio (SSMS) But visé est de retrouver les fonctionnalités équivalentes à SQL7 et SQL2000 Profiter des nouveautés administratives de SSMS, mettre en place des alertes administratives et de maintenance (Via SMTP) Répondre à vos questions sur la migration On peut quand même tester la migration sans avoir suivi le cours
Processus de migration Aspect organisationnel - 2 ème étape Ne pas viser à entrer en production immédiatement. Premièrement organiser / valider le processus Préparer un serveur SQL2005 (test ou réel) ou une instance supplémentaire pour SQL2005 Déterminer répertoires pour données et journaux de TX sur nouveau serveur Assurer accès aux backups de migration à partir du serveur SQL2005 (test ou réel)
Processus de migration Aspect organisationnel - 2 ème étape Totaliser espace disque à prévoir: Les données (taille actuelle utilisée * 1.3) Les journaux de TX (le tiers des données) La taille de la plus grande base de données d origine restaurée Les backups (utiliser autre partition que les données ou les journaux de TX) Mettre à niveau les applications GRICS à leur version officielle pour SQL2005 Elle supporte aussi vos serveurs SQL7 ou SQL2000 en attendant la migration
Processus de migration Aspect organisationnel - 2 ème étape Créer les procédures stockées de transfert Déterminer groupe de bases de données à migrer et lancer prise de copie de migration (Sp_Grics_BackupsMigr) À cause de la performance et cohérence, faire le soir après la fin des copies partielles Sans autre impact sur systèmes en production Buts : savoir si ça fonctionne, connaître combien de temps cela prend, et l espace disque nécessaire
Processus de migration Aspect technique - 2 ème étape Exec Sp_Grics_BackupsMigr @MigrPathBkps='G:\SQL2kBkps' @lstbnq = 'Banque1 Banque2 BanqueN' Lancée sur connexion à SQL7 ou SQL2000 (Query Analyzer si SQL7) @lstbnq = paramètre facultatif qui limite les banques à migrer, sinon omettre
Processus de migration Aspect organisationnel - 3 ème étape On refait le backup et on enchaîne le processus de migration Détermine si fenêtre suffisante pour les backups Dans SQL Server Management Studio Migration à partir d une connexion au serveur SQL2005 (test ou réel) Céduler la migration pour laisser le temps aux backups de se terminer Processus intensif au niveau entrées / sorties Si la durée le requiert, attendre au lendemain
Processus de migration Aspects techniques - 3 ème étape (exemple) Lancer instructions suivantes, attente faite par WAITFOR TIME : WAITFOR TIME 01:00 -- céduler à 1h AM Exec Sp_Grics_MigrerDataBdVersSQL2005 @MigrPathData= D:\SQL2005Data' @MigrPathLogs= E:\SQL2005Logs' @MigrPathBkps='G:\SQL2kBkps' @lstbnq = 'Banque1 Banque2 BanqueN
Processus de migration Aspect technique - 3 ème étape (général) Procédure MigrerDataBdVersSQL2005 Évite banques existantes si «online», donc les radier si on veut recommencer @LstBnq limite traitement à ces seules banques Crée une banque de destination vide et restaure les banques d origine sur SQL2005 Laisse la banque convertie «Offline» pour étape suivante. Si problème, base de données «NomBd», renommée automatiquement «ErrMigr_NomBd» Journal des opérations accessible via la procédure Sp_Grics_MonitorMigrVersSQL2005 NomBd
Processus de migration Aspect organisationnel - 4 ème étape Transférer (une seule fois) les codes d accès (même procédure que lors du passage de SQL7 à SQL2000) Définir serveurs liés (une seule fois) S il y a des vues qui y réfèrent, elles ne peuvent être recréées sans ces serveurs Utiliser programmes DB de la Société GRICS. Dans le cas de La Procure, exécuter création des vues, ce qui entraîne la définition de ces serveurs Cette étape n a à être refaite qu une fois sur le serveur SQL2005 et ce, même si on reprend la migration
Processus de migration Aspect organisationnel - 5 ème étape Lancer exécution de migration du code SQL sur le serveur (vues, fonctions, procédures stockées, déclencheurs) Utilise le même mécanisme de journalisation que pour la migration des données Actions correctives si problèmes : Peut tester une correction sur SQL2005 dans la banque source nombd_brgricsamigr La reporter dans la banque d origine sur SQL7 ou SQL2000 sinon elle sera perdue au prochain essai Peut aussi se faire manuellement après migration
Processus de migration Aspect technique - 5 ème étape ExecSp_Grics_MigrerCodeBdVersSQL2005 @lstbnq = 'Banque1 Banque2 BanqueN Utilise le même mécanisme de journalisation que pour la migration des données Si code SQL est migré OK, met la banque «online» et supprime nombd_brgricsamigr Si code SQL pas Ok, Bd à migrer conservée pour tester action corrective Reprise pour action corrective à cette étape seulement. Étape de test légère
Processus de migration Aspect organisationnel (Test final en lot) Combiner dans le même traitement les procédures : MigrerDataBdVersSQL2005 et MigrerCodeBdVersSQL2005 Si OK, basculer les sources de données vers nouveau serveur (source de données fichier) Sinon rester en production sur nos serveurs d origine jusqu à correction appropriée Reprise aussi souvent que nécessaire
Échéanciers Disponibilité des applications GRICS compatibles avec SQL7, SQL2000 et SQL2005 Juillet 2007 : Ensemble des applications Windows et Internet à l exception de Automne 2007 : Regard et Regard.NET Décembre 2007 : GPI, GPI Internet, SPI et Portfolio Migration simultanée requise pour certaines applications
Échéanciers Abandon du support de SQL7 et SQL2000 pour les applications GRICS Juin 2008 État de la situation lors des rencontres du GGT de février et juin 2007
Perspectives d avenird Plusieurs nouveautés architecturales intéressantes SQL Service Broker : Permet applications plus distribuées Support du format XML et primitives XML Extensions très puissantes au langage SQL (intéressant pour performance, facilite production de rapports, programmation) Fonctionnalités «Entreprise» dans édition «Standard»
Perspectives d avenird SQL Server Reporting Services (Engin de rapport en mode Web) Rendu en plusieurs formats intéressants (html, Pdf) Présentation en mode forage Interface usager pour paramétrage Paramétrage spécifique à l utilisateur Engin très sophistiqué sous l aspect possibilités de disposition des données
Perspectives d avenird SQL Server Integration Services Engin d extraction, transformation, chargement des données Programmation et exécution en mode «visuel» Au moyen de contrôles riches pour la manipulation, transformation, extraction Élément essentiel aux applications d aide de support à la décision (SQL Server Analysis Services)
Conclusion SQL Server 2005 Prêt pour la consolidation Calibre grande entreprise (Ex: Xérox, Dell) Offre des fonctionnalités innovatrices et + La migration Rien pour faire peur, elle se prend relax On a tout fait pour que ça soit facile qu on sache d avance où l on s en va Questions?
Pour plus d informationd Internet : www.grics.qc.ca Téléphone : (514) 251-3730 Télécopieur : (514) 251-3920 Courriel : sac@grics.qc.ca