Как скопировать базу данных 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
не может создать целевую базу данных самостоятельно, поэтому сначала вам нужно создать ее вручную.
- Скопируйте строку подключения на странице свойств базы данных. Настройте его так, чтобы он содержал правильный пароль.
![database properties page]()
- Получить строку подключения для целевой БД.
Запустите 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
Экспортируйте базу данных 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"
Импортируйте пакет в локальную БД.
"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
Ответ 9
Попробуйте следующее: http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-azure/.
Другой альтернативой будет SQL Azure Data Sync.
Есть еще одна запись в блоге, которую я провел через несколько дней назад, но не смог найти ее сейчас. Я обновлю это сообщение, как только найду его.
Ответ 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 для создания локальной базы данных.
Ответ 12
Принятый ответ устарел. Я нашел лучший ответ: Использовать импортное приложение уровня данных
Более подробную информацию см. в этой статье:
Восстановление базы данных Azure SQL на локальном сервере
Ответ 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".
- На шаге с именем "Параметры развертывания" выберите локальное подключение к базе данных.
- "Далее" / "Далее" / "Готово"...
Ответ 19
Используйте службу импорта/экспорта в SQL Azure для создания файла .bacpac.
Затем взгляните на этот метод в другой статье.
База данных Azure SQL Database Bacpac Local Restore
Ответ 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-сервера вы можете щелкнуть правой кнопкой мыши Базы данных> Импортировать приложение уровня данных, и, когда оно будет локальным, вы сможете выполнять такие операции, как резервное копирование и восстановление базы данных.