web-dev-qa-db-fra.com

Comment copier une base de données SQL Azure sur mon serveur de développement local?

Est-ce que quelqu'un sait comment je peux copier une base de données SQL Azure sur ma machine de développement? J'aimerais arrêter de payer pour avoir une base de données de développement dans le cloud, mais c'est le meilleur moyen d'obtenir des données de production. Je copie ma base de données de production dans une nouvelle base de données de développement, mais j'aimerais que cette même base de données soit locale. 

Aucune suggestion? 

131
BZink

Il y a plusieurs façons de le faire:

  1. Utilisation de SSIS (SQL Server Integration Services). Il importe uniquement data dans votre tableau. Les propriétés de colonne, les contraintes, les clés, les index, les procédures stockées, les déclencheurs, les paramètres de sécurité, les utilisateurs, les connexions, etc. ne sont pas transférés. Cependant, ce processus est très simple et peut être effectué simplement en passant par l’assistant de SQL Server Management Studio. 
  2. Utilisation de la combinaison de SSIS et de scripts de création de base de données. Cela vous donnera les données et toutes les métadonnées manquantes qui ne sont pas transférées par SSIS. C'est aussi très simple. Transférez d'abord les données à l'aide de SSIS (voir les instructions ci-dessous), puis créez un script de création de base de données à partir de la base de données SQL Azure, puis relisez-le dans votre base de données locale. 
  3. Enfin, vous pouvez utiliser le service Import/Export dans SQL Azure. Cela transfère les données (avec des objets de schéma) vers Azure Blob Storage en tant que BACPAC. Vous aurez besoin d'un compte Azure Storage et cela dans le portail Web Azure. C'est aussi simple que d'appuyer sur un bouton "Exporter" dans le portail Web Azure lorsque vous sélectionnez la base de données que vous souhaitez exporter. L'inconvénient est qu'il ne s'agit que d'une procédure manuelle, je ne connais pas le moyen de l'automatiser à l'aide d'outils ou de scripts - du moins la première partie qui nécessite un clic sur la page Web.

