AzureDevOps - Azure SQL Server 部署问题及解决方案

阿杰·亚达夫

部署 Azure SQL 服务器时遇到的众所周知的问题有哪些解决方案。

问题一

##[error]System.Management.Automation.ParentContainsErrorRecordException: *** Deployment cannot continueAn error occurred during deployment plan generation.

问题二

##[error]Publishing to database 'testdb' on server 'ajyatest.database.windows.net'. Initializing deployment (Start) Initializing deployment (Failed) *** Could not deploy package. Unable to connect to master or target server 'testdb'. You must have a user with the same password in master or target server 'testdb'.

问题三

##[error]System.Management.Automation.RuntimeException: No resource found with serverName ajyatest1, serverType Microsoft.Sql/servers in subscription <SubscriptionId>. Specify the correct serverName/serverType and try again.

问题四

Server name 'ajyatest1' is not in the right format. Use FQDN format like 'yyy.database.windows.net'

问题五

##[error]System.Net.WebException: The remote server returned an error: (404) Not Found. 

问题 6

##[error]Start IP address of firewall rule cannot exceed End IP address.

问题 7

##[error]Invalid value provided for parameter: startIpAddress

问题 8

##[error] Named pipes provider, error: 40 – could not open a connect to SQL. 
Possible suggestions

问题 9

如何为 SQLPackage.exe 配置超时?

问题10

托管代理是否支持使用 AAD 集成身份验证的 Azure SQL 数据库部署?

问题 11

Azure SQL 数据库部署 - 导入的 Invoke-Sqlcmd 不支持 connectionString

问题12

SqlPackage.exe 参数/p:BackupDatabaseBeforeChanges=true在 Azure 上失败

问题 13

Azure SQL 发布 - SQL 脚本文件 - 无法将机密值作为变量传递

阿杰·亚达夫

问题一

##[error]System.Management.Automation.ParentContainsErrorRecordException: *** Deployment cannot continueAn error occurred during deployment plan generation.

原因

您尝试部署 dacpac 的 SQL 服务器的目标平台与 dacpac 文件的目标平台不同。

可能的解决方案

  1. 将 dacpac 项目中的目标平台更改为与 SQL 服务器的目标平台相同。 在此处输入图片说明

  2. 添加 /p:AllowIncompatiblePlatform=true 参数作为 WinRm SQL 服务器任务的附加参数。

问题二

##[error]Publishing to database 'testdb' on server 'ajyatest.database.windows.net'. Initializing deployment (Start) Initializing deployment (Failed) *** Could not deploy package. Unable to connect to master or target server 'testdb'. You must have a user with the same password in master or target server 'testdb'.

原因

SQL 服务器的用户名或密码错误。

可能的解决方案

检查用户名和密码是否适合 SQL 服务器。[您可以使用SSMS验证用户名密码]

问题三

##[error]System.Management.Automation.RuntimeException: No resource found with serverName ajyatest1, serverType Microsoft.Sql/servers in subscription <SubscriptionId>. Specify the correct serverName/serverType and try again.

原因

错误的 SQL 服务器名称是错误的。

可能的解决方案

检查 Azure 门户上是否存在同名的 SQL 服务器。

问题四

Server name 'ajyatest1' is not in the right format. Use FQDN format like 'yyy.database.windows.net'

原因

SQL server 作为输入未作为 FQDN 提供。

可能的解决方案

正如错误本身所提到的,以“yyy.database.windows.net”格式提供SQL服务器

问题五

##[error]System.Net.WebException: The remote server returned an error: (404) Not Found. 

原因

检查端点 URL 以创建防火墙规则。验证端点的 URL 是否是最新的。

可能的解决方案

检查端点有什么问题。用户如何创建端点。

问题 6

##[error]Start IP address of firewall rule cannot exceed End IP address.

原因

End IP 小于 Start IP 用于创建防火墙规则。

可能的解决方案

起始IP 的IP 地址应小于结束IP 地址。

问题 7

##[error]Invalid value provided for parameter: startIpAddress

原因

IP 地址格式不正确。

可能的解决方案

起始IP 的IP 地址应小于结束IP 地址。

问题 8

