我有一个 SQL 代理维护工作,它检查数据库中的索引碎片并在需要时重建索引。
这在我的测试服务器(Microsoft Sql Server 2012)中运行良好。但我的生产服务器在 Azure 中。现在我想将该作业安排到 Azure。
Azure SQL 数据库中不存在 SQL 代理,那么如何在 Azure Db 中安排 Sql 作业?
我有一个 SQL 代理维护工作,它检查数据库中的索引碎片并在需要时重建索引。
这在我的测试服务器(Microsoft Sql Server 2012)中运行良好。但我的生产服务器在 Azure 中。现在我想将该作业安排到 Azure。
Azure SQL 数据库中不存在 SQL 代理,那么如何在 Azure Db 中安排 Sql 作业?
自从第一次提出这个问题以来,现在有另一种方法来处理这个问题:
Azure Functions
这里有几个示例可以很容易地修改为调用重建索引的存储过程
另见
使用 Azure 函数时要记住的一些事项
编辑 2021 年 9 月 5 日以添加其他信息
需要注意的是,如果您需要 SQL 代理,您现在还有另一个选择。我建议阅读 Azure SQL 托管实例。您可以在 Microsoft 文档中查看 Azure SQL 与 Azure SQL 托管实例的比较。使用 Azure SQL 托管实例,您向云的过渡可能会简单得多,因为您习惯的许多本地功能已经存在(包括 SQL Server 代理、数据库邮件等)。
此功能已被 Microsoft 拒绝,请参阅此处。
引用帖子:
今天在 Azure 中有几种选择,
1) SQL 数据库弹性作业 http://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-jobs-overview/
2) Azure 作业调度程序 http://www.windowsazure.com/en-us/services/scheduler/
3) Azure 自动化新预览版 http://azure.microsoft.com/en-us/services/automation/。
4) 虚拟机中的 SQL Server
选项 1 需要额外的专用云服务,这会增加成本。选项 2 是免费的(我认为),只要您每小时运行的次数不超过一次。
Azure SQL 不支持 sql 作业。从文档:
Microsoft Azure SQL 数据库不支持 SQL Server 代理或作业。但是,您可以在本地 SQL Server 上运行 SQL Server 代理并连接到 Microsoft Azure SQL 数据库。
WebJobs:如果您有一个网站,您可以创建 webjob 并按时运行它。在这里查看更多
其他替代方案 -在 SQL Azure 上调度作业
您可以使用 Azure 自动化在 Azure-DB 上安排作业,例如本地 SQL 代理。
有关详细信息,请参阅https://azure.microsoft.com/nl-nl/blog/azure-automation-your-sql-agent-in-the-cloud/。
另一种选择是rovergo,该服务允许您使用 cron 表达式安排 sql 作业。这很好,因为您不必创建 Web 作业或 azure 函数。您可以简单地安排一个 sql 脚本。
(我是 rovergo 的开发者)