Oczyszczanie bazy MSDB z „Mail Message”

Kiedy na serwerze SQL używamy usługi SQLMail (opisanej już wcześniej) służącej do wysyłania maili wszystkie wysyłane informacje są zapisywane w tabeli w bazie MSDB. Jeśli systematycznie nie czyścimy baza MSDB może nam się mocno rozrosnąć.

Najpierw podejrzyjmy nasze dane w bazie MSDB

SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;

mailitem_id sent_status send_request_date
----------- ----------- -----------------------
8           failed      2021-12-09 19:50:42.290
9           failed      2021-12-09 19:56:59.917
10          failed      2021-12-09 20:00:18.480
11          failed      2021-12-09 20:01:19.750
14          sent        2021-12-09 20:16:09.453
...
41          sent        2021-12-09 22:41:51.117
42          sent        2021-12-09 22:43:22.227
43          sent        2021-12-09 23:03:46.337
44          sent        2021-12-09 23:05:19.650
45          sent        2021-12-09 23:07:11.370

(38 rows affected)

Do usuwania zapisanych w tabeli danych służy procedura msdb.dbo.sysmail_delete_mailitems_sp
Przykładowo aby usunąć wpisy starsze niż okręslona data należy wykonać:

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = '2020-08-25';

Przykłądowe usunięcie błędnych wysyłek:

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed';

(6 rows affected)

I usunięcie wszystkiego

DECLARE @GETDATE datetime
SET @GETDATE = GETDATE();
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = @GETDATE;

(32 rows affected)

SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;

mailitem_id sent_status send_request_date
----------- ----------- -----------------------

(0 rows affected)

UWAGA! Powyższa procedura nie usuwa zapisów z Database Mail Log. Do tego należy użyć procedury sysmail_delete_log_sp.

Czyli analogicznie jak w poprzedniej procedurze:
wyświetlenie danych:
SELECT * FROM msdb.dbo.sysmail_event_log;

log_id      event_type  log_date                description                                                                                                                                                                                                                                                      process_id  mailitem_id account_id  last_mod_date           last_mod_user
----------- ----------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- ----------- ----------- ----------------------- --------------------------------------------------------------------------------------------------------------------------------
33          information 2021-12-09 20:28:44.817 DatabaseMail process is started                                                                                                                                                                                                                                  1948        NULL        NULL        2021-12-09 20:28:44.817 ZARZĄDZANIE NT\SYSTEM
34          information 2021-12-09 20:38:44.853 DatabaseMail process is shutting down                                                                                                                                                                                                                            1948        NULL        NULL        2021-12-09 20:38:44.853 ZARZĄDZANIE NT\SYSTEM
35          information 2021-12-09 21:08:22.000 DatabaseMail process is started                                                                                                                                                                                                                                  8444        NULL        NULL        2021-12-09 21:08:22.000 ZARZĄDZANIE NT\SYSTEM
36          information 2021-12-09 21:39:13.210 DatabaseMail process is shutting down                                                                                                                                                                                                                            8444        NULL        NULL        2021-12-09 21:39:13.210 ZARZĄDZANIE NT\SYSTEM
37          information 2021-12-09 22:25:16.810 DatabaseMail process is started                                                                                                                                                                                                                                  7136        NULL        NULL        2021-12-09 22:25:16.810 ZARZĄDZANIE NT\SYSTEM
38          information 2021-12-09 22:39:42.383 DatabaseMail process is shutting down                                                                                                                                                                                                                            7136        NULL        NULL        2021-12-09 22:39:42.383 ZARZĄDZANIE NT\SYSTEM
39          information 2021-12-09 22:39:47.283 DatabaseMail process is started                                                                                                                                                                                                                                  9932        NULL        NULL        2021-12-09 22:39:47.283 ZARZĄDZANIE NT\SYSTEM
40          information 2021-12-09 22:53:22.277 DatabaseMail process is shutting down                                                                                                                                                                                                                            9932        NULL        NULL        2021-12-09 22:53:22.277 ZARZĄDZANIE NT\SYSTEM
41          information 2021-12-09 23:03:46.600 DatabaseMail process is started                                                                                                                                                                                                                                  11768       NULL        NULL        2021-12-09 23:03:46.600 ZARZĄDZANIE NT\SYSTEM
42          information 2021-12-09 23:17:11.430 DatabaseMail process is shutting down                                                                                                                                                                                                                            11768       NULL        NULL        2021-12-09 23:17:11.430 ZARZĄDZANIE NT\SYSTEM
43          information 2022-09-16 21:23:55.687 Mail items deletion is initiated by user "DELL_MICEK1968\micek1968". 0 items deleted.                                                                                                                                                                            NULL        NULL        NULL        2022-09-16 21:23:55.687 DELL_MICEK1968\micek1968
44          information 2022-09-16 21:24:11.873 Mail items deletion is initiated by user "DELL_MICEK1968\micek1968". 6 items deleted.                                                                                                                                                                            NULL        NULL        NULL        2022-09-16 21:24:11.873 DELL_MICEK1968\micek1968
45          information 2022-09-16 21:24:57.950 Mail items deletion is initiated by user "DELL_MICEK1968\micek1968". 32 items deleted.                                                                                                                                                                           NULL        NULL        NULL        2022-09-16 21:24:57.950 DELL_MICEK1968\micek1968

(13 rows affected)

usunięcie wpisów do konkretnej daty:
EXECUTE msdb.dbo.sysmail_delete_log_sp
@logged_before = '2020-08-25';

usunięcie wpisów podanego typu:
EXECUTE msdb.dbo.sysmail_delete_log_sp
@event_type = 'information';

usunięcie wszystkich danych z tabeli:
EXECUTE msdb.dbo.sysmail_delete_log_sp;

(13 rows affected)
Ten wpis został opublikowany w kategorii Microsoft SQL. Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz