База данных Azure SQL Bacpac Local Restore - PullRequest
126 голосов
/ 21 октября 2011

Я создал резервную копию BACPAC моей базы данных SQL Azure с помощью параметра «Экспорт» в консоли управления Azure.

Скачав это на мою машину, я немного застрял в том, как я могу восстановить это на локальном экземпляре SQL Server. Я наткнулся на инструмент DacImportExportCli, но не смог найти пример локального восстановления.

Также, если кто-то написал сценарий, который делает это (чтобы его можно было запланировать), это было бы здорово.

Ответы [ 6 ]

176 голосов
/ 28 марта 2013

Это можно сделать просто через SQL Server Management Studio 2012

  1. Щелкните правой кнопкой мыши узел Соединение> Базы данных и выберите « Импортировать приложение уровня данных».."
  2. Выберите" Далее"на шаге введения.
  3. enter image description here
  4. Просмотрите или подключитесь к учетной записи хранения, гдерезервные копии хранятся.
52 голосов
/ 15 марта 2013

Мне нужно было экспортировать базу данных SQL Azure, а затем импортировать ее на локальный сервер SQL 2008 R2 (обратите внимание, я также использую Visual Studio 2010).Microsoft, конечно, старалась изо всех сил, чтобы сделать это болезненной задачей, однако я смог сделать это, выполнив следующее:

  1. Перейдите по этой ссылке http://msdn.microsoft.com/en-us/jj650014 и установитеИнструменты данных SQL Server для Visual Studio 2010

  2. Это будет установлено на вашем локальном диске.В моем случае, вот где это написано: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DAC \ bin

  3. Найдите это с помощью командной строки или powershell

  4. Вы хотите выполнить SqlPackage.exe

  5. Откройте эту ссылку, чтобы увидеть список всех параметров для SqlPackage.exe (http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx)

  6. Вот моя командная строка, которую мне нужно было выполнить для импорта файла .bacpac на мой локальный сервер SQL 2008 R2:

    . \ SqlPackage.exe / a: Импорт /sf:C:\mydatabasefile.bacpac / tdn: NorthWind / tsn: BINGBONG

/tdn - это имя базы данных, которую вы хотитеBACPAC файл для восстановления в. /tsn это имя вашего сервера SQL.

Вы можете увидеть все эти описания параметров по ссылке из # 5.

10 голосов
/ 27 октября 2011

Вы можете восстановить BACPAC с помощью инструментов на стороне клиента. Видео здесь:

http://dacguy.wordpress.com/2011/09/09/importexport-services/

Инструменты доступны здесь:

http://sqldacexamples.codeplex.com/documentation

7 голосов
/ 21 октября 2011

Кажется, мои молитвы были услышаны.Redgate сегодня бесплатно запустила инструмент резервного копирования SQL Azure - http://www.red -gate.com / products / dba / sql-azure-backup / download

5 голосов
/ 01 апреля 2013

Если вы используете SSMS 2012, достаточно щелкнуть правой кнопкой мыши папку «Базы данных» на сервере в обозревателе объектов и выбрать «Импортировать приложение уровня данных ...».

Существует один неровный путь, на который стоит обратить внимание: с 26 марта 2013 года (когда мне нужно было выяснить, как это сделать самостоятельно), когда вы экспортируете .bacpac из Azure, он будет загружен как. zip-файл, , а не файл .bacpac, и диалоговое окно файла, открываемое кнопкой «Обзор» в мастере импорта, будет отображать только * .bacpac или . в фильтрах файлов, подразумевая, что .zip не поддерживается. Однако если вы измените фильтр на . , выберите загруженный файл .zip и нажмите «Далее», мастер продолжит работу в обычном режиме.

3 голосов
/ 06 октября 2014

Вот скрипт для восстановления сразу нескольких файлов bacpac: Массовое восстановление файлов bacpac local

cd [FOLDERPATH]
$goodlist = dir
cd 'C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin'
foreach($i in $goodlist){ $name = $i.Name; $namer = $i.Name.Substring(0, $i.Name.length - 7); .\SqlPackage.exe /a:Import /sf:[FOLDERPATH]\$name /tdn:$namer /tsn:[SERVERNAME] }
...