Как скопировать базу данных SQL Azure на локальный сервер разработки? - PullRequest
146 голосов
/ 29 марта 2011

Кто-нибудь знает, как я могу скопировать базу данных SQL Azure на мою машину разработки?Я хотел бы прекратить платить, чтобы иметь базу данных разработки в облаке, но это лучший способ получить производственные данные.Я копирую свою производственную базу данных в новую базу данных разработки, но я бы хотел, чтобы эта же база данных была локальной.

Есть предложения?

Ответы [ 23 ]

122 голосов
/ 30 марта 2011

Есть несколько способов сделать это:

  1. Использование служб SSIS (служб интеграции SQL Server) . Он только импортирует data в вашу таблицу. Свойства столбцов, ограничения, ключи, индексы, хранимые процедуры, триггеры, настройки безопасности, пользователи, входы в систему и т. Д. Не передаются. Однако это очень простой процесс, который можно выполнить, просто пройдя мастер в SQL Server Management Studio.
  2. Использование комбинации сценариев создания служб SSIS и БД . Это позволит вам получить данные и все недостающие метаданные, которые не передаются службами SSIS. Это тоже очень просто. Сначала перенесите данные с помощью служб SSIS (см. Инструкции ниже), затем создайте сценарий DB Create из базы данных SQL Azure и повторно воспроизведите его в локальной базе данных.
  3. Наконец, вы можете использовать Служба импорта / экспорта в SQL Azure . Это передает данные (с объектами схемы) в хранилище BLOB-объектов Azure в виде BACPAC. Вам понадобится учетная запись хранилища Azure и сделайте это на веб-портале Azure. Это так же просто, как нажать кнопку «Экспорт» на веб-портале Azure, когда вы выбираете базу данных, которую вы хотите экспортировать. Недостатком является то, что это только ручная процедура, я не знаю, как автоматизировать это с помощью инструментов или скриптов - по крайней мере, первая часть, которая требует щелчка на веб-странице.

Ручная процедура для метод # 1 (с использованием SSIS) следующая:

  • В Sql Server Management Studio (SSMS) создайте новую пустую базу данных в локальном экземпляре SQL.
  • Выберите Импорт данных из контекстного меню (щелкните правой кнопкой мыши базу данных -> Задачи -> Импорт данных ...)
  • Введите параметры подключения для источника (SQL Azure). Выберите «Поставщик данных .Net Framework для SqlServer» в качестве поставщика.
  • Выберите существующую пустую локальную базу данных в качестве места назначения.
  • Следуйте указаниям мастера - вы сможете выбрать из таблиц данные, которые хотите скопировать. Вы можете пропустить любую таблицу, которая вам не нужна. Например. если вы храните журналы приложений в базе данных, вам, вероятно, не понадобится это в резервной копии.

Вы можете автоматизировать его, создав пакет служб SSIS и выполнив его в любое время, когда захотите повторно импортировать данные. Обратите внимание, что вы можете импортировать только с использованием SSIS в чистую БД, вы не можете делать инкрементные обновления в вашей локальной базе данных, если вы уже сделали это один раз.

Метод # 2 (данные SSID плюс объекты схемы) очень прост. Сначала выполните действия, описанные выше, затем создайте сценарий создания БД (щелкните правой кнопкой мыши базу данных в SSMS, выберите «Создать сценарии» -> «Создание базы данных»). Затем переиграйте этот скрипт в вашей локальной базе данных.

Метод № 3 описан в блоге здесь: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. Существует видеоклип с процессом передачи содержимого БД в хранилище BLOB-объектов Azure в виде BACPAC. После этого вы можете скопировать файл локально и импортировать его в ваш экземпляр SQL. Процесс импорта BACPAC в приложение уровня данных описан здесь: http://msdn.microsoft.com/en-us/library/hh710052.aspx.

30 голосов
/ 15 мая 2013

Я просто хотел добавить упрощенную версию ответа Дамблдада , поскольку он правильный.

  1. Экспорт базы данных SQL Azure в файл BACPAC в хранилище больших двоичных объектов.
  2. В среде SQL Management Studio щелкните правой кнопкой мыши свою базу данных, нажмите «Импортировать приложение уровня данных».
  3. Вам будет предложено ввести информацию для доступа к файлу BACPAC на вашем компьютере.Хранилище BLOB-объектов Azure.
  4. Нажмите пару раз и ... Готово!
