Aracılığıyla paylaş


Linux üzerinde SQL Server Aracısı ile Veritabanı Postası ve e-posta uyarıları

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu makalede, Veritabanı Postası'nın nasıl ayarlanacağı ve Linux üzerinde SQL Server Agent (mssql-server-agent) ile nasıl kullanılacağı gösterilmektedir.

1. Veritabanı Postasını Etkinleştir

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO

EXECUTE sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO

2. Yeni hesap oluşturma

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

Dikkat

Parolanız,SQL Server varsayılan parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.

3. Varsayılan profil oluşturma

EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'default',
    @description = 'Profile for sending Automated DBA Notifications';
GO

4. Veritabanı Posta hesabını Veritabanı Posta profiline ekleme

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'default',
    @principal_name = 'public',
    @is_default = 1;
GO

5. Profile hesap ekleme

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'default',
    @account_name = 'SQLAlerts',
    @sequence_number = 1;
GO

6. Test e-postası gönder

E-posta istemcinize gitmeniz ve daha az güvenli istemcilerin posta göndermesine izin ver seçeneğini etkinleştirmeniz gerekebilir. Tüm istemciler Database Mail'i e-posta daemon'ları olarak tanımaz.

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 veya ortam değişkenini kullanarak Veritabanı Posta profilini ayarlama

Veritabanı Posta profilinizi kaydetmek için mssql-conf yardımcı programını veya ortam değişkenlerini kullanabilirsiniz. Bu durumda profilimize default adını verelim.

  • mssql-conf aracılığıyla ayarlayın:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
    
  • Ortam değişkeni aracılığıyla ayarlayın:

    MSSQL_AGENT_EMAIL_PROFILE=default
    

8. SQL Server Agent iş bildirimleri için bir operatör ayarlayın

EXECUTE msdb.dbo.sp_add_operator
    @name = N'JobAdmins',
    @enabled = 1,
    @email_address = N'recipient-email@example.com',
    @category_name = N'[Uncategorized]';
GO

9. 'Aracı Test İşi' başarılı olduğunda e-posta gönder

EXECUTE msdb.dbo.sp_update_job
    @job_name = 'Agent Test Job',
    @notify_level_email = 1,
    @notify_email_operator_name = N'JobAdmins';
GO
  • Linux ÜZERİNDE SQL Server Agent görevleri oluşturma ve çalıştırma