メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

SQL Server エージェントの使用

Amazon RDS では、Microsoft SQL Server の Standard、Web、または Enterprise エディションを実行している DB インスタンスの SQL Server エージェントを使用できます。SQL Server エージェントは、ジョブと呼ばれるスケジュールされた管理タスクを実行する Microsoft Windows サービスです。SQL Server エージェントを使用して T-SQL ジョブを実行し、SQL Server DB インスタンスでインデックスの再構築、データ破損の確認、およびデータの集計を行うことができます。

SQL Server エージェントは、指定したイベントに対応し、またはオンデマンドで、スケジュールに従ってジョブを実行できます。詳細については、SQL Server ドキュメントの「SQL Server エージェント」を参照してください。AWS によって起動されるメンテナンスやバックアッププロセスは、ジョブが中断されたりキャンセルされたりする可能性があるため、DB インスタンス用のメンテナンスやバックアップウィンドウの間にジョブを実行するようなスケジュールは避ける必要があります。Amazon RDS が DB インスタンスをバックアップするため、バックアップの作成には SQL Server エージェントを使用しないでください。

SQL Server Management Studio で個々の SQL Server エージェントジョブの履歴を表示するには、オブジェクトエクスプローラーを開き、ジョブを右クリックして、[View History] をクリックします。

SQL Server エージェントは DB インスタンスの管理されたホストで実行されるため、サポートされないアクションがあります。ActiveX、Windows コマンドシェル、または Windows PowerShell を使用した、レプリケーションジョブの実行やコマンドラインスクリプトの実行はサポートされません。さらに、SQL Server エージェントを手動で開始、停止、または再開することはできません。この操作はホストによって管理されます。SQL Server エージェントを使用した E メール通知は、DB インスタンスからは使用できません。

SQL Server DB インスタンスを作成すると、マスターユーザー名が SQLAgentUserRole ロールに登録されます。SQL Server エージェントにログイン/ユーザーを追加できるようにするには、マスターユーザーとしてログインし、次の操作を行う必要があります。

  1. CREATE LOGIN コマンドを使用して、別のサーバーレベルログインを作成します。

  2. CREATE USER コマンドを使用して msdb にユーザーを作成し、このユーザーを前の手順で作成したログインにリンクします。

  3. そのユーザーを、システムストアドプロシージャ sp_addrolemember を使用して SQLAgentUserRole に追加します。

たとえば、マスターユーザー名が myawsmaster で、ユーザー名が theirname、パスワードが theirpassword のユーザーに SQL Server エージェントへのアクセスを許可するとします。マスターユーザー名を使用してログインし、次のコマンドを実行します。

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 エージェントのジョブを削除することはできません。SQL Server エージェントのジョブを削除するには、次の T-SQL ステートメントを実行します。

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