25 голосов
/ 05 февраля 2018

Копирование данных базы данных Azure в локальную базу данных. Теперь вы можете использовать SQL Server Management Studio для выполнения следующих действий:

  • Подключение к базе данных SQL Azure.
  • Щелкните правой кнопкой мышибазы данных в обозревателе объектов.
  • Выберите параметр «Задачи» / «Развертывание базы данных в SQL Azure».
  • На шаге «Параметры развертывания» подключите локальный SQL Server и создайте новую базу данных..

enter image description here

«Далее» / «Далее» / «Готово»

22 голосов
/ 25 октября 2016

В SQL Server 2016 Management Studio процесс получения базы данных Azure на локальный компьютер был упрощен.

Щелкните правой кнопкой мыши базу данных, которую вы хотите импортировать, выберите Задачи> Экспорт данных-уровня приложения и экспортируйте свою базу данных в локальный файл .dacpac.

В локальном целевом экземпляре сервера SQL вы можете щелкнуть правой кнопкой мыши Базы данных> Импортировать приложение уровня данных икогда он локальный, вы можете выполнять такие операции, как резервное копирование и восстановление базы данных.

20 голосов
/ 29 августа 2015

Я думаю, теперь это стало намного проще.

  1. Запустите SQL Management Studio
  2. Щелкните правой кнопкой мыши «Базы данных» и выберите «Импортировать приложение уровня данных ...»
  3. Мастер проведет вас через процесс подключения к учетной записи Azure, создания файла BACPAC и создания базы данных.

Кроме того, я использую Sql Backup и FTP (https://sqlbackupandftp.com/) для ежедневного резервного копирования на защищенный FTP-сервер. Я просто извлекаю оттуда недавно полученный файл BACPAC и импортирую его в том же диалоговом окне, что ускоряет и упрощает создание локальной базы данных.

8 голосов
/ 05 апреля 2011

Вы также можете проверить Синхронизация данных SQL Azure на портале управления Windows Azure. Он позволяет вам извлекать и восстанавливать всю базу данных, включая схему и данные между SQL Azure и SQL Server.

5 голосов
/ 23 мая 2016

Это довольно легко.Это сработало для меня ... с точки зрения переноса базы данных SQL Azure на локальный компьютер ...:

  1. Откройте SQL Management Studio и подключитесь к Azure SQL Server.
  2. Выберите базу данных, которую вы хотите загрузить на локальный компьютер, и щелкните правой кнопкой мыши ... выберите «Создать сценарии».Следуйте инструкциям ...

НО, будьте осторожны в том, что если вы ТАКЖЕ хотите ДАННЫЕ, а также сценарии, обязательно проверьте Дополнительные параметры перед началом генерации ... прокрутите внизв «Типы данных для сценария», и убедитесь, что у вас есть «Схема и данные» ... или что вам подходит.

Это даст вам хороший файл сценария SQL, который затем можно будет запустить наваш локальный компьютер, и он создаст базу данных, а также заполнит ее всеми данными.

Имейте в виду, что в моем случае у меня нет FK или других ограничений ... кроме того, это не быломного данных.

Я вообще не рекомендую это как механизм резервного копирования ...

3 голосов
/ 09 апреля 2014

Использование msdeploy.exe

Предупреждение: msdeploy.exe не может создать целевую базу данных самостоятельно, поэтому сначала необходимо создать ее вручную.

  1. Скопировать строку подключенияна странице свойств базы данных.Настройте его так, чтобы он содержал правильный пароль.database properties page
  2. Получить строку подключения для конечной БД.
  3. Выполнить msdeploy.exe, например:

    "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
    

ИспользованиеSqlPackage.exe

  1. Экспорт базы данных Azure в пакет 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. Импорт пакета в локальную базу данных.

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
    
3 голосов
/ 29 марта 2011

Пожалуйста, попробуйте это: http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-azure/.

Другой альтернативой будет Синхронизация данных SQL Azure .

Есть еще одно сообщение в блоге, которое я перебрал несколько дней назад, но не смог найти его сейчас. Я обновлю этот пост, как только найду его.

2 голосов
/ 22 октября 2016

Можно попробовать с помощью инструмента «Мастер миграции баз данных SQL». Этот инструмент позволяет импортировать и экспортировать данные из Azure SQL.

Пожалуйста, проверьте подробности здесь.

https://sqlazuremw.codeplex.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...