sql >> Database >  >> RDS >> Sqlserver

Hoe kopieer ik SQL Azure-database naar mijn lokale ontwikkelserver?

Er zijn meerdere manieren om dit te doen:

  1. SSIS (SQL Server Integration Services) gebruiken . Het importeert alleen data in je tafel. Kolomeigenschappen, beperkingen, sleutels, indices, opgeslagen procedures, triggers, beveiligingsinstellingen, gebruikers, aanmeldingen, enz. worden niet overgedragen. Het is echter een heel eenvoudig proces en kan eenvoudig worden gedaan door de wizard in SQL Server Management Studio te doorlopen.
  2. Een combinatie van SSIS- en DB-creatiescripts gebruiken . Hiermee krijgt u gegevens en alle ontbrekende metagegevens die niet door SSIS worden overgedragen. Dit is ook heel eenvoudig. Breng eerst gegevens over met behulp van SSIS (zie onderstaande instructies), maak vervolgens een DB Create-script vanuit de SQL Azure-database en speel het opnieuw af op uw lokale database.
  3. Ten slotte kunt u de Import/Export-service in SQL Azure gebruiken . Hiermee worden gegevens (met schema-objecten) overgedragen naar Azure Blob Storage als een BACPAC. U hebt een Azure Storage-account nodig en doet dit in de Azure-webportal. Het is zo eenvoudig als het indrukken van een "Exporteren"-knop in de Azure-webportal wanneer u de database selecteert die u wilt exporteren. Het nadeel is dat het alleen een handmatige procedure is, ik weet geen manier om dit te automatiseren door middel van tools of scripts -- in ieder geval het eerste deel dat een klik op de webpagina vereist.

Handmatige procedure voor methode #1 (met behulp van SSIS) is het volgende:

  • Maak in Sql Server Management Studio (SSMS) een nieuwe lege database op uw lokale SQL-instantie.
  • Kies Gegevens importeren uit het contextmenu (klik met de rechtermuisknop op de database -> Taken -> Gegevens importeren...)
  • Typ verbindingsparameters voor de bron (SQL Azure). Selecteer ".Net Framework Data Provider for SqlServer" als provider.
  • Kies een bestaande lege lokale database als bestemming.
  • Volg de wizard -- u kunt de tabelgegevens selecteren die u wilt kopiëren. Je kunt ervoor kiezen om alle tafels die je niet nodig hebt over te slaan. bijv. als u toepassingslogboeken in de database bewaart, heeft u deze waarschijnlijk niet nodig in uw back-up.

U kunt het automatiseren door een SSIS-pakket te maken en het opnieuw uit te voeren wanneer u maar wilt om de gegevens opnieuw te importeren. Merk op dat je alleen met SSIS kunt importeren in een schone DB, je kunt geen incrementele updates doen aan je lokale database als je het al een keer hebt gedaan.

Methode #2 (SSID-gegevens plus schema-objecten) is heel eenvoudig. Ga eerst door de hierboven beschreven stappen en maak vervolgens een DB Creation-script (klik met de rechtermuisknop op database in SSMS, kies Scripts genereren -> Database maken). Speel dit script vervolgens opnieuw af in uw lokale database.

Methode #3 wordt beschreven in de blog hier:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. Er is een videoclip met het proces van het overbrengen van DB-inhoud naar Azure Blob-opslag als BACPAC. Daarna kunt u het bestand lokaal kopiëren en importeren in uw SQL-instantie. Het proces van het importeren van BACPAC naar de Data-Tier-toepassing wordt hier beschreven:http://msdn.microsoft.com/en-us/library/hh710052.aspx.



  1. MariaDB GEBRUIKER() uitgelegd

  2. Per ongeluk postgres standaard superuser-privileges verwijderd - kan ik het terugkrijgen?

  3. Overeenkomende algoritme in SQL

  4. Geen geschikt stuurprogramma gevonden voor 'jdbc:mysql://localhost:3306/mysql