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


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

какие предложения?

22 122

22 ответа:

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

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

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

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

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

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

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

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

  1. экспорт базы данных SQL Azure в файл BACPAC в хранилище больших двоичных объектов.
  2. из среды SQL Management studio щелкните правой кнопкой мыши свою базу данных, выберите "импортировать приложение уровня данных".
  3. вам будет предложено ввести информацию для получения файла BACPAC в хранилище больших двоичных объектов Azure.
  4. нажмите "Далее" пару раз и все... Готово!

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

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

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

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

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

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

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

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

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

enter image description here

"Далее" / "Далее" / "Finish"

используя 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 Server0\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 Server0\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
    

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

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

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

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

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

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

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

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

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

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

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

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

  1. создайте или перейдите к учетной записи хранения на портале управления Azure. Вам понадобится URL-адрес большого двоичного объекта и первичный ключ доступа к хранилищу счет.

  2. сообщение в блоге советует сделать новый контейнер для файла bacpac и предлагает использовать Хранилище Azure Исследователь для этого. (Б. Н. вам понадобится URL-адрес большого двоичного объекта и первичный ключ доступа к хранилищу аккаунт для добавления это в Обозреватель хранилища Azure.)

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

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

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

  6. после этого вы можете использовать хранилище Azure Проводник для загрузки файл BACPAC, а затем в среде SQL Server Management Studio щелкните правой кнопкой мыши папку базы данных локального сервера и выберите Импорт Приложение уровня данных, которое запустит мастер, который читает в Файл BACPAC для создания копии базы данных Azure. Волшебник можно также подключиться непосредственно к blob-store, чтобы получить BACPAC файл, если вы не хотите сначала скопировать его локально.

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

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

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

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

принятый ответ устарел. Я нашел лучший ответ: используйте Import Data-tier Application

более подробную информацию см. В этой статье: восстановление базы данных SQL Azure на локальный сервер

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

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

https://sqlazuremw.codeplex.com/

Скачать Optillect SQL Azure Backup - Он имеет 15-дневную пробную версию, так что будет достаточно, чтобы переместить базу данных:)

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

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

трюк для меня состоял в том, чтобы начать репликацию PKS/FKs / ограничений на пустую БД, а затем временно отключить ограничения при импорте данных (см. https://stackoverflow.com/a/161410).

более точно:

  1. создать пустую целевую БД вручную;
  2. щелкните правой кнопкой мыши источник БД > задачи > создать скрипты;
  3. запустите файл скрипта на пустой целевой БД (теперь БД имеет правильные ограничения PKs/FKs/, но нет данных);
  4. отключить все ограничения;
  5. импорт данных (щелкните правой кнопкой мыши целевой БД > задачи > импорт данных);
  6. Включить ограничения.

надеюсь, что это помогает!

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

  • подключение к базе данных SQL Azure.
  • щелкните правой кнопкой мыши базу данных в Обозревателе объектов.
  • выберите опцию "задачи" / "развертывание базы данных в SQL Azure".
  • на шаге "параметры развертывания" выберите подключение к локальной базе данных.
  • "Далее" / "Далее" / "Готово"...

используйте службу импорта/экспорта в SQL Azure для создания .bacpac-файл.

затем взгляните на этот метод в другой статье переполнения стека.

база данных SQL Azure Bacpac локальное восстановление

Если у кого-то есть проблема с импортом Bacpac БД, которая использует синхронизация SQL Azure, Сандрино Ди Маттиа разработал Большое Простое приложение чтобы решить эту проблему.

  1. экспорт Bacpac вашей БД
  2. скачать Ди Маттиа binary
  3. С помощью этого консольного приложения восстановите загруженный Bacpac
  4. Lauch SSMS
  5. щелкните правой кнопкой мыши на "базы данных" и выберите " Импорт данных-уровень Приложение"
  6. выберите восстановленный Bacpac.

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

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

ответ взято из https://stackoverflow.com/a/685073/6796187

Привет я использую инструмент SQLAzureMW для миграции и управления БД SQLAzure. Очень полезная штука. Он был скачан с сайта CodePlex, но в данный момент он не доступен на сайте CodePlex будет идти к завершению работы один и тот же инструмент приложение, которое теперь доступно в GttHub. Эта ссылка ниже объясняет, как использовать этот инструмент, а также доступно приложение для скачать.

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

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

Шаг 1:

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

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

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

Шаг 4: позволяет загрузить сценарий powershell для удаления master keyRemoveMasterKey. ps1 есть сценарий на том же диске в этом случае его C.

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

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

Шаг 6: подключитесь к локальному серверу и выберите базы данных → импорт-уровень данных-приложение

Шаг 7: Укажите имя базы данных для восстановления.

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

читать мои блог с диаграммами.