【问题标题】:Error while executing Pause Azure SQLDatawarehouse ps script执行暂停 Azure SQLDatawarehouse ps 脚本时出错
【发布时间】:2020-02-21 05:59:01
【问题描述】:

我正在使用自动化帐户和执行 PowerShell Runbook 来暂停我的 Azure 数据仓库数据库。 设置完成,创建凭证和指纹证书。 当我执行 PS 脚本并完成时出现错误消息

SQL Server 上不存在名为 ADWPOC 的 Azure SQL 数据仓库在 SuspendOrPauseAzureSQLDataWarehouse:72 char:72 + + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

在执行此脚本时,我已正确提供数据库名称和服务器详细信息。我不确定这里有什么问题。请指教。

我已从运行手册库“暂停或暂停 Azure SQL 数据仓库”导入 PS 脚本。如果您希望我在此处附上脚本,请告诉我?

【问题讨论】:

    标签: azure powershell azure-automation azure-sql-data-warehouse


    【解决方案1】:

    不确定,但脚本看起来太旧了,它仍然使用已弃用的 AzureRm 模块。

    要在 Runbook 中暂停数据仓库,我建议您使用新的 Az 模块 sample here 在 Runbook 中使用它,只需按照以下步骤操作即可。

    1.在门户中导航到您的自动化帐户 -> Modules,确保您已导入 Az.AccountsAz.Sql 模块,如果没有,请在 Modules -> Browse Gallery 中搜索模块并导入它们。

    2.成功导入模块后,导航到Runbooks -> 创建PowerShell runbook(不是PowerShell Workflow),然后在runbook中使用如下脚本。

    注意<server-name> 应该类似于testserver,而不是testserver.database.windows.net

    $connectionName = "AzureRunAsConnection"
    try
    {
        # Get the connection "AzureRunAsConnection "
        $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         
    
        "Logging in to Azure..."
        Connect-AzAccount `
            -ServicePrincipal `
            -TenantId $servicePrincipalConnection.TenantId `
            -ApplicationId $servicePrincipalConnection.ApplicationId `
            -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
    }
    catch {
        if (!$servicePrincipalConnection)
        {
            $ErrorMessage = "Connection $connectionName not found."
            throw $ErrorMessage
        } else{
            Write-Error -Message $_.Exception
            throw $_.Exception
        }
    }
    
    $database = Get-AzSqlDatabase –ResourceGroupName "<resource-group-name>" –ServerName "<server-name>" –DatabaseName "<data-warehouse-name>"
    if($database){
    
        if($database.Status -eq 'Paused'){
            Write-Output "The Data Warehouse was already paused."
        }else{
            $database | Suspend-AzSqlDatabase
            Write-Output "The Data Warehouse has been paused." 
        }
    
    }else{
    
        Write-Output "The Data Warehouse does not exist."
    }
    

    【讨论】:

    • 非常感谢您分享脚本和安装模块的步骤。它运行成功。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2019-08-15
    • 1970-01-01
    相关资源
    最近更新 更多