Linux 上の SQL Server エージェントでのデータベース メールと電子メール アラート
適用対象: SQL Server - Linux
この記事では、Linux 上の SQL Server エージェント (mssql-server-agent) でデータベース メールを設定して使用する方法を説明します。
1. データベース メールを有効にする
USE master;
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO
2.新しいアカウントを作成する
EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = 'SQLAlerts',
@description = 'Account for Automated DBA Notifications',
@email_address = 'sqlagenttest@example.com',
@replyto_address = 'sqlagenttest@example.com',
@display_name = 'SQL Agent',
@mailserver_name = 'smtp.example.com',
@port = 587,
@enable_ssl = 1,
@username = 'sqlagenttest@example.com',
@password = '<password>';
GO
3.既定のプロファイルを作成する
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'default',
@description = 'Profile for sending Automated DBA Notifications';
GO
4.データベース メール プロファイルにデータベース メール アカウントを追加する
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'default',
@principal_name = 'public',
@is_default = 1;
GO
5.アカウントをプロファイルに追加する
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'default',
@account_name = 'SQLAlerts',
@sequence_number = 1;
GO
6.テスト電子メールを送信する
場合によっては、電子メール クライアントにアクセスして、[低セキュリティのクライアントによるメール送信の許可]オプションを有効にする必要があります。 一部のクライアントでは、データベース メールは電子メール デーモンとして認識されません。
EXECUTE msdb.dbo.sp_send_dbmail
@profile_name = 'default',
@recipients = 'recipient-email@example.com',
@subject = 'Testing DBMail',
@body = 'This message is a test for DBMail'
GO
7. mssql-conf または環境変数を使用してデータベース メールのプロファイルを設定する
mssql-conf ユーティリティまたは環境変数を使用してデータベース メールのプロファイルを登録できます。 このケースではこのプロファイルを default
と呼ぶことにします。
mssql-conf を介して設定する
sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
環境変数を介して設定する
MSSQL_AGENT_EMAIL_PROFILE=default
8. SQL Server エージェント ジョブ通知のオペレーターを設定する
EXEC msdb.dbo.sp_add_operator
@name = N'JobAdmins',
@enabled = 1,
@email_address = N'recipient-email@example.com',
@category_name = N'[Uncategorized]';
GO
9.'Agent Test Job' が成功したら電子メールを送信する
EXEC msdb.dbo.sp_update_job
@job_name = 'Agent Test Job',
@notify_level_email = 1,
@notify_email_operator_name = N'JobAdmins'
GO