База данных Azure SQL Bacpac Local Restore
Я создал резервную копию BACPAC моей базы данных SQL Azure с помощью параметра "Экспорт" в консоли управления Azure.
Загрузив это на мою машину, я немного застрял в том, как я могу восстановить это в локальный экземпляр SQL Server. Я столкнулся с инструментом DacImportExportCli, но не смог найти пример локального восстановления.
Также, если кто-то написал сценарий, который делает это (так что это может быть запланировано), это было бы здорово.
6 ответов
Это можно сделать просто через SQL Server Management Studio 2012
- Щелкните правой кнопкой мыши узел " Соединение> Базы данных" и выберите "Импортировать приложение уровня данных..."
- Выберите "Далее" на шаге введения.
- Просмотрите или подключитесь к учетной записи хранения, где хранятся резервные копии.
Мне нужно было экспортировать базу данных SQL Azure, а затем импортировать ее на локальный сервер SQL 2008 R2 (обратите внимание, я также использую Visual Studio 2010). Microsoft, конечно, старалась изо всех сил, чтобы сделать это болезненной задачей, однако я смог сделать это, выполнив следующие действия:
Перейдите по этой ссылке http://msdn.microsoft.com/en-us/jj650014 и установите средства данных SQL Server для Visual Studio 2010
Это установит на ваш локальный диск. В моем случае, вот где это написано: C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin
Перейдите к этому через командную строку или powershell
Вы хотите выполнить SqlPackage.exe
Откройте эту ссылку, чтобы увидеть список всех параметров для SqlPackage.exe ( http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx)
Вот моя командная строка, которую мне нужно было выполнить для импорта файла.bacpac на мой локальный сервер SQL 2008 R2:
. \ SqlPackage.exe / a: Импорт /sf:C:\mydatabasefile.bacpac /tdn:NorthWind /tsn:BINGBONG
/tdn
имя базы данных, в которую вы хотите восстановить ваш bacpac-файл./tsn
это имя вашего сервера SQL.
Все эти описания параметров вы можете увидеть по ссылке из #5.
Вы можете восстановить BACPAC с помощью инструментов на стороне клиента. Видео здесь:
http://dacguy.wordpress.com/2011/09/09/importexport-services/
Инструменты доступны здесь:
Кажется, мои молитвы были услышаны. Redgate сегодня бесплатно запустила инструмент резервного копирования SQL Azure - http://www.red-gate.com/products/dba/sql-azure-backup/download
Если вы используете SSMS 2012, это так же просто, как щелкнуть правой кнопкой мыши папку "Базы данных" на сервере в обозревателе объектов и выбрать "Импортировать приложение уровня данных...".
На пути, на который стоит обратить внимание, есть одна проблема: с 26 марта 2013 года (когда мне нужно было выяснить, как это сделать самостоятельно), когда вы экспортируете.bacpac из Azure, он будет загружен в виде файла.zip, не файл.bacpac, и диалоговое окно файла, открываемое кнопкой "Обзор" в мастере импорта, будет отображать только *.bacpac или . в фильтрах файлов, подразумевая, что.zip не поддерживается. Однако, если вы измените фильтр на . выберите загруженный ZIP-файл и нажмите "Далее", мастер продолжит работу в обычном режиме.
Вот скрипт для восстановления сразу нескольких файлов bacpac: Массовое восстановление локальных файлов bacpac
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] }