La procédure manuelle pour méthode n ° 1 (à l'aide de SSIS) est la suivante:

  • Dans SQL Server Management Studio (SSMS), créez une nouvelle base de données vide sur votre instance SQL locale.
  • Choisissez Importer des données dans le menu contextuel (cliquez avec le bouton droit de la souris sur la base de données -> Tâches -> Importer des données ...).
  • Saisissez les paramètres de connexion pour la source (SQL Azure). Sélectionnez "Fournisseur de données .NET Framework pour SqlServer" en tant que fournisseur.
  • Choisissez la base de données locale vide vide comme destination.
  • Suivez l’assistant - vous pourrez sélectionner les données de la table que vous souhaitez copier. Vous pouvez choisir de passer n'importe quelle table dont vous n'avez pas besoin. Par exemple. Si vous conservez les journaux des applications dans la base de données, vous n'en aurez probablement pas besoin dans votre sauvegarde. 

Vous pouvez l’automatiser en créant un package SSIS et en le réexécutant à tout moment pour réimporter les données. Notez que vous pouvez uniquement importer à l'aide de SSIS vers une base de données vierge. Vous ne pouvez pas effectuer de mises à jour incrémentielles dans votre base de données locale une fois que vous l'avez déjà effectuée. 

Méthode n ° 2 (données SSID plus objets de schéma) est très simple. Commencez par suivre les étapes décrites ci-dessus, puis créez un script de création de base de données (cliquez sur la base de données dans SSMS, choisissez Générer des scripts -> Création de la base de données). Relancez ensuite ce script sur votre base de données locale.

Méthode # 3 est décrit dans le blog ici: http://dacguy.wordpress.com/2012/01/24/sql-Azure-importexport-service-has-hit-production/ . Il existe un clip vidéo avec le processus de transfert du contenu de la base de données vers le stockage Azure Blob en tant que BACPAC. Ensuite, vous pouvez copier le fichier localement et l'importer dans votre instance SQL. Le processus d'importation de BACPAC dans l'application de niveau données est décrit ici: http://msdn.Microsoft.com/en-us/library/hh710052.aspx .

119
seva titov

Je voulais juste ajouter une version simplifiée de la réponse de dumbledad , puisque c'est la bonne.

  1. Exportez la base de données SQL Azure vers un fichier BACPAC sur le stockage d'objets blob.
  2. Dans SQL Management Studio, cliquez avec le bouton droit de la souris sur votre base de données, puis sélectionnez "importer une application de niveau données".
  3. Vous serez invité à entrer les informations pour accéder au fichier BACPAC sur votre stockage de blob Azure.
  4. Frapper la prochaine fois et ... Fait!
29
Josh Mouch

Je pense que c'est beaucoup plus facile maintenant.

  1. Lancer SQL Management Studio 
  2. Faites un clic droit sur "Bases de données" et sélectionnez "Importer une application de niveau de données ..."
  3. L'assistant vous guidera tout au long du processus de connexion à votre compte Azure, de création d'un fichier BACPAC et de création de votre base de données.

De plus, j'utilise Sql Backup et FTP ( https://sqlbackupandftp.com/ ) pour effectuer des sauvegardes quotidiennes sur un serveur FTP sécurisé. Je tire simplement un fichier BACPAC récent à partir de là et l'importe dans la même boîte de dialogue, ce qui est plus rapide et plus facile pour créer une base de données locale.

20
ThisGuy

Dans SQL Server 2016 Management Studio, le processus permettant d'obtenir une base de données Azure sur votre ordinateur local a été simplifié.

Cliquez avec le bouton droit sur la base de données que vous souhaitez importer, cliquez sur Tâches> Exporter une application de niveau données , puis exportez votre base de données vers un fichier .dacpac local.

Dans votre instance de serveur SQL cible locale, vous pouvez cliquer avec le bouton droit de la souris sur Bases de données> Importer une application de niveau données , puis, une fois localisée, effectuer des opérations telles que la sauvegarde et la restauration de la base de données.

20
Adam Skinner

Copiez les données de la base de données Azure dans la base de données locale:

  • Connectez-vous à la base de données SQL Azure.
  • Cliquez avec le bouton droit sur la base de données dans l'Explorateur d'objets.
  • Choisissez l'option "Tâches"/"Déployer la base de données vers SQL Azure".
  • À l'étape intitulée "Paramètres de déploiement", connectez le serveur SQL local et créez une nouvelle base de données.

enter image description here

"Suivant"/"Suivant"/"Terminer"

14
Atom

Vous pouvez également consulter SQL Azure Data Sync dans le portail de gestion Windows Azure. Il vous permet de récupérer et de restaurer une base de données complète, y compris le schéma et les données entre SQL Azure et SQL Server.

8
Voclare

C'est assez facile. Cela a fonctionné pour moi ... pour obtenir une base de données SQL Azure sur votre ordinateur local ...:

  1. Ouvrez votre studio de gestion SQL et connectez-vous à votre serveur SQL Azure.
  2. Sélectionnez la base de données que vous souhaitez mettre sur votre ordinateur local, puis cliquez avec le bouton droit de la souris sur ... sélectionnez "Générer des scripts". Suivez les instructions ...

MAIS, faites attention en ce que si vous voulez AUSSI les DONNÉES, ainsi que les scripts, assurez-vous de vérifier les Options avancées avant de commencer la génération ... faites défiler jusqu'à "Types de données à écrire", et assurez-vous que vous avez bien " Schéma et données "... ou tout ce qui vous convient.

Il vous donnera un fichier de script Nice SQL qui peut ensuite être exécuté sur votre machine locale. Il créera la base de données et la remplira avec toutes les données.

Gardez à l'esprit que dans mon cas, je n'ai pas de FK ni d'autres contraintes ... aussi, ce n'était pas beaucoup de données.

Je ne recommande pas cela comme mécanisme de sauvegarde en général ...

4
Barry Theunissen

Utiliser msdeploy.exe

Avertissement: msdeploy.exe ne parvient pas à créer la base de données de destination, vous devez donc la créer manuellement.

  1. Copiez la chaîne de connexion sur la page de propriétés de la base de données. Ajustez-le de sorte qu'il contienne un mot de passe correct .database properties page
  2. Obtenez la chaîne de connexion pour la base de données de destination.
  3. Exécutez msdeploy.exe comme ceci:

    "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:dbDacFx="destination_DB_connection_string",dropDestinationDatabase=true -source:dbDacFx="Azure_DB_connection_string",includeData=true -verbose
    

Utiliser SqlPackage.exe

  1. Exportez la base de données Azure vers un package bacpac.

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"Azure_db_server" /sdn:"Azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac"
    
  2. Importez le package dans une base de données locale.

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
    
3
Gebb

Veuillez essayer ceci: http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-Azure/ .

Une autre alternative serait SQL Azure Data Sync .

Il y a encore un article de blog que j'ai rencontré il y a quelques jours mais que je ne pouvais pas trouver maintenant. Je mettrai à jour ce message dès que je le trouverai.

3
Gaurav Mantri

Vous pouvez essayer avec l'outil "Assistant de migration de base de données SQL" . Cet outil fournit une option pour importer et exporter des données à partir d'Azure SQL.

Veuillez vérifier plus de détails ici.

https://sqlazuremw.codeplex.com/

2

L'importation/exportation SSIS ne fonctionnait pas, l'erreur "Echec lors de l'insertion dans la colonne en lecture seule" "id". Je ne pouvais pas non plus obtenir http://sqlazuremw.codeplex.com/ , et les liens ci-dessus vers SQL Azure Data Sync ne fonctionnaient pas pour moi.

Mais j'ai trouvé un excellent article de blog sur les fichiers BACPAC: http://dacguy.wordpress.com/2012/01/24/sql-Azure-importexport-service-has-hit-production/

Dans la vidéo dans le post l'auteur du post du blog passe par six étapes:

  1. Créez ou accédez à un compte de stockage dans Azure Management Portal . Vous aurez besoin de l'URL du blob et de la clé d'accès principale du compte de stockage

  2. La publication de blog recommande de créer un nouveau conteneur pour le fichier bacpac et Suggère d'utiliser le Azure Storage Explorer pour cela. (N.B . Vous aurez besoin de l'URL du blob et de la clé d'accès principale du compte de stockage Pour l'ajouter à l'explorateur Azure Storage.) 

  3. Dans Azure Management Portal, sélectionnez la base de données que vous souhaitez exporter Puis cliquez sur "Exporter" dans la section Importer et exporter du ruban

  4. Le dialogue qui en résulte nécessite votre nom d'utilisateur et votre mot de passe pour la base de données , L'URL du blob et la clé d'accès. N'oubliez pas d'inclure Le conteneur dans l'URL du blob et d'inclure un nom de fichier (par exemple https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac ).

  5. Après avoir cliqué sur Terminer, la base de données sera exportée dans le fichier .AC. BACPAC. Cela peut prendre un certain temps. Un fichier de zéro octet peut s'afficher immédiatement si vous archivez l'explorateur Azure Storage. Il s’agit du service Import/Export qui vérifie qu’il dispose d’un accès en écriture sur le Blob-store. 

  6. Ceci fait, vous pouvez utiliser Azure Storage Explorer pour télécharger Le fichier BACPAC, puis dans SQL Server Management Studio , Cliquez avec le bouton droit de la souris sur le dossier de la base de données de votre serveur local et choisissez Importer. l'assistant qui lit dans le fichier BACPAC pour produire la copie de votre base de données Azure. L'assistant Peut également se connecter directement au magasin d'objets blob pour obtenir le fichier .AC. BACPAC si vous préférez ne pas le copier localement au préalable.

La dernière étape n'est peut-être disponible que dans l'édition SQL Server 2012 de SQL Server Management Studio (c'est la version que j'exécute). Je n'ai pas les précédents sur cette machine à vérifier. Dans l'article de blog, l'auteur utilise l'outil de ligne de commande DacImportExportCli.exe pour l'importation qui, je crois, est disponible sur http://sqldacexamples.codeplex.com/releases

2
dumbledad

La réponse acceptée est obsolète. J'ai trouvé une meilleure réponse: Utiliser l'application Import Data-tier

Des informations plus détaillées, consultez cet article: Restauration de la base de données Azure SQL sur un serveur local

2
Weimin Ye

En ce qui concerne "Je ne pouvais pas faire fonctionner l'importation/exportation SSIS car j'avais l'erreur" Échec d'insertion dans la colonne en lecture seule "" id "". .__ voulez autoriser l'insertion d'éléments d'identité.

Après cela, tout a fonctionné correctement à l'aide de l'assistant d'importation/exportation SQL pour copier d'Azure vers une base de données locale.

Je n'avais que l'importation/exportation SQL Wizard fournie avec SQL Server 2008 R2 (sans problème) et Visual Studio 2012 Express pour créer une base de données locale.

2
rsh

Télécharger Optillect SQL Azure Backup - 15 jours d’essai, il suffira donc de déplacer votre base de données :)

