Как скопировать базу данных SQL Azure на локальный сервер разработки?
кто-нибудь знает, как я могу скопировать базу данных SQL Azure на мою машину разработки? Я хотел бы перестать платить, чтобы иметь базу данных разработки в облаке, но это лучший способ получить производственные данные. Я копирую свою производственную базу данных в новую базу данных разработки, но я хотел бы иметь ту же самую локальную базу данных.
какие предложения?
22 ответа:
есть несколько способов сделать это:
- использование служб SSIS (служб SQL Server Integration Services). Он только импортирует
data
в вашей таблице. Свойства столбца, ограничения, ключи, индексы, хранимые процедуры, триггеры, параметры безопасности, пользователи, вход, и т. д. не переносятся. Однако это очень простой процесс и может быть сделано просто с помощью мастера в среде SQL Server Management Studio.- использование комбинации создание SSIS и БД скрипты. Это позволит получить данные и все отсутствующие метаданные, которые не передаются службами SSIS. Это тоже очень просто. Сначала передайте данные с помощью служб SSIS (см. инструкции ниже), затем создайте сценарий создания БД из базы данных SQL Azure и повторно воспроизведите его в локальной базе данных.
- наконец, вы можете использовать Импорт / Экспорт службы в 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.
Я просто хотел добавить упрощенный вариант ответ Дамблдора, так как это правильный.
- экспорт базы данных SQL Azure в файл BACPAC в хранилище больших двоичных объектов.
- из среды SQL Management studio щелкните правой кнопкой мыши свою базу данных, выберите "импортировать приложение уровня данных".
- вам будет предложено ввести информацию для получения файла BACPAC в хранилище больших двоичных объектов Azure.
- нажмите "Далее" пару раз и все... Готово!
Я думаю, что теперь это намного проще.
- запустите SQL Management Studio
- Правой Кнопкой Мыши на "базы данных" и выберите "Импорт приложения уровня данных..."
- мастер проведет вас через процесс подключения к учетной записи 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 и создайте новую базу данных.
"Далее" / "Далее" / "Finish"
используя
msdeploy.exe
предостережение:
msdeploy.exe
не удается создать целевую базу данных самостоятельно, поэтому вам нужно сначала создать ее вручную.
- скопировать строку подключения на странице свойств базы данных. Отрегулируйте его так, чтобы он содержал правильный пароль.
- получить строку подключения для целевой базы данных.
выполнить
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
экспорт базы данных 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"
импорт пакета в локальную БД.
"c:\Program Files (x86)\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
Это довольно легко. Это сработало для me...in условия получения базы данных SQL Azure на локальном компьютере...:
- откройте SQL Management Studio и подключитесь к Azure SQL Server.
- выберите базу данных вы хотите получить вниз на вашем локальном компьютере и щелкните правой кнопкой мыши...выберите "Создать сценарии". Следовать подсказкам...
но, будьте осторожны в том, что если вы также хотите данные, а также скрипты, не забудьте проверить Дополнительные параметры перед началом генерации...прокрутите вниз до "типы данных для сценария "и убедитесь, что у вас есть"схема и данные"...или все, что подходит для вас.
Это даст вам хороший файл сценария 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/
на видео в пост автор в блоге проходит через шесть этапов:
создайте или перейдите к учетной записи хранения на портале управления Azure. Вам понадобится URL-адрес большого двоичного объекта и первичный ключ доступа к хранилищу счет.
сообщение в блоге советует сделать новый контейнер для файла bacpac и предлагает использовать Хранилище Azure Исследователь для этого. (Б. Н. вам понадобится URL-адрес большого двоичного объекта и первичный ключ доступа к хранилищу аккаунт для добавления это в Обозреватель хранилища Azure.)
на портале управления Azure выберите нужную базу данных экспорт и нажмите кнопку "Экспорт" в разделе импорт и экспорт лента.
в результате диалога требуется ваше имя пользователя и пароль для база данных, URL-адрес большого двоичного объекта и ключ доступа. Не забудьте включить контейнер в URL большого двоичного объекта и включить имя файла (например, https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac).
после нажатия кнопки Готово база данных будет экспортирована в BACPAC файл. Это может занять некоторое время. Вы можете увидеть файл с нулевым байтом сразу же, если вы проверяете в Обозревателе хранилища Azure. Это Служба импорта / экспорта проверяет, имеет ли она доступ на запись к клякса-магазин.
после этого вы можете использовать хранилище 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.
пожалуйста, проверьте более подробную информацию здесь.
Скачать 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).
более точно:
- создать пустую целевую БД вручную;
- щелкните правой кнопкой мыши источник БД > задачи > создать скрипты;
- запустите файл скрипта на пустой целевой БД (теперь БД имеет правильные ограничения PKs/FKs/, но нет данных);
- отключить все ограничения;
- импорт данных (щелкните правой кнопкой мыши целевой БД > задачи > импорт данных);
- Включить ограничения.
надеюсь, что это помогает!
теперь для этого можно использовать среду SQL Server Management Studio.
- подключение к базе данных SQL Azure.
- щелкните правой кнопкой мыши базу данных в Обозревателе объектов.
- выберите опцию "задачи" / "развертывание базы данных в SQL Azure".
- на шаге "параметры развертывания" выберите подключение к локальной базе данных.
- "Далее" / "Далее" / "Готово"...
используйте службу импорта/экспорта в SQL Azure для создания .bacpac-файл.
затем взгляните на этот метод в другой статье переполнения стека.
Если у кого-то есть проблема с импортом Bacpac БД, которая использует синхронизация SQL Azure, Сандрино Ди Маттиа разработал Большое Простое приложение чтобы решить эту проблему.
- экспорт Bacpac вашей БД
- скачать Ди Маттиа binary
- С помощью этого консольного приложения восстановите загруженный Bacpac
- Lauch SSMS
- щелкните правой кнопкой мыши на "базы данных" и выберите " Импорт данных-уровень Приложение"
- выберите восстановленный 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. Эта ссылка ниже объясняет, как использовать этот инструмент, а также доступно приложение для скачать.
Я всегда использую функцию импорта / экспорта, которая кажется самой простой среди всех.
Шаг 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: Укажите имя базы данных для восстановления.
теперь вы увидите все в зеленом цвете!
читать мои блог с диаграммами.