Нам нужно то же самое. Вот некоторые шаги, которые мы сделали, и результаты:
1) Экспорт с помощью средства миграции базы данных SQL, созданного ghuey. Вы можете скачать здесь: https://sqlazuremw.codeplex.com/ Это отличный инструмент, и я очень рекомендую вам сначала попробовать его. В зависимости от сложности вашей базы данных, она будет работать нормально. У нас, к сожалению, не сработало. Итак, вы перешли к следующему шагу.
2) Пакет DAC. В 2008 году есть возможность сгенерировать DACPAC, который создает структуру базы данных в Azure, а затем вы можете выполнить развертывание в Azure, ссылаясь на соединение в 2008 Studio Managament. Щелкните правой кнопкой мыши на Azure. Сервер, развертывание ... подробнее см. Здесь: http://world.episerver.com/documentation/Items/Upgrading/EPiserver-Commerce/8/Migrating-Commerce-databases-to-Azure/ Что ж, если это сработает для вас, ПОПРОБУЙТЕ ЭТО. Так проще. У нас, к сожалению, не сработало. Итак, вы перешли к следующему шагу.
3) Использование сервера 2012 для экспорта BACPAC и последующего импорта в Azure. Для этого необходимо выполнить несколько действий. Вот:
а. Создайте резервную копию в 2008 и переместите файл на сервер 2012;
б. Восстановить резервную копию в 2012 году;
c. Сделайте SQL, который:
c1. Установить всех владельцев СХЕМ на DBO. Вы можете использовать SQL для перемещения схемы следующим образом: ALTER AUTHORIZATION ON SCHEMA :: [db_datareader] TO [dbo]
c2. Удалите всех созданных вами пользователей;
c3. Удалите все MS_Description (Расширить свойства) всех столбцов и таблиц
c4. Отбросьте все ограничения (совет: сгенерируйте полный скрипт базы данных с включенной опцией drop and create и скопируйте часть «drop constraint»
c5. Нам нужно удалить параметры коэффициента заполнения индексов вашей базы данных. Вы можете сделать это повторно, создав индекс (включая PK, с которым связан кластерный индекс). Отбросить каждый кластер PK - не так просто, но с небольшой помощью Google вы сможете найти сценарий, который поможет вам создавать и удалять. Вот сценарий:
DECLARE @object_id int;
DECLARE @parent_object_id int;
DECLARE @TSQL NVARCHAR( 4000);
DECLARE @COLUMN_NAME SYSNAME;
DECLARE @is_descending_key bit;
DECLARE @col1 BIT;
DECLARE @action CHAR( 6);
SET @action = 'DROP';
--SET @action = 'CREATE';
DECLARE PKcursor CURSOR FOR
select kc.object_id , kc .parent_object_id
from sys.key_constraints kc
inner join sys .objects o
on kc.parent_object_id = o.object_id
where kc.type = 'PK' and o. type = 'U'
and o.name not in ( 'dtproperties','sysdiagrams' ) -- not true user tables
order by QUOTENAME (OBJECT_SCHEMA_NAME( kc.parent_object_id ))
,QUOTENAME( OBJECT_NAME(kc .parent_object_id));
OPEN PKcursor ;
FETCH NEXT FROM PKcursor INTO @object_id, @parent_object_id;
WHILE @@FETCH_STATUS = 0
BEGIN
IF @action = 'DROP'
SET @TSQL = 'ALTER TABLE '
+ QUOTENAME (OBJECT_SCHEMA_NAME( @parent_object_id))
+ '.' + QUOTENAME(OBJECT_NAME (@parent_object_id))
+ ' DROP CONSTRAINT ' + QUOTENAME(OBJECT_NAME (@object_id))
ELSE
BEGIN
SET @TSQL = 'ALTER TABLE '
+ QUOTENAME (OBJECT_SCHEMA_NAME( @parent_object_id))
+ '.' + QUOTENAME(OBJECT_NAME (@parent_object_id))
+ ' ADD CONSTRAINT ' + QUOTENAME(OBJECT_NAME (@object_id))
+ ' PRIMARY KEY'
+ CASE INDEXPROPERTY( @parent_object_id
,OBJECT_NAME( @object_id),'IsClustered' )
WHEN 1 THEN ' CLUSTERED'
ELSE ' NONCLUSTERED'
END
+ ' (' ;
DECLARE ColumnCursor CURSOR FOR
select COL_NAME (@parent_object_id, ic.column_id ), ic .is_descending_key
from sys .indexes i
inner join sys. index_columns ic
on i .object_id = ic .object_id and i .index_id = ic .index_id
where i .object_id = @parent_object_id
and i .name = OBJECT_NAME (@object_id)
order by ic. key_ordinal;
OPEN ColumnCursor ;
SET @col1 = 1 ;
FETCH NEXT FROM ColumnCursor INTO @COLUMN_NAME, @is_descending_key;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@col1 = 1 )
SET @col1 = 0
ELSE
SET @TSQL = @TSQL + ',';
SET @TSQL = @TSQL + QUOTENAME( @COLUMN_NAME)
+ ' '
+ CASE @is_descending_key
WHEN 0 THEN 'ASC'
ELSE 'DESC'
END;
FETCH NEXT FROM ColumnCursor INTO @COLUMN_NAME, @is_descending_key;
END;
CLOSE ColumnCursor ;
DEALLOCATE ColumnCursor ;
SET @TSQL = @TSQL + ');';
END;
PRINT @TSQL;
FETCH NEXT FROM PKcursor INTO @object_id , @parent_object_id ;
END;
CLOSE PKcursor ;
DEALLOCATE PKcursor ;
c6. Восстановите FK
c7. Удалить все индексы
c8. Повторно создать все индексы (без параметров коэффициента заполнения)
d. Теперь щелкните правой кнопкой мыши базу данных 2012 года и экспортируйте уровень данных в хранилище Azure в формате BACPAC. После завершения импортируйте в Azure. Должно работать :-)
person
Charles
schedule
02.04.2015