【问题标题】:resume serverless azure database恢复无服务器 Azure 数据库
【发布时间】:2020-10-14 01:51:07
【问题描述】:

我正在尝试自动化无服务器 Azure 数据库,使其在设定的时间内在线,然后在“下班时间”暂停。

有没有一种方法可以使用 PowerShell 命令或其他自动方式在工作周的特定时间开始在线执行此操作?

目前正在使用 autopause 选项,但主要问题是它需要初始数据库命中才能使数据库联机,这会导致从第一次命中数据库到数据库联机并可被应用。谢谢

【问题讨论】:

  • 如果在非工作时间访问数据库,期望的行为是什么?
  • 您是否打开了自动暂停延迟:如果数据库在此处指定的时间段内处于非活动状态,则数据库会自动暂停,并在数据库活动再次发生时自动恢复。或者,可以禁用自动暂停。?
  • @DerekGusoff 下班时间我希望它表现得像基于设定时间和空闲状态的正常自动暂停,除非命中...下班时间是可以接受的...但如果需要下班后自动下线也可以。
  • @LeonYue 可以通过自动化或 PowerShell 方法完成吗?我可以手动设置自动暂停延迟,但需要在正常工作时间内自动禁用它。
  • 我刚刚找到了 PowerShell 命令 Set-AzSqlDatabase,它有一个设置 AutoPauseDelayInMinutes 的选项...我现在想知道这是否是启用的最佳方式(或至少是一种方式)并以自动方式禁用该功能,以便服务器数据库实例在正常时间立即可用,然后在非工作时间启用自动暂停? (抱歉,我现在无法进行测试)

标签: azure azure-sql-database


【解决方案1】:

您已获得 REST API 调用以暂停 Azure SQL 数据库。

https://docs.microsoft.com/en-us/rest/api/sql/Databases/Pause

POST https://management.azure.com/subscriptions/00000000-1111-2222-3333- 
444444444444/resourceGroups/Default-SQL- 
SouthEastAsia/providers/Microsoft.Sql/servers/
testsvr/databases/testdwdb/pause?api-version=2019-06-01-preview

同样,您可以使用 REST API 调用恢复 Azure SQL 数据库

https://docs.microsoft.com/en-us/rest/api/sql/databases/resume

POST https://management.azure.com/subscriptions/{subscriptionId} 
/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/ 
databases/{databaseName}/resume?api-version=2019-06-01-preview

您可以将自动呼叫设置为暂停和恢复的特定时间。 您可以在 Powershell 中利用 Invoke-RestMethodReference 来调用 rest 方法。

【讨论】:

  • 这些 api 调用可以在无服务器 Azure 数据库实例上运行吗? (对双重确认表示歉意)
  • @mgalpy,没问题。是的。他们会的。
  • 我认为更好的问题是:这个 api 调用会在非无服务器数据库上工作吗?
【解决方案2】:

PowerShell 命令 Set-AzSqlDatabase 可以选择为无服务器 Azure 数据库设置 AutoPauseDelayInMinutes,这可能是自动化此过程的一个选项。

将 AutoPauseDelayInMinutes 设置为 -1 以在正常工作时间选择退出,然后在下班时间之前选择所需的值。

【讨论】:

    【解决方案3】:

    由于 Azure SQL 数据库的无服务器版本尚未实现暂停和恢复命令,因此您可以使用简单的 powershell 打开与它的连接

    $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $connectionString
    $sqlConnection.Open()
    

    通过设置 ConnectTimeout 并同时执行 retry,您可以在从应用程序/服务进行实际连接之前确保数据库在线。

    【讨论】:

    • 根据@VenkataramanR 回答的 REST API 调用,命令是否可用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多