Как скопировать базу данных SQL Azure на локальный сервер разработки?

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

Любые предложения?

Ответ 1

Существует несколько способов сделать это:

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

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

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

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

Метод № 2 (данные SSID плюс объекты схемы) очень прост. Сначала выполните описанные выше шаги, затем создайте создание базы данных script (сначала щелкните по базе данных в SSMS, выберите "Сгенерировать скрипты → Создать базу данных" ). Затем повторите воспроизведение этого script в локальной базе данных.

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

Ответ 2

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

  • Экспорт базы данных Azure SQL в файл BACPAC на хранилище blob.
  • Внутри студии управления SQL щелкните правой кнопкой мыши вашу базу данных и нажмите "импортировать приложение уровня данных".
  • Вам будет предложено ввести информацию, чтобы перейти к файлу BACPAC на вашем хранилище брандмауэров Azure.
  • Нажмите несколько раз и... Готово!

Ответ 3

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

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

enter image description here

"Далее"/"Далее"/"Готово"

Ответ 4

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

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

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

Ответ 5

Думаю, теперь намного легче.

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

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

Ответ 6

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

Ответ 7

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

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

НО, будьте осторожны, если вы также хотите, чтобы DATA, а также скрипты, обязательно проверьте дополнительные параметры перед началом генерации... прокрутите вниз до "Типы данных до script" и убедитесь, что у вас есть "Схема и данные"... или все, что подходит вам.

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

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

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

Ответ 8

Использование 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
    

Ответ 10

Я не смог заставить импорт/экспорт SSIS работать, так как получил ошибку "Вставка ошибки в столбце" Только для чтения "id". Я также не мог http://sqlazuremw.codeplex.com/ работать, а ссылки выше для SQL Azure Data Sync для меня не работали.

Но я нашел отличную запись в блоге о файлах BACPAC: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/

В видео в сообщении автор сообщения в блоге проходит через шесть шагов:

  • Сделайте или перейдите на учетную запись хранилища на портале управления Azure. Вам понадобится URL-адрес Blob и основной ключ доступа к хранилищу Счет.

  • Сообщение в блоге советует создать новый контейнер для файла bacpac и предлагает использовать Azure Storage Explorer. (Нотабене вам понадобится URL-адрес Blob и основной ключ доступа к хранилищу чтобы добавить его в Azure Storage Explorer.)

  • На портале управления Azure выберите базу данных, экспорта и нажмите "Экспорт" в разделе "Импорт и экспорт" ленты.

  • В результате диалога требуется ваше имя пользователя и пароль для базу данных, URL-адрес blob и ключ доступа. Не забудьте включить контейнер в URL-адресе blob и указать имя файла (например, https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac).

  • После нажатия кнопки "Готово" база данных будет экспортирована в BACPAC файл. Это может занять некоторое время. Вы можете увидеть файл с нулевым байтом немедленно, если вы зарегистрируетесь в Azure Storage Explorer. Это Служба импорта/экспорта, проверяющая, что у нее есть доступ на запись к блоб-магазин.

  • Как только это будет сделано, вы можете использовать Azure Storage Explorer для загрузки файл BACPAC, а затем в SQL Server Management Studio щелкните правой кнопкой мыши папку локальной базы данных сервера и выберите "Импорт". Приложение уровня данных, которое запустит мастер, который читает в BACPAC для создания копии вашей базы данных Azure. Мастер также может напрямую подключаться к хранилищу blob для получения BACPAC если вы предпочитаете не копировать его локально сначала.

Последний шаг может быть доступен только в редакторе SQL Server 2012 для SQL Server Management Studio (в той версии, в которой я запущен). У меня нет предыдущих на этой машине, чтобы проверить. В сообщении в блоге автор использует инструмент командной строки DacImportExportCli.exe для импорта, который, как мне кажется, доступен в http://sqldacexamples.codeplex.com/releases

Ответ 11

Относительно "я не смог заставить импорт/экспорт SSIS работать, поскольку я получил ошибку". Вставка ошибки в столбце "только для чтения" "только для чтения". Это можно получить, указав на экране сопоставления, что вы хотите, чтобы элементы Identity были вставлены.

После этого все отлично работало с помощью мастера импорта/экспорта SQL для копирования из Azure в локальную базу данных.

У меня был только мастер импорта/экспорта SQL, который поставляется с SQL Server 2008 R2 (отлично работает) и Visual Studio 2012 Express для создания локальной базы данных.

