Azure SQL 数据库迁移失败:包含加密数据的表出现问题

问题描述 投票:0回答:1

我正在尝试使用 Azure Data Studio 和 Azure SQL 迁移实例将本地 SQL 数据库迁移到 Azure SQL 数据库。但是,对于包含加密数据的表(使用始终加密功能),迁移会失败。

采取的步骤:

  • 在 Azure Data Studio 中配置了 Azure SQL 迁移扩展。
  • 选择本地数据库进行迁移,其中包括多个表,其中的列使用Always Encrypted进行加密。
  • 开始迁移到 Azure SQL 数据库。

问题: 迁移失败,遇到以下错误:

故障发生在“Sink”侧。 ErrorCode=SqlOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=数据库操作失败。请搜索错误以获取更多详细信息。,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=来自 bcp 客户端的 colid 3 的列类型无效。,Source=.Net SqlClient Data提供程序,SqlErrorNumber=4816,Class=16,ErrorCode=-2146232060,State=4,Errors=[{Class=16,Number=4816,State=4,Message=来自 bcp 客户端的 colid 3 的列类型无效。,}, ],'

如何修复此错误?

sql-server azure database-migration always-encrypted
1个回答
0
投票

故障发生在“Sink”侧。 ErrorCode=SqlOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=数据库操作失败。请搜索错误以获取更多详细信息。,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=来自 bcp 客户端的 colid 3 的列类型无效。,Source=.Net SqlClient Data提供程序,SqlErrorNumber=4816,Class=16,ErrorCode=-2146232060,State=4,Errors=[{Class=16,Number=4816,State=4,Message=来自 bcp 客户端的 colid 3 的列类型无效。,}, ],'

您正在尝试将包含加密数据的表(使用始终加密功能)从本地迁移到 Azure SQL 数据库。但无法使用 Azure Data Studio 中当前形式的 Azure SQL 迁移扩展来迁移始终加密列,这可能是出现上述错误的原因。要解决上述错误,您可以使用导入导出向导工具。

enter image description here

要在批量复制操作期间加载加密数据而不在服务器上执行元数据检查,请使用此处所示的 ALLOW_ENCRYPTED_VALUE_MODIFICATIONS 选项创建用户。

欲了解更多信息,您可以参考 MS Q&A 门户中的类似帖子

© www.soinside.com 2019 - 2024. All rights reserved.