Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

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

Il existe plusieurs façons de procéder :

  1. Utilisation de SSIS (Services d'intégration SQL Server) . Il n'importe que des 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, il s'agit d'un processus très simple et peut être effectué simplement en passant par l'assistant de SQL Server Management Studio.
  2. Utilisation d'une combinaison de scripts de création SSIS et de base de données . Cela vous permettra d'obtenir des données et toutes les métadonnées manquantes qui ne sont pas transférées par SSIS. C'est aussi très simple. Commencez par transférer les données à l'aide de SSIS (voir les instructions ci-dessous), puis créez un script DB Create à partir de la base de données SQL Azure et rejouez-le sur votre base de données locale.
  3. Enfin, vous pouvez utiliser le service d'importation/exportation 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 de stockage Azure et faites-le 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 de moyen d'automatiser cela via des outils ou des scripts -- du moins la première partie qui nécessite un clic sur la page Web.

Procédure manuelle pour la 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 (clic droit sur la base de données -> Tâches -> Importer des données...)
  • Tapez les paramètres de connexion pour la source (SQL Azure). Sélectionnez ".Net Framework Data Provider for SqlServer" comme fournisseur.
  • Choisissez une base de données locale vide existante comme destination.
  • Suivez l'assistant :vous pourrez sélectionner les données des tableaux que vous souhaitez copier. Vous pouvez choisir d'ignorer les tables dont vous n'avez pas besoin. Par exemple. si vous conservez les journaux d'application 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 chaque fois que vous souhaitez réimporter les données. Notez que vous ne pouvez importer qu'à l'aide de SSIS vers une base de données propre, vous ne pouvez pas effectuer de mises à jour incrémentielles sur votre base de données locale une fois que vous l'avez déjà fait une fois.

Méthode #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 avec le bouton droit sur la base de données dans SSMS, choisissez Générer des scripts -> Créer une base de données). Rejouez 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. Après cela, vous pouvez copier le fichier localement et l'importer dans votre instance SQL. Le processus d'importation de BACPAC dans l'application Data-Tier est décrit ici :http://msdn.microsoft.com/en-us/library/hh710052.aspx.