SQL: SSIS: Pełny transaction log wywołany przez SSIS Server Maintenance Job

3-maj-2019

Jeśli na serwerze z zainstalowaną usługą SSIS I bazą danych SSISDB znajdziesz job „SSIS Server Maintenance Job” w statusie failed, a w error logu dodatkowo odnajdziesz informacje o pełnym logu transakcyjnym tej bazy, to masz przed sobą nieco pracochłonny process, jednak sprawa jest do opanowania!

Skoro log transakcyjny się zapełnia to transakcje są za duże. Trzeba je więc zmiejszyć… Oto jak:

Zajrzyjmy najpierw do joba. Ma on 2 job steps:

Każdy job step to po prostu wywołanie procedury:

EXEC [internal].[cleanup_server_retention_window]

Procedury rozpoczynają się od pobrania parametrów:

SELECT @retention_window_length = CONVERT(int,property_value)
FROM [catalog].[catalog_properties]
WHERE property_name = ’RETENTION_WINDOW’

Oczywiście prarametry te wpływają na to ile danych będzie kasowanych. No więc, chyba mamy rozwiązanie!

Wystarczy odczytać aktualną wartość parametru np. „RETENTION_WINDOW”, zamapiętać ją (bo na koniec chcemy wrócić do oryginalnej wartości), zmienić na większą (lub mniejszą w zależności od tego jaki parameter zmieniasz – ale zawsze chodzi nam o kasowanie mniejszej ilości danych). Po zmianie uruchomić procedure – nawet niekoniecznie z joba, można po prostu uruchoamiać wybraną procedure I możliwości są dwie:

-jeśli się udało – zmieniamy wartość parametru na bliższą wartości oryginalnej

-jeśli się nie udalo – zmieniamy wartość parametru na dalszą od wartości oryginalnej

 

 

Komentarze są wyłączone

Autor: Rafał Kraik