部署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.
##[error]Start IP address of firewall rule cannot exceed End IP address.
##[error]Invalid value provided for parameter: startIpAddress
##[error] Named pipes provider, error: 40 – could not open a connect to SQL.
Possible suggestions
如何为SQLPackage.exe配置超时?
托管代理是否支持具有AAD集成身份验证的Azure SQL数据库部署?
Azure SQL数据库部署-导入的Invoke-Sqlcmd不支持connectionString
SqlPackage.exe参数/p:BackupDatabaseBeforeChanges=true
在Azure上失败
Azure SQL发布-SQL脚本文件-无法将秘密值作为变量传递
答案 0 :(得分:1)
##[error]System.Management.Automation.ParentContainsErrorRecordException: *** Deployment cannot continueAn error occurred during deployment plan generation.
原因
您要在其上部署dacpac的SQL Server的目标平台与dacpac文件的目标平台不同。
可能的解决方案
将/ p:AllowIncompatiblePlatform = true参数添加为WinRm SQL Server任务的附加参数。
##[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 Server。 [您可以使用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 Server名称错误。
可能的解决方案
检查Azure门户上是否存在具有相同名称的SQL Server。
Server name 'ajyatest1' is not in the right format. Use FQDN format like 'yyy.database.windows.net'
原因
SQL服务器作为输入,未作为FQDN提供。
可能的解决方案
错误中提到,本身以'yyy.database.windows.net'格式提供SQL Server
##[error]System.Net.WebException: The remote server returned an error: (404) Not Found.
原因
检查用于创建防火墙规则的端点URL。验证端点的URL是否为最新。
可能的解决方案
检查端点有什么问题。用户如何创建端点。
##[error]Start IP address of firewall rule cannot exceed End IP address.
原因
用于创建防火墙规则的结束IP小于开始IP。
可能的解决方案
起始IP的IP地址应小于结束IP地址。
##[error]Invalid value provided for parameter: startIpAddress
原因
IP地址格式不正确。
可能的解决方案
起始IP的IP地址应小于结束IP地址。
##[error] Named pipes provider, error: 40 – could not open a connect to SQL.
Possible suggestions
建议
对于onPrem SQL Server 1. SQL Server名称应采用正确的格式server \ instance。 2.验证连接字符串。 3.检查是否在SQL实例上启用了命名管道(NP)。 4.是否启用了远程连接。
For Azure SQL server
1。它可能导致按应用程序节流。 2.尝试使用端口1433指定Azure SQL服务器名称。 servername.database.windows.net,1433;
如何为SQLPackage.exe配置超时?
解决方案
/p:CommandTimeout=1200 /TargetTimeout: 1200
托管代理是否支持具有AAD集成身份验证的Azure SQL数据库部署?
解决方案
否,AAD集成身份验证尝试使用运行代理的同一用户登录SQL Server。由于安全原因,托管代理用户将没有对SQL Server的权限,因此它将失败。换句话说,托管代理不支持AAD集成身份验证。以为您可以使用Active Directory-密码身份验证。
Azure SQL数据库部署-导入的Invoke-Sqlcmd不支持connectionString
解决方案 导入的Invoke-Sqlcmd不支持connectionString。安装SQLServer PS模块。
SqlPackage.exe参数/p:BackupDatabaseBeforeChanges=true
在Azure上失败
解决方案
/p:BackupDatabaseBeforeChanges=true
选项适用于本地数据库。该选项不适用于Azure,因为备份系统完全不同。
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参数的文档
为SQLPackage.exe配置诊断日志
/diagnostics:true
从任务获取调试日志
将发布定义变量system.debug
设置为值true
SqlCMD参数
比较SqlCmd和Invoke-SqlCmd参数