Temat: Czyszczenie transaction log - problem

Witam

Mam problem z logiem. SQL2008 po migracji z SQL2000 , ustawienia bazy: Recovery model: Bulk Logged (tak było wcześniej i zostawiłem), Compativility Level: na razie zostawione 80 ale planuję zmienić na 100.
Mam skrypt do backupu:

--Backup bazy
BACKUP DATABASE [DB_NAME] TO [Backup DB_NAME] WITH NOFORMAT, INIT, NAME = N'DB_NAME-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
--Backup logu
BACKUP LOG [DB_NAME] TO [Backup DB_NAME_tl] WITH NOFORMAT, INIT, NAME = N'DB_NAME-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
USE [DB_NAME]
GO
DBCC SHRINKFILE (N'DB_NAME_Log' , 200)
GO

Na końcu jest shrink żeby czyścić bazę ale problem jest taki że to nie działa jak ten skrypt jest uruchamiany w agencie w nocy. Jak go uruchomię ręcznie poprzez Execute wybranych komend to najpierw udaje mi się częściowo log oczyścić, później muszę jeszcze raz zbackupować żeby np do 200 oczyścić np: na poczatku mam log 4GB, po pierwszym backup logu i shrinku spada do 1,5GB po drugim backupie i shrinku do 200MB. Nie wiem dlaczego ale tak to działa. Przy tworzeniu backupu mam zaznaczone Truncate the Transaction log. We wcześniejszej wersji używałem :

backup log DB_NAME with truncate_only
go

ale w SQL 2008 R2 to nie działa.

Co powinienem zrobić i jak rozwiązać ten problem ??

pozdrawiam i z góry dziękuję za pomoc ...

konto usunięte

Temat: Czyszczenie transaction log - problem

wedlug mnie nic nie robić , zadbac tylko żeby plik logu miał miejsce na ewentualny rozrost
Jeżeli w ciągu dnia puchnie Ci on o 4Gb to znaczy że tykle potrzebuje rosnąć i zmuszanie go do rozerostu w ciągu dnia pracy to pomyłka, rozrastanie pliku ma duży wpływ na wydajność i powinieneś go unikać.
Jedynym logicznym wytłumaczeniem dla zmniejszenia pliku jest chęć zmniejszenia ruchu sieciowego i miejsca na dyskach związanego z backupem , ale ty zmniejszasz plik po backupie.
dalej, twój skrypt mija się z celem bo po kazdym pełnym backupie serwer i tak automatycznie dodaje do niego "coś na wzór" backapu logu (dlatego jeżeli backup startuje o 23.00 a kończy się o 23.30 to w backupie masz stan bazy na 23.30)

backup logów powinieneś mieć ustawiony żeby się robił w ciągu dnia np co pół godziny, jednym z jego efektów jest to, że czyszcone są już zarchiwizowane dane z pliku i nie rozrasta sie on.

backupu logu ....with truncate_only nie ma już w 2008, jedną z jego wielu wad jest to że rozbija łańcuch ciągłośći LSN i jeżeli robisz backup pełen potem backup log truncate_only to już następnego backupu logu nie zrobisz.
Daniel N.

Daniel N. Senior IT Architect,
DBA

Temat: Czyszczenie transaction log - problem

Witam,

W swoim poście piszesz, iż próbujesz 'czyścić' log poprzez shrinkowanie go.
Twoja działalność powoduje zmniejszenie rozmiaru alokacji pliku logu na dysku. Po backupie plik logu nadal zajmuje tyle miejsca na dysku, ile potrzebne było w czasie między backupami na przeprowadzenie wszystkich operacji.
Więc, tak jak napisał Robert, zupełnie mija się z celem shrinkowanie logu, gdyż w ciągu dnia przyrasta znowu. Dodatkowo należy mieć na uwadze, że każdy przyrost logu podczas pracy serwera ma znaczny wpływ na wydajność - negatywny.
Tak jak napisał Robert ustal sobie czas co ile będziesz wykonywał regularnie backup logu i nie wykonuj jego shrinkowania. Musisz dobrać rozmiar pliku logu, tak, aby nie rozrastał się on w ciągu godzin pracy.

Poniżej masz info nt. optymalizacji logów:
http://www.sqlskills.com/blogs/kimberly/post/8-Steps-t...

Pozdrawiam,
Daniel

Następna dyskusja:

Dziwny problem w funkcji T-...




Wyślij zaproszenie do