You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Azure SQL联机时间?如何按指定周期设置数据库联机/离线状态?

如何按规则调度Azure SQL数据库的联机/离线状态

嘿,我来帮你搞定这个需求!Azure SQL数据库本身没有内置的“定时切换联机/离线”功能,但我们可以通过Azure自动化账户或者Azure逻辑应用来实现这个定时启停的规则,完美匹配你周一到周六06:00-21:00联机、周日全天离线的要求。下面分两种常用方法详细说明:

方法一:使用Azure自动化账户(推荐,适合长期稳定调度)

这是最常用的方案,适合需要长期运行的定时任务,成本也很低:

  • 步骤1:创建Azure自动化账户
    登录Azure门户,搜索“自动化账户”,新建一个。记得选和你的SQL数据库同区域的位置,并且要启用“系统分配的托管标识”——这个标识后面用来给自动化账户授权操作SQL数据库的权限。

  • 步骤2:给自动化账户分配权限
    找到你的SQL数据库所在的资源组,或者直接进入SQL服务器的“IAM(访问控制)”页面,添加角色分配:把SQL Server参与者角色分配给刚才创建的自动化账户的托管标识。这样它才有资格启停你的数据库。

  • 步骤3:编写启停数据库的Runbook
    在自动化账户里,进入“Runbooks”页面,新建两个PowerShell类型的Runbook:一个用来启动数据库,一个用来停止。
    启动脚本示例(记得替换成你自己的资源信息):

    # 替换为你的资源组、SQL服务器和数据库名称
    $resourceGroupName = "YourResourceGroup"
    $serverName = "YourSqlServerName"
    $databaseName = "YourDatabaseName"
    
    # 启动数据库
    Start-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName
    

    停止脚本示例:

    # 替换为你的资源组、SQL服务器和数据库名称
    $resourceGroupName = "YourResourceGroup"
    $serverName = "YourSqlServerName"
    $databaseName = "YourDatabaseName"
    
    # 停止数据库
    Stop-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName
    

    写完后记得保存并发布这两个Runbook,不然没法调度。

  • 步骤4:设置定时调度规则
    针对启动Runbook,创建调度:

    • 频率选“每周”,重复周期1周
    • 勾选周一到周六,设置触发时间为06:00
    • 持续时间选“无结束日期”(或者按需设置)

    针对停止Runbook,需要创建两个调度:

    1. 周一到周六的21:00:同样每周重复,勾选周一到周六,触发时间设为21:00
    2. 周日的00:00(或者凌晨1点,选个低峰时间就行):每周重复,只勾选周日,触发时间设为你希望数据库停止的时间,确保周日全天处于离线状态。

方法二:使用Azure逻辑应用(可视化配置,适合快速搭建)

如果你更喜欢拖拖拽拽的可视化操作,逻辑应用是个不错的选择,适合快速搭建定时任务:

  • 步骤1:创建消费型逻辑应用
    登录Azure门户,搜索“逻辑应用”,新建一个消费型逻辑应用(比标准型成本更低,适合这种定时任务),选择和SQL数据库同区域的位置。

  • 步骤2:添加定时触发器
    进入逻辑应用设计器,搜索“recurrence”(循环触发器),设置启动数据库的定时规则:

    • 频率:每周
    • 间隔:1
    • 时区:选你所在的时区(比如中国标准时间)
    • 星期:勾选周一到周六
    • 时间:06:00
  • 步骤3:添加启动数据库的操作
    搜索“Azure SQL数据库”,选择“启动Azure SQL数据库”操作,连接你的Azure账户,然后选择对应的资源组、SQL服务器和目标数据库名称。

  • 步骤4:复制逻辑应用创建停止规则
    直接复制刚才的逻辑应用,修改两个地方:

    1. 第一个停止逻辑应用:把触发器时间改成21:00,操作换成“停止Azure SQL数据库”
    2. 第二个停止逻辑应用:把触发器的星期改成只选周日,时间设为00:00(或者你想要的时间),操作同样换成“停止Azure SQL数据库”

重要注意事项

  • 如果你用的是Azure SQL托管实例,启停命令略有不同,需要用Start-AzSqlInstance和Stop-AzSqlInstance,操作步骤和上面一致,只是脚本里的命令替换一下就行。
  • 数据库停止后,计算费用会停止,但存储费用还是会正常收取,这是Azure的计费规则哦。
  • 配置完后,建议先手动运行一次Runbook或者逻辑应用,验证权限和脚本是否正常,没问题再正式启用调度。

内容的提问来源于stack exchange,提问作者Mustafa Demirhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:47:32