Veritabanı posta sorun giderme: Genel adımlar
Veritabanı posta sorun giderme aşağıdaki genel alanlara veritabanı posta sisteminin denetimini kapsar.Bu yordamları, mantıksal bir sıra içinde sunulan, ancak herhangi bir sırada değerlendirilebilir.
Veritabanı posta etkin olup olmadığını belirlemek için
De SQL Server Management Studio, bağlandığınız bir örnek , SQL Server sorgu Düzenleyicisi penceresini kullanarak ve sonra aşağıdaki kodu yürütün:
sp_configure 'show advanced', 1; GO RECONFIGURE; GO sp_configure; GO
Sonuçlar bölmesinde, onaylamak run_value için Database Mail XPs küme 1.
If the run_value is not 1, Database Mail is not enabled.Database Mail'i otomatik olarak saldırısı için kullanılabilen özellikler sayısını azaltmak için kötü niyetli bir kullanıcı tarafından etkin değil.Daha fazla bilgi için bkz: Surface Area Configuration'ı Anlama.
Veritabanı posta etkinleştirmek uygun olduğuna karar verirseniz, yürütmek aşağıdaki kodu:
sp_configure 'Database Mail XPs', 1; GO RECONFIGURE; GO
geri yükleme yüklemek için sp_configure Gelişmiş Seçenekleri Göster, varsayılan durumuna yordamına yürütmek aşağıdaki kodu:
sp_configure 'show advanced', 0; GO RECONFIGURE; GO
Veritabanı posta göndermek için kullanıcıların gerektiği biçimde yapılandırılmasını, belirlemek için
Veritabanı posta göndermek için kullanıcı üye olmanız DatabaseMailUserRole.Members of the sysadmin fixed server role and msdbdb_owner role are automatically members of the DatabaseMailUserRole role.Diğer tüm üyelerini listelemek için DatabaseMailUserRole aşağıdaki yürütme deyim:
EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole';
Kullanıcı eklemek için DatabaseMailUserRole rolü, aşağıdaki deyim:
sp_addrolemember @rolename = 'DatabaseMailUserRole' ,@membername = '<database user>';
Veritabanı posta göndermek için kullanıcıların en az bir veritabanı posta profili için erişimi olmalıdır.(Sorumlusu) kullanıcılar ve erişim sahip oldukları profilleri listelemek için aşağıdaki deyim yürütmek.
EXEC msdb.dbo.sysmail_help_principalprofile_sp;
Profilleri oluşturun ve kullanıcıların profilleri erişimi vermek için veritabanı posta Yapılandırma Sihirbazı'nı kullanın.
Veritabanı posta başlatıldığını onaylamak için
The Database Mail External Program is activated when there are e-mail messages to be processed.Edilmiştir, hiçbir ileti göndermek için belirtilen saat aşımı süresinin programından çıkar.Veritabanı posta etkinleştirme başlatıldığını onaylamak için aşağıdaki deyim yürütmek.
EXEC msdb.dbo.sysmail_help_status_sp;
Veritabanı posta etkinleştirme başlatılmazsa aşağıdaki yürütme deyim başlatmak için:
EXEC msdb.dbo.sysmail_start_sp;
Dış veritabanı posta programı başlattıysanız aşağıdaki deyim ile posta sırasının durumunu denetleyin:
EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail';
Posta sıra durumunu olmalıdır RECEIVES_OCCURRING.Status kuyruğu moment moment değişebilir.Posta sırası durumu ise RECEIVES_OCCURRING, sıra kullanarak durdurmayı deneyin sysmail_stop_sp sonra sıra kullanarak başlangıç ve sysmail_start_sp.
Not
Use uzunluğu sütun sonuç küme sysmail_help_queue_sp e-posta sıra sayısını belirlemek için.
Bir profildeki tüm hesapları veya yalnızca bazı hesapları veritabanı Mail'de sorun etkiler, belirlemek için
Belirlenen ancak tüm profilleri posta gönderebilir, sonra sorun profilleri tarafından kullanılan veritabanı posta hesapları ile ilgili sorunlar olabilir.Hangi hesapların mail gönderme başarılı olduğunu belirlemek için aşağıdaki yürütme deyim:
SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems;
Çalışmadığı bir profili listelenen hesaplara birini kullanırsanız, daha sonra profilinde bulunan tüm hesapların doğru çalışmayan mümkündür.Tek tek hesaplar sınamak için tek bir hesap ile yeni bir profil oluşturun ve daha sonra kullanmak için veritabanı posta Yapılandırma Sihirbazı'nı kullanın Test elektronik posta Gönder yeni hesabı kullanarak posta göndermek için iletişim kutusu.
Database Mail tarafından döndürülen hata iletileri görüntülemek için aşağıdaki yürütme deyim:
SELECT * FROM msdb.dbo.sysmail_event_log;
Not
Database Mail'i bir smtp posta sunucusu başarıyla teslim edildiğinde, gönderilecek posta düşünür.Geçersiz alıcı e-posta adresi gibi sonraki hatalar hala posta teslim edilmesini engelleyebilir ancak veritabanı posta günlüğü içinde bulunacaktır.
Posta teslimi yeniden denemek için veritabanı posta yapılandırmak için
Veritabanı posta smtp sunucusu güvenilir bir şekilde ulaşılamaması nedeniyle başarısız olduğu belirlenen, Database Mail her ileti göndermek için girişimlerinin sayısını artırarak başarılı posta teslim hızınızı artırmak olabilir.Veritabanı posta Yapılandırma Sihirbazı'nı başlatın ve seçin Sistem parametrelerini görüntüleme veya değiştirme seçeneği.Alternatif olarak, profil için başka hesaplar ilişkilendirebilirsiniz birincil hesabı'ndan yük devretme, e-postalar göndermek için yük devretme hesap Database Mail'in kullanacağı şekilde.
Sistem yapılandırma parametreleri sayfa, varsayılan değerler için 5 kez Hesabı yeniden deneme girişimleri ve 60 saniye boyunca Hesabı yeniden deneme gecikmesi 5 dakika içinde smtp sunucusuna erişilemezse, ileti teslimi anlamına gelir başarısız olur.Miktarını uzatmak için bu parametreler artırmak saat başarısız önce iletiyi teslim.
Not
Çok sayıda ileti gönderildiğinde, büyük varsayılan değerler güvenilirliğini artırabilir, ancak çok sayıda ileti tekrar tekrar teslim edilecek denenirler gibi kaynaklarının kullanımını önemli ölçüde arttırır.Kök sorun ağ veya smtp sunucu veritabanı posta smtp sunucusu hemen başvurarak engelleyen bir sorunu çözerek adres.
Güvenlik
Üye olmanız gerekir sysadmin veritabanı posta tüm yönlerini gidermek için sabit sunucu rolü.Üye olmayan kullanıcılar, sysadmin sabit sunucu rolü yalnızca girişimi göndermek için e-postalar hakkında diğer kullanıcılar tarafından gönderilen postalar hakkında bilgi edinin.
Ayrıca bkz.