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



Answers

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

  1. Экспортируйте базу данных Azure SQL в файл BACPAC на хранилище blob.
  2. Изнутри студии управления SQL щелкните правой кнопкой мыши вашу базу данных, нажмите «импортировать приложение уровня данных».
  3. Вам будет предложено ввести информацию, чтобы перейти к файлу BACPAC на вашем хранилище брандмауэров Azure.
  4. Хит следующий пару раз и ... Сделано!
Question

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

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




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

Точнее:

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

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




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

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

https://sqlazuremw.codeplex.com/







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

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

База данных Azure SQL Database Bacpac Local Restore




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

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

Ответ берется из https://.com/a/685073/6796187




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

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

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




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

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

  1. Скопируйте строку подключения на странице свойств базы данных. Отрегулируйте его так, чтобы он содержал правильный пароль.
  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. Экспортируйте лазурную БД в пакет 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
    



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




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

Шаг 1:

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

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

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

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

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

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

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

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

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

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




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

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

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




Related