Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用 SQL Server Agent

借助 Amazon RDS,您可以在运行 Microsoft SQL Server Standard Edition、Web Edition 或 Enterprise Edition 的数据库实例上使用 SQL Server Agent。SQL Server Agent 是一项 Microsoft Windows 服务,可执行计划的管理任务,即所谓的作业。您可以使用 SQL Server Agent 运行 T – SQL 作业,以在 SQL Server 数据库实例中重新生成索引、运行损坏检查和聚合数据。

SQL Server Agent 可以按照时间表运行作业,对特定事件或需求做出响应。有关详细信息,请参阅 SQL Server 文档中的 SQL Server Agent。您应该避免将作业安排在数据库实例的维护和备份时段内运行,因为这些由 AWS 启动的维护和备份过程可能会中断作业或导致其被取消。由于 Amazon RDS 会备份数据库实例,因此您无需使用 SQL Server Agent 创建备份。

要查看 SQL Server Management Studio 中单个 SQL Server Agent 作业的历史记录,需要打开 Object Explorer,右键单击此作业,然后单击 View History

由于 SQL Server Agent 在数据库实例中的托管主机上运行,因此存在一些不受支持的操作。不支持使用 ActiveX、Windows 命令外壳或 Windows PowerShell 运行复制作业和命令行脚本。此外,不能手动启动、停止或重启 SQL Server Agent,因为其操作由主机进行管理。无法从数据库实例获取通过 SQL Server Agent 发出的电子邮件通知。

创建 SQL Server 数据库实例时,主用户名会以 SQLAgentUserRole 角色登记。要允许其他登录名/用户使用 SQL Server Agent,必须以主用户的身份登录并执行以下操作。

  1. 使用 CREATE LOGIN 命令创建另一个服务器级别的登录名。

  2. 使用 CREATE USER 命令在 msdb 内创建一个用户,然后将此用户链接到上一步骤中创建的登录名。

  3. 使用 sp_addrolemember 系统存储的程序将用户添加到 SQLAgentUserRole。

例如,假设您的主用户名称为 myawsmaster,并且您要授予一个用户 SQL Server Agent 访问权限,此用户的用户名称为 theirname,密码为 theirpassword。您可以使用主用户名登录,然后运行以下命令。

Copy
--Initially set context to master database USE [master]; GO --Create a server-level login named theirname with password theirpassword CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword'; GO --Set context to msdb database USE [msdb]; GO --Create a database user named theirname and link it to server-level login theirname CREATE USER [theirname] FOR LOGIN [theirname]; GO --Added database user theirname in msdb to SQLAgentUserRole in msdb EXEC sp_addrolemember [SQLAgentUserRole], [theirname];

不能使用 SQL Server 管理控制台中的 UI 删除 SQL Server Agent 作业。要删除 SQL Server Agent 作业,请运行以下 T – SQL 语句。

Copy
EXEC msdb..sp_delete_job @job_name = '<job-name>';