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

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...

Plus en détail