##[error] Named pipes provider, error: 40 – could not open a connect to SQL. 
Possible suggestions

建议

对于 onPrem SQL 服务器 1. SQL 服务器名称应采用正确的格式 server\instance。2. 验证连接字符串。3. 检查是否在 SQL 实例上启用了命名管道 (NP)。4. 是否启用远程连接。

  For Azure SQL server 

1. 它可能会导致每个应用程序受到限制。2. 尝试给出端口为 1433 的 azure SQL 服务器名称。例如 servername.database.windows.net,1433;

问题 9

如何为 SQLPackage.exe 配置超时?

解决方案

/p:CommandTimeout=1200  /TargetTimeout: 1200 

问题10

托管代理是否支持使用 AAD 集成身份验证的 Azure SQL 数据库部署?

解决方案

否,AAD 集成身份验证尝试使用运行代理的同一用户登录 SQL 服务器。由于出于安全原因,托管代理用户在 SQL 服务器上没有权限。因此它将失败。换言之,托管代理不支持 AAD 集成身份验证。以为您可以使用 Active Directory - 密码身份验证。

问题 11

Azure SQL 数据库部署 - 导入的 Invoke-Sqlcmd 不支持 connectionString

解决方案导入的 Invoke-Sqlcmd 不支持 connectionString。安装 SQLServer PS 模块。

问题12

SqlPackage.exe 参数/p:BackupDatabaseBeforeChanges=true在 Azure 上失败

解决方案

/p:BackupDatabaseBeforeChanges=trueoptions 适用于本地数据库。该选项不适用于 Azure,因为备份系统完全不同。

问题 13

Azure SQL 发布 - SQL 脚本文件 - 无法将机密值作为变量传递

解决方案

SQL 脚本文件支持秘密变量。确保您按如下方式传递变量的参数。

Invoke-Sqlcmd -ServerInstance "test.database.windows.net" -Database "Testdb" -Username "test"  -Password ******  -Inputfile "C:\test.sql" -variable "MYVAR1='$(variablevalue1)'", "MYVAR2='String2'" -ConnectionTimeout 120

调试工具和建议

SQLPackage.exe 参数的文档

SQL 包参数

为 SQLPackage.exe 配置诊断日志

/diagnostics:true

从任务中获取调试日志

system.debug使用值设置发布定义变量true

SqlCMD 参数

SqlCmd 参数

比较 SqlCmd 和 Invoke-SqlCmd 参数

SqlCmd 与 Invoke-SqlCmd 参数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Server枢轴解决方案

在SQL Server上执行INSERT或UPDATE的解决方案

Java + SQL Server-可行的解决方案?

SQL Server 2016上INSERT或UPDATE的安全解决方案

SQL Server 备份到 Azure 存储问题

请找到此问题的解决方案。(在PL SQL中)--------

使用AzureDevops在Azure Kubernetes服务(AKS)中部署容器映像

解决方案SQL Server中非聚集索引的最大键长度

加快慢速SELECT DISTINCT查询SQL Server的解决方案

将巨大的定界符文本平面文件导入SQL Server的解决方案

SQL Server - 将行转为列的 2 个表之间连接的更好解决方案

是否有在SQL Server 2014中解析json的解决方案

基于集的解决方案以逗号分隔的有序行从SQL Server中提取数据?

MVC 5中的布尔搜索和全文搜索-SQL Server解决方案?

SQL Server:更好的列解决方案应具有固定长度的数字数据

解决方案包含Office应用程序时,从Github进行MVC站点的Azure部署失败

Azure ARM模板SQL Server自动调整部署错误

Kubernetes SQL Server或Azure SQL Server PaaS

Azure VM SQL Server访问

Azure SQL Server 标签与屏蔽

Azure中的免费SQL Server

Azure SQL Server托管实例

缩小 Azure SQL Server 权限

Azure SQL Server 创建日期

将TFS仓库迁移到AzureDevOps仓库-解决方案中缺少文件

使用子查询的SQL解决方案?

使用 ADF 为内部部署和数据湖存储 gen2 构建 Azure 云解决方案作为源

如何将来自不同项目(解决方案)的多个Microsoft Azure功能部署到同一资源组

SQL Azure与SQL Server有何区别?