Ответ 13

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

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

https://sqlazuremw.codeplex.com/

Ответ 14

Вы можете использовать новые Azure Mobile Services для ночного резервного копирования из SQL Azure в файл .bacpac, размещенный в Azure Storage. Это решение представляет собой 100% облако, не требует стороннего инструмента и не требует локального размещения экземпляра SQL Server для загрузки/копирования/резервного копирования.

Здесь около 8 различных шагов, но все они легко: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx

Ответ 15

Я всегда использую функцию импорта/экспорта, которая кажется самой простой среди всех.

Шаг 1:

Получите резервную копию из экземпляра Azure следующим образом. Выберите базу данных → Щелкните правой кнопкой мыши → Задачи → Экспортировать приложение уровня данных.

Шаг 2: Дайте конкретное имя для файла резервной копии и сохраните его в нужном месте

Шаг 3: Это вы сделали резервную копию базы данных из экземпляра SQL в ваш локальный. Давайте восстановим его до локального. Скопируйте резервную копию базы данных на ваш диск C. Теперь откройте PowerShell с правами администратора и перейдите на диск C

Шаг 4: Давайте загрузим скрипт powershell, чтобы удалить мастер- ключ .RemoveMasterKey.ps1 имеет скрипт на том же диске, в данном случае это C.

Шаг 5: Запустите сценарий следующим образом. \RemoveMasterKey.ps1 -bacpacPath "C:\identity.bacpac"

Теперь вы можете восстановить его на MSSQL 2017 в вашей локальной среде.

Шаг 6. Подключитесь к локальному серверу и выберите Базы данных → Import-Data-Tier-Application

Шаг 7: Дайте имя вашей базе данных для восстановления.

Теперь вы увидите все зеленым!

Читайте мой блог с диаграммами.

Ответ 16

Загрузить Optillect SQL Azure Backup - у него 15-дневная пробная версия, поэтому этого будет достаточно, чтобы переместить вашу базу данных:)

Ответ 17

Хитрость для меня заключалась в том, чтобы начать тиражирование PKs/FKs/ограничений на пустой БД, а затем временно отключить ограничения при импорте данных (см. fooobar.com/questions/12205/...).

Точнее:

  • Создать пустую целевую БД вручную;
  • Щелкните правой кнопкой мыши исходную БД > Задачи > Сгенерировать скрипты;
  • Запустите script файл на пустой целевой БД (теперь у DB есть правильные PKs/FKs/ограничения, но нет данных);
  • Отключить все ограничения;
  • Импорт данных (щелкните правой кнопкой мыши целевую БД > Задачи > Импорт данных);
  • Восстановить ограничения.

Надеюсь, это поможет!

Ответ 18

Теперь вы можете использовать SQL Server Management Studio для этого.

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

Ответ 20

Если у кого-то есть проблема с импортом Bacpac из базы данных, которая использует Azure SQL Sync, Sandrino Di Mattia разработала простое приложения, чтобы решить эту проблему.

  • Экспорт Bacpac вашей БД
  • Dowload Di Mattia бинарный
  • С помощью этого консольного приложения восстановите загруженный Bacpac
  • Lauch SSMS
  • Щелкните правой кнопкой мыши на "Базы данных" и выберите "Импортировать приложение уровня данных"
  • Выберите отремонтированный Bacpac.

Ответ 21

Если кто-то хочет бесплатный и эффективный вариант (и не против делать это вручную) для резервного копирования базы данных на локальный, то используйте функции сравнения схем и данных, встроенные в последнюю версию Microsoft Visual Studio 2015 Community Edition (бесплатно) или Professional/Премиум/Окончательный выпуск. Он работает как шарм!

У меня есть учетная запись BizPark с Azure и нет возможности напрямую резервировать базу данных без оплаты. Я нашел эту опцию в VS работает.

Ответ берется из fooobar.com/questions/22942/...

Ответ 22

Привет, я использую инструмент SQLAzureMW для миграции и управления базами данных SQLAzure. Очень полезно. Он был загружен из codeplex, но в настоящее время он недоступен, когда будет запущен codeplex, тот же инструмент приложения теперь доступен в GttHub. В приведенной ниже ссылке объясняется, как использовать этот инструмент, а также доступно приложение для загрузки.

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

Ответ 23

В SQL Server Management Studio

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

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