我正在使用下面链接中的Microsoft文档
https://learn.microsoft.com/en-us/sql/dma/dma-commandline?view=sql-server-ver15
我从文档中使用的示例是这个
使用
对服务器上的所有数据库进行目标就绪性评估
我的最终命令如下:
/SourceConnections="Server=MYTESTSERVER;Integrated /AssessmentTargetPlatform="SqlServerWindows2019“/AssessmentResultJson="E:\temp\results\MYTESTSERVER.json”DmaCmd.exe /Action=AssessTargetReadiness /AssessmentName="MYTESTSERVER“
我想要到SQLServer2019的数据迁移评估结果,所以我在命令/AssessmentTargetPlatform="SqlServerWindows2019“中添加了这个选项
根据文档,这应该是简单而直接的。显然不是。通过运行上面的命令,我得到下面的错误,说明无效的目标平台。我复制并粘贴了这个错误的值--它不起作用。我试过了,没有引号,我仍然得到同样的错误。有人能告诉我我的命令出了什么问题吗。我的目标是评估2019年评估中给定的2016年服务器上的所有数据库。
Message:
Invalid target platform specified for assessment. Please choose one of 'SqlServer2012', 'SqlServer2014', 'SqlServer2016', 'SqlServerWindows2017', 'SqlServerLinux2017', 'SqlServerWindows2019', 'SqlServerLinux2019', 'AzureSqlDatabase' or 'ManagedSqlServer'.
HResult : 0x85FD0003
FacilityCode : 1533 (5fd)
ErrorCode : 3 (0003)
Data:
Microsoft.SqlServer.Fundamentals.OperationsInfrastructure.Contracts.ErrorFailureCategory = SettingValidationFailure
'
DmaCmd.exe Information: 0 : 'Exception type: Microsoft.SqlServer.Fundamentals.OperationsInfrastructure.Workflow.Contracts.ActionExecutionException
Message:
An exception occurred while running the action 'ValidateCommandLineSettings'.
HResult : 0x84C40001
FacilityCode : 1220 (4c4)
ErrorCode : 1 (0001)
Data:
Microsoft.SqlServer.Fundamentals.OperationsInfrastructure.Contracts.ErrorFailureCategory = UnexpectedFailure
ActionName = ValidateCommandLineSettings
Microsoft.SqlServer.Fundamentals.OperationsInfrastructure.Contracts.ActionName = ValidateCommandLineSettings
Stack:
at Microsoft.SqlServer.Fundamentals.OperationsInfrastructure.Workflow.Contracts.ComposableActivity.Execute(NativeActivityContext context)
at System.Activities.NativeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
Inner exception type: Microsoft.SqlServer.Advisor.Common.Contracts.TargetPlatformNotSupportedException
Message:
Invalid target platform specified for assessment. Please choose one of 'SqlServer2012', 'SqlServer2014', 'SqlServer2016', 'SqlServerWindows2017', 'SqlServerLinux2017', 'SqlServerWindows2019', 'SqlServerLinux2019', 'AzureSqlDatabase' or 'ManagedSqlServer'.
HResult : 0x85FD0003
FacilityCode : 1533 (5fd)
ErrorCode : 3 (0003)发布于 2021-11-08 21:01:54
错误信息具有误导性。当使用AssessTargetReadiness的操作时,您对AssessmentTargetPlatform的选择仅限于:
网络文档提到了这一点,但有点令人困惑。
/AssessmentTargetPlatform评估目标平台:支持的评估值: AzureSqlDatabase、ManagedSqlServer、SqlServer2012、SqlServer2014、SqlServer2016、SqlServerLinux2017和SqlServerWindows2017 (默认)目标就绪性评估的和SqlServerWindows2019 2019似乎是在文档编写之后添加的。支持值: ManagedSqlServer (默认)、CosmosDB (预览)
(强调地雷)
第一部分中的“评估”是指其他类型的评估,即AssessmentEvaluateFeatureParity和AssessmentEvaluateCompatibilityIssues。
但是,Target平台的选择仍然比文档所显示的要有限一些。SQLServerWindows2019选项与AssessmentEvaluateCompatibilityIssues操作一起工作。但是,它似乎只允许在AssessmentEvaluateFeatureParity操作中使用AzureSqlDatabase、ManagedSqlServer和SqlServerLinux2017。当我尝试别人的时候,我会得到这样的结果:
无法运行目标平台SqlServerWindows2019 2019的功能奇偶校验规则。目标平台必须是“AzureSqlDatabase”、“ManagedSqlServer”或“SqlServerLinux2017”,才能运行功能奇偶规则。
(SqlServerLinux2019也能工作,所以很可能是在错误消息合成之后添加的。)
因此,您需要使用以下命令:
DmaCmd.exe /AssessmentEvaluateCompatibilityIssues /AssessmentName="MYTESTSERVER" /SourceConnections="Server=MYTESTSERVER;Integrated Security=true" /AssessmentOverwriteResult /AssessmentTargetPlatform="SqlServerWindows2019" /AssessmentResultJson="E:\temp\results\MYTESTSERVER.json"https://dba.stackexchange.com/questions/302211
复制相似问题