Migrer de MSDE 2000 vers SQL 2005 Express
Transcription
Migrer de MSDE 2000 vers SQL 2005 Express
Migrer de MSDE 2000 vers SQL 2005 Express Comment migrer son server MSDE vers SQL Express Après la rédaction des précédents articles sur SQL Server 2005 Express Edition, il restait un sujet évident qui n'avait pas encore été traité. En effet, comment faire pour migrer nos bases de données du server MSDE 2000 vers ce nouveau moteur. Introduction Nous avons vu dans les articles précédents le moteur MSDE 2000, puis le moteur SQL Server 2005 Express Edition. Ainsi dans ce nouvel article, nous nous attacherons à expliquer comment migrer nos données du précédent vers le nouveau moteur SQL. Il existe plusieurs possibilités pour faire cette mise à jour. Nous étudierons les principales méthodes pas à pas. Tous nos scripts et toutes nos méthodes seront effectués avec l'aide de SQL Server Management Studio Express. Présentation Nous partons d'un principe établit, la nouvelle version du moteur SQL Server est vraiment très performante. La version gratuite fournie par Microsoft apporte des avantages indéniables qui impliquent forcément une question très importante : • Doit-on migrer notre moteur MSDE vers Express Edition ? Plusieurs indications peuvent nous aider à répondre en répondant à ces quelques autres questions : • • • Les bases sur le MSDE dépassent-elles les 2 GO ? Combien de connexions concurrentes ? Le moteur MSDE est-il installé pour une application spécifique ? Dans le cas où les réponses nous invitent à faire cette migration, il nous faut savoir comment effectuer celle-ci. Nous allons donc commencer par la méthode classique, le backup-restore. Afin de pouvoir effectuer nos différents exemples, nous baserons nos scénarii sur les bases d'exemple disponibles (Northwind et pubs) pour MSDE 2000 : • Northwind and pubs Sample Databases (US) Il existe différentes méthodes pour migrer un server SQL, mais dans le cas de MSDE et SQL Express tout en utilisant SQL Management Studio Express, nous avons principalement deux méthodes : • • Le Backup-Restore Le Detach-Attach Migration à l'aide d'un Backup-Restore Depuis SQL Server Management Studio Express, nous nous connectons sur le serveur MSDE, de la même façon que pour le serveur SQL Express. La façon de faire un backup depuis Management Studio est de cliquer avec le bouton droit sur la base que l'on veut sauvegarder (dans notre exemple "Northwind"), puis sélectionner "Task" et ensuite "Back Up...". Le problème avec Management Studio est que celui-ci utilise pour la gestion SMO sur SQL 2005 au lieu de DMO sur SQL 2000. De ce fait, il est plus simple d'utiliser un script générique de sauvegarde en TSQL : BACKUP DATABASE [Northwind] TO DISK = N'C:\Northwind.bak' WITH NOFORMAT, NOINIT, NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO Une fois la sauvegarde effectuée, nous devons nous connecter sur le serveur SQL Express (toujours avec Management Studio). Nous allons maintenant créer une nouvelle base de données avec le même nom "Northwind", en cliquant avec le bouton droit sur "Databases" et sélectionnant "New Database...". On renseigne les différents paramètres de cette nouvelle base et cliquant sur OK. Nous avons maintenant la base Northwind dans notre SQL Express. Pour effectuer une restauration depuis un fichier BAK, il nous faut cliquer avec le bouton droit de la souris sur cette nouvelle base et aller dans "Tasks", puis "Restore" et "Database...". Il faut alors chercher le fichier BAK en sélectionnant "From Device", puis allant chercher le fichier dans son répertoire. Il nous faut alors cocher la ligne de la base de données. Il nous faut aussi changer les répertoires dans lesquels les fichiers de données et Log, en allant dans les options, ainsi que de spécifier que nous écrasons la base existante. On clique enfin sur "OK". Nous pouvons aussi passer par un script TSQL tel que celui-ci. RESTORE DATABASE [Northwind] FROM DISK = N'D:\Northwind.bak' WITH FILE = 1 , MOVE N'Northwind' TO N'C:\Program Files \Microsoft SQL Server 2005 \MSSQL.1 \MSSQL\Data \northwnd.mdf', MOVE N'Northwind_log' TO N'C:\Program Files \Microsoft SQL Server 2005 \MSSQL.1 \MSSQL\Data \northwnd.ldf', NOUNLOAD, REPLACE, STATS = 10 GO On retrouve alors toutes les tables de notre base qui était au départ sur MSDE. Attention : • • Voyons Avant de faire la restauration, il faut créer les comptes SQL existant sur le serveur MSDE qui accédaient à cette base. En effet, dans le cas contraire, la restauration peut provoquer une erreur et ne pas se terminer correctement. Il faut adapter les deux scripts à votre configuration en changeant les répertoires si besoin maintenant une seconde solution pour cette migration, en faisant un Detach-Attach Migration à l'aide d'un Detach-Attach Cette méthode correspond à : • • • Enlever la base du moteur MSDE Copier les fichiers de données et de log dans le répertoire des données SQL Express Monter la base sur le moteur SQL Express Voyons maintenant comment faire ceci toujours avec Management Studio Express. Nous prendrons pour cet exemple la base exemple Pubs que nous avons téléchargé et installé sur le moteur MSDE. Une fois connecté sur le moteur MSDE, nous cliquons avec le bouton droit de la souris sur la base "Pubs", "Tasks" et sélectionnons "Detach...". Nous avons alors une fenêtre nous proposant de détacher cette base, nous pouvons sélectionner de mettre à jour les statistiques du server avant ce détachement. La seconde option permet de déconnecter les éventuelles connexions actives fonctionne sur un moteur SQL Server 2005 et non avec le moteur SQL Server 2000 (toujours du fait du changement vers SMO). Une fois l'option sélectionnée, nous cliquons sur OK. La base est détachée, de ce fait on ne voit plus la base Pubs dans le moteur MSDE. Nous pouvons aussi utiliser un script TSQL tel que celui-ci : USE [master] GO EXEC master.dbo.sp_detach_db @dbname = N'pubs', @skipchecks = 'false' GO Une fois ce détachement terminé nous devons nous connecter sur le moteur SQL Express afin d'attacher cette base Pubs sur SQL Express. Au préalable, nous devons copier les fichiers de données et de log (PUBS.MDF et PUBS_LOG.LDF pour notre exemple) depuis le répertoire des données de MSDE vers le répertoire des données de SQL Express (dans notre exemple : C:\Program Files\Microsoft SQL Server 2005\MSSQL.1\MSSQL\Data\). Ceci n'est pas obligatoire, mais nous permet juste de conserver une structure simple dans nos répertoires de données. Maintenant que ces fichiers sont dans le répertoire approprié, nous devons nous connecter sur notre serveur SQL Express, nous devons cliquer avec le bouton droit de la souris sur "Databases" et sélectionner Attach... Nous avons alors une fenêtre dans laquelle nous devons spécifier où se trouve le fichier de données (Pusbs.mdb) en cliquant sur "Add..." et cherchant le fichier MDB. On peut alors cliquer sur OK et la base est alors montée sur le moteur SQL Express. Nous pouvons aussi exécuter cela via un script tel que celui-ci : USE [master] GO CREA TE DATABASE [pubs] O N ( FILENAME = N ' C :\Program Files \Microsoft SQL Server 2005 \MSSQL.1 \MSSQL\Data \pubs.mdf' ), ( FILENAME = N ' C :\Program Files \Microsoft SQL Server 2005 \MSSQL.1 \MSSQL\Data \pubs_log.LDF' ) FOR ATTACH GO if not exists (select name from master.sys.databases s d where name = N'pubs' and SUSER_SNAME(sd.owner_sid) = SUSER_SNAME() ) EXEC [pubs].dbo.sp_changedbowner @loginame=N'sa', @map=false GO On voit enfin cette base apparaît dans la liste du serveur SQL Express. Conclusion Nous avons donc pu voir à travers cet article comment effectuer une migration depuis la version SQL Server 2000 MSDE vers la version SQL Server 2005 Express Edition. Ceci en utilisant l'outil fournis gratuitement par Microsoft : • SQL Server 2005 Management Studio Express Le module d'Import qui existait sous SQL Enterprise Manager n'est plus disponible sur Management Studio Express. En revanche, dans le cas où votre entreprise possède l'outil complet de gestion de moteur SQL Server 2005 : • SQL Server 2005 Management Studio Nous pouvons regarder dans l'outil de manipulation des données de Microsoft SQL Server Integration Services (MS SSIS), afin de pouvoir effectuer une importation des données du server MSDE vers SQL Express. Voici quelques liens utiles si cet article vous a intéressé : • Site officiel de SQL Server (US) • Site officiel de SQL Server Express Edition (US) • Upgrading from MSDE 2000 to SQL Server 2005 Express Edition (US) • Microsoft SQL Server Management Studio Express - Community Technical Preview (CTP) November 2005 (US) • SQL Server 2005 Books Online (US) • SQL Server 2005 Express Edition Documentation and Samples (US) • SQL Server 2005 Samples and Sample Databases (US) • sqlexpress's WebLog (US) • Express Edition Beta Products (US) • Express Editions Home - Webcasts (US) • SQL Server 2005 Express Edition Developper Center (US) En vous souhaitant de bons projets de développement. Romelard Fabrice (alias F___) Consultant Technique ILEM
Documents pareils
Créer un rapport pour Reporting Services
Afin de voir un peu plus les possibilités et l'usage de Reporting Services, il est tout à fait possible de télécharger
les exemples fournis (conçus à partir de la base de données des articles de sp...