Udostępnij za pośrednictwem


Rozwiązywanie problemów z poczty bazy danych: Ogólne kroki

Rozwiązywanie problemów z poczty bazy danych polega na sprawdzeniu następujące ogólne obszary systemu poczty bazy danych.Procedury te są prezentowane w kolejności logicznej, ale mogą być oceniane w dowolnej kolejności.

Aby ustalić, czy jest włączona poczta bazy danych

  1. W SQL Server Management Studio, połączyć się z wystąpienie SQL Server przy użyciu okna Edytora kwerend, a następnie wykonać następujący kod:

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

    W okienku wyniki potwierdzić, że run_value dla Database Mail XPs jest zestaw do 1.

    Jeśli run_value nie jest 1, poczta bazy danych nie jest włączona.Poczta bazy danych nie jest automatycznie włączona do zmniejszenia liczby funkcji dostępnych dla ataku przez złośliwego użytkownika.Aby uzyskać więcej informacji, zobacz Opis konfiguracji obszaru powierzchni.

  2. Jeśli zdecydujesz się jest umożliwienie poczty bazy danych, należy wykonać poniższy kod:

    sp_configure 'Database Mail XPs', 1; 
    GO
    RECONFIGURE;
    GO
    
  3. Aby przywracanie sp_configure procedurę do stanu domyślnego nie Pokaż opcje zaawansowane, wykonać 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. Wysyłanie poczty bazy danych, użytkownicy muszą być element członkowski z DatabaseMailUserRole.Members of the sysadmin fixed server role and msdbdb_owner role are automatically members of the DatabaseMailUserRole role.Aby wyświetlić listę wszystkich innych członków DatabaseMailUserRole wykonać następujące instrukcja:

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

    sp_addrolemember @rolename = 'DatabaseMailUserRole'
       ,@membername = '<database user>';
    
  3. Wysyłanie poczty bazy danych, użytkownicy muszą mieć dostęp do co najmniej jednego profilu poczty bazy danych.Aby wyświetlić listę użytkowników (podmioty) i profile, do których mają dostęp, należy wykonać następujące instrukcja.

    EXEC msdb.dbo.sysmail_help_principalprofile_sp;
    
  4. Aby utworzyć profile i udzielić dostępu do profilów użytkowników za pomocą Kreatora konfiguracji poczty bazy danych.

Aby potwierdzić uruchomieniu poczty bazy danych

  1. Bazy danych poczty zewnętrzny Program jest uaktywniana, gdy są wiadomości e-mail do przetworzenia.Gdy zostały nie wiadomości dla określonego czas-okresu, zamyka program.Potwierdzenie uruchomiona aktywacja poczty bazy danych, 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 zewnętrzny program poczty bazy danych jest uruchomiona, sprawdź stan kolejki poczty z następującymi instrukcja:

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

    Kolejki poczty powinny mieć stan RECEIVES_OCCURRING.Stan kolejki mogą różnić się moment moment.Jeśli stan kolejki poczty nie jest RECEIVES_OCCURRING, spróbuj zatrzymać za pomocą kolejki sysmail_stop_sp a następnie uruchomić za pomocą kolejki sysmail_start_sp.

Ostrzeżenie

Użyj długość kolumna zestaw wyników sysmail_help_queue_sp określić liczbę wiadomości e-mail w kolejce poczty.

Aby określić, jeśli problemy z poczty bazy danych wpływa na wszystkie konta w profilu lub tylko niektóre konta

  1. Można stwierdzić, że niektórych, ale nie wszystkie profile można wysłać pocztę, a następnie mogą mieć problemy z kont pocztowych bazy danych, używane przez profile problem.Aby określić, które konta są skuteczne w wysyłaniu 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 konta wymienione na liście, jest możliwe, że wszystkie konta dostępne do profilu nie działa prawidłowo.Badanie poszczególnych kont, należy użyć, aby utworzyć nowy profil z jednego konta, a następnie użyć Kreatora konfiguracji poczty bazy danych Wysyłanie wiadomości E-Mail Test okno dialogowe Wysyłanie poczty przy użyciu nowego konta.

  3. Aby wyświetlić komunikaty o błędach zwracanych przez pocztę bazy danych, należy wykonać następujące instrukcja:

    SELECT * FROM msdb.dbo.sysmail_event_log;
    

Ostrzeżenie

Poczta bazy danych uważa mail wysłane pomyślnie dostarczana do serwera poczty SMTP.Kolejne błędy, takie jak adres e-mail adresata nieprawidłowy nadal uniemożliwić poczty są dostarczane, ale nie będą zawarte w dzienniku bazy danych poczty.

Konfigurować poczty bazy danych, aby ponowić próbę dostarczania poczty

  1. Jeśli ustalisz, że poczta bazy danych jest możliwe, ponieważ serwer SMTP nie można wiarygodnie osiągnięty, można zwiększyć szybkość dostarczania poczty pomyślne, zwiększając liczbę prób poczty bazy danych do wysyłania wiadomości.Uruchom Kreatora konfiguracji poczty bazy danych i zaznacz Przeglądanie lub zmienianie parametrów systemu opcji.Alternatywnie można skojarzyć więcej kont do profilu podczas pracy awaryjnej z podstawowego konta poczty bazy danych użyje konta pracy awaryjnej do wysyłania wiadomości e-mail.

  2. strona Konfigurowanie parametrów systemu, domyślne wartości 5 razy dla Konto ponawiania prób i 60 sekund dla Opóźnienie ponów konta oznacza, że dostarczanie wiadomości zawiedzie, jeżeli serwer SMTP nie może być osiągnięty w ciągu 5 minut.Zwiększenie tych parametrów, aby wydłużyć czas, po którym zakończy się niepowodzeniem dostarczania wiadomości.

Ostrzeżenie

Dużą liczbę wiadomości są wysyłane, wartości domyślne dużych może zwiększyć niezawodność, ale znacznie zwiększy wykorzystanie zasobów, jak wiele komunikatów próby dostarczenia wielokrotnie.Problem główny adres przez przetłumaczenie sieci lub problem serwera SMTP, który uniemożliwia niezwłocznie zgłosić serwer SMTP poczty bazy danych.

Zabezpieczenia

Musi być element członkowski z sysadmin roli serwera stałych rozwiązywać wszystkie aspekty poczty bazy danych.Użytkownicy, którzy nie są członkami z sysadmin stała rola serwera tylko można uzyskać informacje o próbie wysłania wiadomości e-mail, a nie na temat wiadomości e-mail wysyłanych przez innych użytkowników.