Невозможно экспортировать базу данных Azure SQL - PullRequest
0 голосов
/ 01 июля 2018

Когда я пытаюсь экспортировать свою базу данных с помощью кнопки «Экспорт» на портале Azure, я получаю следующую ошибку:

Error encountered during the service operation. 
Could not extract package from specified database. 
The element DataSyncEncryptionKey_8d263adb59574052847134070b69d73d is not supported in Microsoft Azure SQL Database v12.

Хотя я однажды попробовал сервис DataSync, я никогда не заканчивал тем, что использовал его и, конечно, не использую его сейчас. Я сожалею даже о том, что попробовал этот сервис, потому что он создал схемы в моей базе данных, которые я не знаю, как полностью удалить.

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

По крайней мере, было бы неплохо устранить эту ошибку. Однако было бы лучше, если бы я мог удалить все следы службы DataSync.

Обратите внимание, что я уже использовал сценарий в принятом решении этого вопроса: Как вручную удалить объекты SQL Azure Data Sync . Это удалило схему DataSync, но я все еще остаюсь со схемами 'dss' и 'TaskHosting'.

Я также пытался отправить поддержку по электронной почте, в соответствии с рекомендациями, принятыми в этой ветке: https://social.msdn.microsoft.com/Forums/azure/en-US/8b68b44b-c98a-4b38-8aab-36a30a7fafd9/the-element-datasyncencryptionkeyid-is-not-supported-in-microsoft-azure-sql-database-v12-when?forum=ssdsgetstarted. Это письмо просто отскочило назад.

Кроме того, если я захожу на портал Azure, на нем не отображаются какие-либо группы синхронизации или агенты синхронизации.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Прежде всего, позвольте мне поблагодарить @ alberto-morillo за его помощь. Существует большая вероятность того, что агент SQL сработал бы, если бы ситуация была иной.

В конце концов, я связался со службой поддержки Azure, и они дали мне следующий сценарий. После этого все работало нормально.

declare @n char(1)

set @n = char(10)



declare @triggers nvarchar(max)

declare @procedures nvarchar(max)

declare @constraints nvarchar(max)

declare @views nvarchar(max)

declare @FKs nvarchar(max)

declare @tables nvarchar(max)

declare @udt nvarchar(max)



-- triggers

select @triggers = isnull( @triggers + @n, '' ) + 'drop trigger [' + schema_name(schema_id) + '].[' + name + ']'

from sys.objects

where type in ( 'TR') and name like '%_dss_%'



-- procedures

select @procedures = isnull( @procedures + @n, '' ) + 'drop procedure [' + schema_name(schema_id) + '].[' + name + ']'

from sys.procedures

where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'



-- check constraints

select @constraints = isnull( @constraints + @n, '' ) + 'alter table [' + schema_name(schema_id) + '].[' + object_name( parent_object_id ) + ']    drop constraint [' + name + ']'

from sys.check_constraints

where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'



-- views

select @views = isnull( @views + @n, '' ) + 'drop view [' + schema_name(schema_id) + '].[' + name + ']'

from sys.views

where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'



-- foreign keys

select @FKs = isnull( @FKs + @n, '' ) + 'alter table [' + schema_name(schema_id) + '].[' + object_name( parent_object_id ) + '] drop constraint [' + name + ']'

from sys.foreign_keys

where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'



-- tables

select @tables = isnull( @tables + @n, '' ) + 'drop table [' + schema_name(schema_id) + '].[' + name + ']'

from sys.tables

where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'



-- user defined types

select @udt = isnull( @udt + @n, '' ) +

    'drop type [' + schema_name(schema_id) + '].[' + name + ']'

from sys.types

where is_user_defined = 1

and schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'

order by system_type_id desc





print @triggers

print @procedures

print @constraints

print @views

print @FKs

print @tables

print @udt



exec sp_executesql @triggers

exec sp_executesql @procedures

exec sp_executesql @constraints

exec sp_executesql @FKs

exec sp_executesql @views

exec sp_executesql @tables

exec sp_executesql @udt



GO

declare @n char(1)

set @n = char(10)

declare @functions nvarchar(max)



-- functions

select @functions = isnull( @functions + @n, '' ) + 'drop function [' + schema_name(schema_id) + '].[' + name + ']'

from sys.objects

where type in ( 'FN', 'IF', 'TF' )

and schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'





print @functions

exec sp_executesql @functions

GO



--update

DROP SCHEMA IF EXISTS [dss]

GO

DROP SCHEMA IF EXISTS [TaskHosting]

GO

DROP SCHEMA IF EXISTS [DataSync]

GO

DROP USER IF EXISTS [##MS_SyncAccount##]

GO

DROP ROLE IF EXISTS [DataSync_admin]

GO

DROP ROLE IF EXISTS [DataSync_executor]

GO

DROP ROLE IF EXISTS [DataSync_reader]

GO





declare @n char(1)

set @n = char(10)





--symmetric_keys

declare @symmetric_keys nvarchar(max)

select @symmetric_keys = isnull( @symmetric_keys + @n, '' ) + 'drop symmetric key [' + name + ']'

from sys.symmetric_keys

where name like 'DataSyncEncryptionKey%'



print @symmetric_keys



exec sp_executesql @symmetric_keys



-- certificates

declare @certificates nvarchar(max)

select @certificates = isnull( @certificates + @n, '' ) + 'drop certificate [' + name + ']'

from sys.certificates

where name like 'DataSyncEncryptionCertificate%'



print @certificates



exec sp_executesql @certificates

GO



print 'Data Sync clean up finished'
0 голосов
/ 01 июля 2018

Надеюсь, вы задали этот вопрос, прежде чем продолжить, выполнив действия, описанные в тех старых темах форума, которые были созданы, когда SQL Data Sync 2.0 не существовало. Синхронизация данных SQL больше не находится в предварительном просмотре, в этом месяце она перешла к GA и имеет утилиту deprovision.

На компьютере, на котором установлен агент SQL, в каталоге c: \ program files (x86) \ Microsoft SQL Azure Data Sync вы найдете утилиту с именем deprovisionUtil.exe. Если вы запустите его с ключом / F, он удалит схему DSS и все ее объекты.

Если сейчас это невозможно, создайте заявку в службу поддержки. Служба поддержки Azure очистит синхронизирующую базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...