1
Optillect Team

J'utilise toujours la fonction d'importation/exportation qui semble être la plus simple parmi toutes.

Étape 1:

Obtenez la sauvegarde à partir de l'instance Azure comme suit: Sélectionnez la base de données base de données → clic droit → tâches → Exporter l'application de niveau données.

Étape 2: Donnez un nom spécifique au fichier de sauvegarde et enregistrez-le à l'emplacement de votre choix.

Étape 3: Voilà, vous avez sauvegardé la base de données à partir de l'instance SQL sur votre serveur local. Permet de le restaurer au local. Copiez la base de données sauvegardée sur votre lecteur C. Ouvrez maintenant le PowerShell avec les droits d’administrateur et accédez au lecteur C

Étape 4: Permet de télécharger le script PowerShell pour supprimer le maître keyRemoveMasterKey.ps1 avoir le script sur le même lecteur, dans ce cas, son C.

Étape 5: Exécutez le script comme suit, .\RemoveMasterKey.ps1 -bacpacPath "C:\identity.bacpac"

Voilà, vous pouvez maintenant le restaurer sur MSSQL 2017 dans votre environnement local.

Étape 6: Connectez-vous à votre serveur local et cliquez sur Bases de données → Import-Data-Data-Application.

Étape 7: Donnez un nom à votre base de données à restaurer. 

