Sébastien Pertus
Plateforme Azure : Migrer !
La plateforme AZURE va bientôt passer de sa phase de béta test à sa phase commerciale. Il est temps de songer à migrer nos applications existantes vers le Cloud.
Par Sébastien Pertus publié le 06/09/2009 à 22:43, lu 2397 fois, 7 pages
 5 | Migration de la base de données vers SQL Azure Database
SQL Services contient plusieurs briques, orientées exploitation des données, et nous allons utiliser la principale, à savoir le moteur de base de données relationnel :
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image5.png
 
Aujourd’hui en CTP, SQL Azure Database offre les principaux services de base de données, en terme de stockage et de requêtage.
Il manque encore beaucoup de choses pour rendre le produit plus convivial, comme l’intégration de SQL Azure Database dans SQL Server Management Studio (SSMS), mais cette CTP se focalise surtout sur l’aspect « services rendus » et « fonctionnalités relationnelles principales ».
Pour migrer notre base de données, nous devons être sûr que les fonctionnalités utilisées dans celle-ci sont bien prises en charge par SQL Azure Database.
Un petit tour par la documentation MSDN en ligne (en CTP elle aussi) pour vérifier ces quelques points :
La migration de la base de données va se faire en plusieurs étapes :
  • Création de la base de données sur SQL Azure
  • Génération du script de création des tables, procédures stockées, vues.
  • Nettoyage du script : Options non prises en compte dans SQL Azure, transformation des types non gérés (les types obsolètes ne sont pas pris en charge par SQL Azure)
  • Création des tables sur SQL Azure
  • Création d’un lot SSIS d’import des données
  • Importation des données dans SQL Azure
Tout se passe directement depuis l’interface SQL Azure.
Création de la base de données, et récupération de la chaine de connexion :
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image16.png
 
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image17.png
 
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image18.png
 
Je vous conseille l’excellent blog de Patrick Guimonet qui vous explique en détail et pas à pas comment créer votre base de données sur SQL Azure
Bien que celui-ci n’est pas encore été mis à jour pour se connecter sur AZURE, il est tout de même possible d’utiliser SSMS pour travailler directement sur votre base de donnée SQL AZURE.
Pour vous connecter, je vous conseille, encore une fois, de suivre les indications de Patrick Guimonet, qui nous explique dans son blog comment procéder.
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image19.png
 
Il est, pour le moment, impossible de directement restaurer un backup d’une base de données locale, sur SQL Azure. De ce fait, nous allons passer par la génération d’un script SQL.
Nous utilisons une fonctionnalité présente dans SQL Management Studio : La génération de scripts.
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image20.png
 
Au niveau des options de scripts, on notera surtout de bien veiller à ne PAS scripter le Use Database, non pris en charge dans SQL Azure.
Le script généré contient de nombreuses options, comme les paramètres par défaut, les types marqués obsolète etc .. qui ne sont pas pris en charge par SQL Azure. Nous devons donc, avant de créer les tables, épurer le script pour le rendre totalement « compatible SQL Azure »
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image21.png
 
Il existe de nombreuses façons d’arriver à ce résultat :
Une fois épuré, vous pouvez tester votre script directement sur SQL Azure :
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image22.png
 
Et donc, une fois testé et validé, il ne reste plus qu’à exécuter ce script sur votre base de données « In The Cloud » !
Vous pouvez utiliser SSIS pour migrer vos données locales vers SQL Azure.
Pour cela, lors de la réalisation de la migration, j’ai été confronté à plusieurs problèmes, pour lesquelles il existe des contournements. Notez, entre autre, que:
  • Tout d’abord en Design, SSIS a du mal à se connecter à AZURE. La chaine de connexion a l’air de ne pas trop lui plaire. Je suis donc passé, lors de la phase de développement des lots, par une instance SQL EXPRESS et une base de données de test (base de donnée que j’ai créée à l’aide du script précédemment généré)
  • Ensuite, SQL Azure ne supporte pas les connexions (du moins avec SSIS) autre que ADO.NET SqlProvider. Exit donc les connections OleDb, préconisées généralement avec SSIS.
Une fois ces quelques écueils résolus, le développement des lots SSIS reste classique.
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image23.png
 
Lors de l’exécution des lots, il suffit de changer la chaine de connexion de l’instance locale vers l’instance SQL Azure :
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image24.jpeg
 
L’exécution du lot terminé, notre base de données est prête !
 
/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image25.png
 
 
» Démarrer une discussion