Има няколко начина да направите това:
- Използване на SSIS (SQL Server Integration Services) . Той импортира само
data
във вашата маса. Свойства на колони, ограничения, ключове, индекси, съхранени процедури, тригери, настройки за сигурност, потребители, влизания и т.н. не се прехвърлят. Това обаче е много прост процес и може да се направи просто като преминете през съветника в SQL Server Management Studio. - Използване на комбинация от скриптове за създаване на SSIS и DB . Това ще ви даде данни и всички липсващи метаданни, които не се прехвърлят от SSIS. Това също е много просто. Първо прехвърлете данни с помощта на SSIS (вижте инструкциите по-долу), след това създайте скрипт за създаване на DB от базата данни SQL Azure и го пуснете отново във вашата локална база данни.
- Накрая можете да използвате услуга за импортиране/експортиране в SQL Azure . Това прехвърля данни (с обекти на схема) към Azure Blob Storage като BACPAC. Ще ви трябва акаунт за съхранение в Azure и направете това в уеб портала на Azure. Това е толкова просто, колкото да натиснете бутон „Експортиране“ в уеб портала на Azure, когато изберете базата данни, която искате да експортирате. Недостатъкът е, че това е само ръчна процедура, не знам начин да автоматизирам това чрез инструменти или скриптове – поне първата част, която изисква щракване върху уеб страницата.
Ръчна процедура за метод №1 (използвайки SSIS) е следното:
- В Sql Server Management Studio (SSMS) създайте нова празна база данни във вашия локален SQL екземпляр.
- Изберете Импортиране на данни от контекстното меню (щракнете с десния бутон върху базата данни -> Задачи -> Импортиране на данни...)
- Въведете параметрите на връзката за източника (SQL Azure). Изберете „.Net Framework Data Provider for SqlServer“ като доставчик.
- Изберете съществуваща празна локална база данни като дестинация.
- Следвайте съветника – ще можете да изберете данни от таблици, които искате да копирате. Можете да изберете да пропуснете всяка от таблиците, от които не се нуждаете. напр. ако съхранявате регистрационните файлове на приложения в базата данни, вероятно нямате нужда от тях във вашия архив.
Можете да го автоматизирате, като създадете SSIS пакет и го изпълните отново всеки път, когато пожелаете да импортирате отново данните. Имайте предвид, че можете да импортирате само с помощта на SSIS в чиста DB, не можете да правите постепенни актуализации на вашата локална база данни, след като вече сте го направили веднъж.
Метод №2 (SSID данни плюс обекти на схема) е много проста. Първо преминете през стъпките, описани по-горе, след това създайте скрипт за създаване на DB (щракнете с десен бутон върху базата данни в SSMS, изберете Generate Scripts -> Database Create). След това пуснете отново този скрипт във вашата локална база данни.
Метод №3 е описано в блога тук:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. Има видеоклип с процеса на прехвърляне на DB съдържание в хранилището на Azure Blob като BACPAC. След това можете да копирате файла локално и да го импортирате във вашия SQL екземпляр. Процесът на импортиране на BACPAC в приложението Data-Tier е описан тук:http://msdn.microsoft.com/en-us/library/hh710052.aspx.