トレーニング
認定資格
Microsoft Certified: Azure Database Administrator Associate - Certifications
Microsoft PaaS リレーショナル データベース オファリングを使用して、クラウド、オンプレミス、ハイブリッド リレーショナル データベースの SQL Server データベース インフラストラクチャを管理します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
適用対象: SQL Server - Linux
SQL Server ジョブを使用して、SQL Server データベースで同じ一連のコマンドを定期的に実行します。 このチュートリアルでは、Transact-SQL と SQL Server Management Studio (SSMS) の両方を使用して、Linux 上で実行される SQL Server エージェント ジョブを作成する方法の例を示します。
Linux 上の SQL Server エージェントに関する既知の問題については、「Linux 上の SQL Server 2017 のリリース ノート」を参照してください。
このチュートリアルを完了するには、次の前提条件を満たす必要があります。
次の前提条件を満たしている Linux コンピューター:
次の前提条件には対応しなくてもかまいません。
Linux 上で SQL Server エージェントを使用するには、まず SQL Server が既にインストールされているコンピューターで SQL Server エージェントを有効にする必要があります。
SQL Server エージェントを有効にするには、次の手順に従います。
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
次のコマンドを使用して SQL Server を再起動します。
sudo systemctl restart mssql-server
注意
SQL Server 2017 (14.x) CU 4 以降、SQL Server エージェントは mssql-server
パッケージに含まれており、既定では無効になっています。 CU4 より前のバージョンでエージェントを設定するには、「Linux 上に SQL Server エージェントをインストールする」を参照してください。
次の手順に従って、SampleDB
という名前のサンプル データベースを作成します。 このデータベースは、毎日のバックアップ ジョブを実行するために使用されます。
Linux コンピューター上で、bash ターミナル セッションを開きます。
sqlcmd を使用して Transact-SQL CREATE DATABASE
コマンドを実行します。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
サーバー上のデータベースを一覧表示して、データベースが作成されていることを確認します。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'SELECT Name FROM sys.Databases'
次の手順では、Transact-SQL コマンドを使用して、Linux 上に SQL Server エージェント ジョブを作成します。 このジョブによって、サンプル データベース (SampleDB
) の毎日バックアップが実行されます。
ヒント
任意の T-SQL クライアントを使用して、これらのコマンドを実行できます。 たとえば、Linux 上では、Linux に SQL Server コマンドライン ツール sqlcmd および bcp をインストールすることや Visual Studio Code 用 SQL Server 拡張機能を使用することができます。 リモート Windows Server から SQL Server Management Studio (SSMS) でクエリを実行したり、次のセクションで説明されているジョブ管理用の UI インターフェイスを使用したりすることもできます。
sp_add_job を実行して、Daily SampleDB Backup
という名前のジョブを作成します。
-- Adds a new job executed by the SQLServerAgent service
-- called 'Daily SampleDB Backup'
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Daily SampleDB Backup';
GO
sp_add_jobstep を呼び出して、SampleDB
データベースのバックアップを作成するジョブ ステップを作成します。
-- Adds a step (operation) to the job
EXEC sp_add_jobstep
@job_name = N'Daily SampleDB Backup',
@step_name = N'Backup database',
@subsystem = N'TSQL',
@command = N'BACKUP DATABASE SampleDB TO DISK = \
N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10',
@retry_attempts = 5,
@retry_interval = 5;
GO
次に、sp_add_schedule を使用して、ジョブの日次スケジュールを作成します。
-- Creates a schedule called 'Daily'
EXEC dbo.sp_add_schedule
@schedule_name = N'Daily SampleDB',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 233000;
USE msdb;
GO
sp_attach_schedule を使用して、ジョブのスケジュールをジョブにアタッチします。
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
EXEC sp_attach_schedule
@job_name = N'Daily SampleDB Backup',
@schedule_name = N'Daily SampleDB';
GO
sp_add_jobserver を使用して、対象サーバーにジョブを割り当てます。 この例では、ターゲットはローカル サーバーです。
EXEC dbo.sp_add_jobserver
@job_name = N'Daily SampleDB Backup',
@server_name = N'(local)';
GO
sp_start_job を使用してジョブを開始します。
EXEC dbo.sp_start_job N' Daily SampleDB Backup' ;
GO
Windows 上で SQL Server Management Studio (SSMS) を使用して、ジョブをリモートで作成して管理することもできます。
Windows 上で SSMS を起動し、Linux SQL Server インスタンスに接続します。 詳細については、「Windows で SQL Server Management Studio を使用して SQL Server on Linux を管理する」を参照してください。
SampleDB
という名前のサンプル データベースが作成されていることを確認します。
SQL Agent によって Linux 上への SQL Server エージェントのインストールと構成が正しく行われていることを確認します。 オブジェクト エクスプローラーで [SQL Server エージェント] の横にあるプラス記号を見つけます。 SQL Server エージェントが有効になっていない場合は、Linux 上で mssql-server サービスを再起動してみてください。
新しいジョブを作成します。
ジョブの名前を指定し、ジョブ ステップを作成します。
使用するサブシステムとジョブ ステップで実行する操作を指定します。
新しいジョブ スケジュールを作成します。
ジョブを開始します。
このチュートリアルでは、以下の内容を学習しました。
次に、ジョブの作成と管理に関するその他の機能を確認してください。
トレーニング
認定資格
Microsoft Certified: Azure Database Administrator Associate - Certifications
Microsoft PaaS リレーショナル データベース オファリングを使用して、クラウド、オンプレミス、ハイブリッド リレーショナル データベースの SQL Server データベース インフラストラクチャを管理します。