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 Agent 作业通知的操作员
EXEC msdb.dbo.sp_add_operator
@name = N'JobAdmins',
@enabled = 1,
@email_address = N'recipient-email@example.com',
@category_name = N'[Uncategorized]';
GO
9.“代理测试作业”成功后发送电子邮件
EXEC msdb.dbo.sp_update_job
@job_name = 'Agent Test Job',
@notify_level_email = 1,
@notify_email_operator_name = N'JobAdmins'
GO