Intereting Posts

Ошибка импорта SQL Azure V12 BACPAC: «Тип внутренней целевой платформы SqlAzureV12DatabaseSchemaProvider не поддерживает версию файла схемы« 3.3 »»

До недавнего времени мне удалось импортировать V12 BACPAC с Azure на локальный сервер с SQL Server 2014 SP1 CU6 (12.0.4449.0).

Но теперь, когда я пытаюсь импортировать BACPAC, моя SQL Server Management Studio 2014 говорит:

Внутренняя ошибка Внутренняя целевая платформа SqlAzureV12DatabaseSchemaProvider не поддерживает версию файла схемы «3.3». (Файл: D: \ MyDB.bacpac) (Microsoft.Data.Tools.Schema.Sql) "

Я думаю, что у меня есть последняя версия SQL Server 2014 SP1 со всеми последними обновлениями (build 12.0.4449.0), но все же я получаю эту ошибку.

Пожалуйста помоги!

благодаря

Solutions Collecting From Web of "Ошибка импорта SQL Azure V12 BACPAC: «Тип внутренней целевой платформы SqlAzureV12DatabaseSchemaProvider не поддерживает версию файла схемы« 3.3 »»"

Исправление: для разрешения используйте последний SSMS-просмотр, который устанавливает самую последнюю версию DacFx. Это понимает, как обрабатывать последние функции, в частности параметры конфигурации с расширенными возможностями базы данных. После установки вы можете импортировать внутри SSMS или использовать SqlPackage из каталога «C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ DAC \ bin», если вы предпочитаете инструменты командной строки.

В качестве альтернативы, выполните следующую команду в Azure DB, чтобы вернуть значение MaxDop в значение по умолчанию, так как кажется, что проблема в том, что это было изменено на 1. В будущем экспорте теперь должны появляться бакпаки, которые могут быть поняты клиентскими инструментами 2014 года, не предполагая, что другие в базу данных добавлены новые функции Azure.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0 

Корневая причина / почему это происходит: Основная причина заключается в том, что ваша база данных имеет значения, отличные от значений по умолчанию, для 1 или более вариантов конфигурации базы данных. Поскольку они были добавлены совсем недавно, более старые версии инструментов не понимают, как их развернуть, и поэтому блоки DacFx. Это единственные свойства / объекты с такой высокой версией схемы. В принципе, в любое время, когда вы видите ошибку типа «не поддерживает версию файла схемы 3,3», это означает, что вам нужно обновить. Одной из возможных причин является миграция базы данных из AzureV1 -> AzureV12, которая устанавливает для параметра MaxDop значение 1 по умолчанию по умолчанию 0.

Примечания. Настоятельно рекомендуется использовать новейшие SSMS и обновлять их с помощью встроенных уведомлений об обновлениях, если вы работаете с Azure. он гарантирует, что вы не столкнетесь с такими проблемами, как этот. Как правило, если вы используете только площадь поверхности SQL Server 2014, вы должны использовать старые инструменты при повторном импорте, но с огромным количеством последних достижений в Azure SQL DB такие случаи будут возникать все чаще и чаще, когда новые инструменты требуются для выполнения, как ожидалось.

Для справки, я включаю в себя параметры конфигурации базы данных и их значения по умолчанию ниже. Если какое-либо из этих свойств не является дефолтом в БД при экспорте версии схемы, она сталкивается с тем, что старые инструменты не прерываются.

 <!-- Database Scoped Configurations--> <Property Name="MaxDop" Type="System.Int32" DefaultValue="0" /> <Property Name="MaxDopForSecondary" Type="System.Int32?" DefaultValue="null"/> <Property Name="LegacyCardinalityEstimation" Type="System.Boolean" DefaultValue="false" /> <Property Name="LegacyCardinalityEstimationForSecondary" Type="System.Boolean?" DefaultValue="null" /> <Property Name="ParameterSniffing" Type="System.Boolean" DefaultValue="true" /> <Property Name="ParameterSniffingForSecondary" Type="System.Boolean?" DefaultValue="null" /> <Property Name="QueryOptimizerHotfixes" Type="System.Boolean" DefaultValue="false" /> <Property Name="QueryOptimizerHotfixesForSecondary" Type="System.Boolean?" DefaultValue="null" /> 

Простое решение «Alter», данное Кевином (ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0), похоже, является быстрым решением для разрешения кризиса для тех, у кого проблемы с клиентом. Не обращайте внимания на установку последнего ЦАП или SQL Server 2016, нет необходимости разрешать немедленную проблему, PLUS – все, что находится в состоянии предварительного просмотра (бета). Вряд ли что-то, что вы хотите внедрить в производственную среду прямо сейчас

Это, по-видимому, произошло только с нами, если у нас была база данных v11, ожидающая автоматического обновления с помощью MSFT, установленного для этих последних выходных. Для этих обновлений базы данных мы отменили и применили обновление самостоятельно, поле Max Degree of Parallelism, похоже, не было установлено в 0, и эта ошибка произошла. У нас около 300 дБ, и мы заметили это как образец

FYI: вы можете проверить значение этой проблемы с помощью этого SQL-запроса

  SELECT [dbscm].[value] AS [MaxDop], [dbscm].[value_for_secondary] AS [MaxDopForSecondary], [dbscl].[value] AS [LegacyCardinalityEstimation], [dbscl].[value_for_secondary] AS [LegacyCardinalityEstimationForSecondary], [dbscp].[value] AS [ParameterSniffing], [dbscp].[value_for_secondary] AS [ParameterSniffingForSecondary], [dbscq].[value] AS [QueryOptimizerHotfixes], [dbscq].[value_for_secondary] AS [QueryOptimizerHotfixesForSecondary] FROM [sys].[databases] [db] WITH (NOLOCK) LEFT JOIN [sys].[database_scoped_configurations] AS [dbscm] WITH (NOLOCK) ON [dbscm].[name] = N'MAXDOP' LEFT JOIN [sys].[database_scoped_configurations] AS [dbscl] WITH (NOLOCK) ON [dbscl].[name] = N'LEGACY_CARDINALITY_ESTIMATION' LEFT JOIN [sys].[database_scoped_configurations] AS [dbscp] WITH (NOLOCK) ON [dbscp].[name] = N'PARAMETER_SNIFFING' LEFT JOIN [sys].[database_scoped_configurations] AS [dbscq] WITH (NOLOCK) ON [dbscq].[name] = N'QUERY_OPTIMIZER_HOTFIXES' WHERE [db].[name] = DB_NAME(); 

Я столкнулся с той же проблемой, пока я импортировал экспорт из лазурного дерева в свой локальный экземпляр MSSQLLocalDB (для локальной отладки).

Я не хотел прикасаться к лазурному db, и не хотел скачать последний предварительный просмотр.

Итак, то, что я сделал, было следующим. На моем местном db :

  1. Выполнено изменение запроса, устанавливающего значение для MAXDOP 1
    ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1

  2. Импортировал bacpac, который успешно работал.

  3. MAXDOP значение MAXDOP 0
    ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0

Надеюсь, это поможет кому-то в аналогичном случае использования