Maintenant, vous verrez tout en vert!

Lisez mon blog avec des diagrammes.

1
Sajeetharan

Vous pouvez utiliser les nouveaux services mobiles Azure pour effectuer une exportation de sauvegarde nocturne de SQL Azure vers un fichier .bacpac hébergé dans Azure Storage. Cette solution est 100% cloud, ne nécessite pas d’outil tiers, ni d’instance locale SQL Server hébergée pour tout téléchargement/copie/sauvegarde. 

Il y a environ 8 étapes différentes, mais elles sont toutes faciles: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of -votre-sql-Azure.aspx

1
Ben Barreth

Utilisez le service d'importation/exportation dans SQL Azure pour créer un fichier .bacpac.

Puis jetez un coup d'œil à cette méthode dans un autre article de Stack Overflow.

Restauration locale de Bacpac de la base de données SQL Azure

0
Jeff Bailey

L'astuce pour moi était de commencer à répliquer les PK/FK/contraintes sur des DB vides, puis de désactiver temporairement les contraintes lors de l'importation de données (voir https://stackoverflow.com/a/161410 ).

Plus précisément:

  1. Créer manuellement une base de données cible vide;
  2. Cliquez avec le bouton droit sur la base de données source> Tâches> Générer des scripts.
  3. Exécutez le fichier de script sur une base de données cible vide (la base de données a maintenant les clés de configuration/FK/contraintes, mais pas de données);
  4. Désactiver toutes les contraintes;
  5. Importer des données (Cliquez avec le bouton droit sur la base de données cible> Tâches> Importer des données);
  6. Réactiver les contraintes.

J'espère que cela t'aides!

0
Mathieu Frenette

Si quelqu'un rencontre un problème pour importer un bacpac d'une base de données qui utilise Azure SQL Sync, Sandrino Di Mattia a développé une excellente application simple pour résoudre ce problème.

  1. Exporter un Bacpac de votre base de données
  2. Télécharger Di Mattia's binary
  3. Avec cette application, réparez le Bacpac téléchargé
  4. Lancement SSMS
  5. Clic droit sur "Bases de données" et sélectionnez "Importer une application de niveau données"
  6. Sélectionnez le bacpac réparé.
0
Géza

Si quelqu'un veut une option gratuite et efficace (et ne craint pas de le faire manuellement) pour sauvegarder la base de données en local, utilisez la fonctionnalité de comparaison de schéma et de données intégrée à la dernière version de Microsoft Visual Studio 2015 Community Edition (gratuite) ou Professional/Premium/Ultimate édition. Il fonctionne comme un charme!

J'ai un compte BizPark avec Azure et il n'y a aucun moyen de sauvegarder la base de données directement sans payer. J'ai trouvé cette option dans VS Works. 

La réponse provient de https://stackoverflow.com/a/685073/6796187

0
Crennotech

Vous pouvez maintenant utiliser SQL Server Management Studio pour cela.

  • Connectez-vous à la base de données SQL Azure.
  • Cliquez avec le bouton droit sur la base de données dans l'Explorateur d'objets.
  • Choisissez l'option "Tâches"/"Déployer la base de données vers SQL Azure".
  • À l'étape intitulée "Paramètres de déploiement", sélectionnez votre connexion à la base de données locale.
  • "Suivant"/"Suivant"/"Terminer" ...
0
ferhrosa

Bonjour, j'utilise l'outil SQLAzureMW pour la gestion et la migration de bases de données SQLAzure. Très utile. Il a été téléchargé depuis codeplex, mais pour l’instant, il n’est pas disponible, codeplex va être arrêté, le même outil d’application est désormais disponible dans GttHub. Ce lien ci-dessous explique comment utiliser cet outil et également télécharger l’application.

https://github.com/twright-msft/Azure-content/blob/master/articles/sql-database/sql-database-migration-wizard.md

0
Raja Subbiah

Dans SQL Server Management Studio

Cliquez avec le bouton droit sur la base de données que vous souhaitez importer, cliquez sur Tâches> Exporter une application de données et exportez votre base de données vers un fichier .dacpac local.

Dans votre instance de serveur SQL cible locale, vous pouvez cliquer avec le bouton droit de la souris sur Bases de données> Importer une application de données. Une fois qu’elle est locale, vous pouvez effectuer des opérations telles que la sauvegarde et la restauration de la base de données.

0
Ali Sufyan