Udostępnij przez


Troubleshooting Database Mail: General steps

Rozwiązywanie problemów z poczty bazy danych polega na sprawdzanie ogólne następujące obszary systemu poczty bazy danych.Procedury te są prezentowane w kolejności logicznej, ale może przyjmować w dowolnej kolejności.

Aby określić, czy jest włączona poczta bazy danych

  1. W SQL Server Management Studio, połączyć się z wystąpienie SQL Server przez użycie okna edytora kwerendy, a następnie wykonać następujący kod:

    sp_configure 'show advanced', 1; 
    GO
    RECONFIGURE;
    GO
    sp_configure;
    GO
    

    W okienku wyniki, upewnij się, że run_value dla Database Mail XPs jest ustawiona na 1.

    Jeśli run_value nie jest 1Poczta bazy danych nie jest włączona. Poczta bazy danych nie jest automatycznie włączona do zmniejszenia liczby funkcji dostępnych w przypadku ataku przez złośliwego użytkownika.Aby uzyskać więcej informacji zobaczUnderstanding Surface Area Configuration.

  2. Jeśli użytkownik zdecyduje, że jest umożliwienie poczty bazy danych, należy wykonać poniższy kod:

    sp_configure 'Database Mail XPs', 1; 
    GO
    RECONFIGURE;
    GO
    
  3. Aby przywrócić sp_configure procedury do stanu domyślnego, które nie są wyświetlane zaawansowane opcje, wykonaj następujący kod:

    sp_configure 'show advanced', 0; 
    GO
    RECONFIGURE;
    GO
    

Aby określić, jeśli użytkownicy są poprawnie skonfigurowane do wysyłania poczty bazy danych

  1. Aby wysłać pocztę bazy danych, użytkownicy muszą być członkiem DatabaseMailUserRole.Members of the sysadmin fixed server role and msdbdb_owner role are automatically members of the DatabaseMailUserRole role.Aby wyświetlić listę wszystkich pozostałych członków DatabaseMailUserRole wykonanie następujących instrukcja:

    EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole';
    
  2. Aby dodać użytkowników do DatabaseMailUserRole roli, należy użyć następującej instrukcja:

    sp_addrolemember @rolename = 'DatabaseMailUserRole'
       ,@membername = '<database user>';
    
  3. Aby wysłać pocztę bazy danych, użytkownicy muszą mieć dostęp do co najmniej jeden profil poczty bazy danych.Aby wyświetlić listę użytkowników (głównych) i profile, do których mają dostęp, należy wykonać następującą instrukcję.

    EXEC msdb.dbo.sysmail_help_principalprofile_sp;
    
  4. Użyj Kreatora konfiguracja poczty bazy danych do tworzenia profilów i zezwolić na dostęp do profili użytkowników.

Aby potwierdzić, czy uruchomiono poczty bazy danych

  1. The Database Mail External Program is activated when there are e-mail messages to be processed.Jeśli nie było żadnych wiadomości do wysłania do określonego limitu czas, zamyka program.Potwierdzenie aktywacja poczty bazy danych jest uruchomiona, należy wykonać następujące instrukcja.

    EXEC msdb.dbo.sysmail_help_status_sp;
    
  2. Jeśli aktywacja poczty bazy danych nie jest uruchomiona, należy wykonać następujące instrukcja go uruchomić:

    EXEC msdb.dbo.sysmail_start_sp;
    
  3. Jeśli zostanie uruchomiony program zewnętrzny poczty bazy danych, należy sprawdzić stan kolejki poczty z następującego instrukcja:

    EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail';
    

    Kolejka wiadomości e-mail powinny mieć stan RECEIVES_OCCURRING.Kolejkę stanu mogą się różnić w danym momencie.Jeśli nie jest stan kolejki poczty RECEIVES_OCCURRING, spróbuj zatrzymać kolejki, używając sysmail_stop_sp , a następnie uruchomić kolejki, używając sysmail_start_sp.

Uwaga

Użycie długość zestaw wyników kolumnasysmail_help_queue_sp w celu określenia liczby wiadomości e-mail w kolejce wiadomości.

Aby określić, jeśli problemy z programem Poczta bazy danych mają wpływ na wszystkie konta w profilu lub tylko niektóre konta

  1. Jeśli w ten sposób można stwierdzić, niektórych, ale nie wszystkie profile mogą wysyłać pocztę, a następnie mogą wystąpić problemy z kont poczty bazy danych, używane przez profile problem.Aby określić, które konta są powiodło się podczas wysyłania poczty, należy wykonać następujące instrukcja:

    SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems;
    
  2. Jeśli profil, który nie działa nie używa żadnego z kont, na liście, jest to możliwe, że wszystkie konta dostępne w profilu nie działa prawidłowo.Aby przetestować indywidualne konta, za pomocą Kreatora konfiguracja poczty bazy danych utworzyć nowy profil z jednego konta, a następnie użyj Wyślij pocztę E-Mail Test okno dialogowe Wysyłanie wiadomości przy użyciu nowego konta.

  3. Aby przejrzeć komunikaty o błędach zwracanych przez pocztę bazy danych, należy wykonać następującą instrukcję:

    SELECT * FROM msdb.dbo.sysmail_event_log;
    

Uwaga

Poczta bazy danych bierze pod uwagę wiadomości e-mail mają być wysyłane, gdy jest on pomyślnie dostarczony do serwera poczty SMTP.Kolejne błędy, takie jak adres e-mail nieprawidłowy nadal uniemożliwi wiadomości są dostarczane, ale nie będzie znajdować się w dzienniku bazy danych korespondencji.

Aby skonfigurować Poczta bazy danych, aby ponowić próbę dostarczania poczty

  1. Jeśli zostaną określone, że wiadomości bazy danych jest możliwe, serwer SMTP nie może być niemożność niezawodnie, można zwiększyć szybkość dostarczania poczty pomyślne, zwiększając liczbę prób w celu wysłania wiadomości poczty bazy danych.Uruchom Kreatora konfiguracja poczty bazy danych i zaznacz Wyświetl lub zmień parametrów systemu opcji.Alternatywnie można skojarzyć kilku kont w profilu, tak aby podczas pracy awaryjnej z podstawowego konta, baza danych zostanie użyty przez program Poczta konto pracy awaryjnej do wysyłania wiadomości e-mail.

  2. strona Konfiguruj parametry systemu, domyślne wartości 5 godzin dla Konto ponowień a 60 sekundOpóźnienie ponów próbę konta oznacza, że dostarczanie wiadomości zakończy się niepowodzeniem, jeśli serwer SMTP nie może być osiągnięty w ciągu 5 minut.Zwiększenie tych parametrów, aby wydłużyć czas, zanim wiadomość dostarczania nie powiedzie się.

Uwaga

Dużą liczbę wiadomości są wysyłane, domyślne dużej wartości może zwiększyć niezawodność, ale znacznie zwiększy z wykorzystaniem zasobów, jak wiele komunikatów próby dostarczenia wielokrotnie.Rozwiązania problemu głównego przez przetłumaczenie sieci lub problem z serwerem SMTP, uniemożliwiający skontaktowanie się z serwerem SMTP natychmiast poczty bazy danych.

Security

Musisz być członkiem sysadmin ustala rolę serwera do rozwiązywania problemów z wszystkimi aspektami poczty bazy danych.Użytkownicy, którzy nie są członkami z sysadmin stała rola serwera tylko można uzyskać informacji o próbie wysłania wiadomości e-mail, nie dotyczące wiadomości e-mail wysyłanych przez innych użytkowników.