19 grudnia, 2021

SQL Server DBA Diaries

wykonywanie kopii zapasowych baz danych jest jednym z najczęściej wykonywanych zadań przez dowolny DBA. W większości przypadków okno konserwacji, że zespół DBA dostaje do wykonywania czynności konserwacji bazy danych jest zwykle mniej. Częściej, że nie, zadania konserwacji bazy danych biegną poza określonym oknie i Zespół aplikacji zaczyna narzekać na to.

nawet w naszym środowisku Zwykle zespół aplikacyjny wraca do stwierdzenia ” nasze krytyczne zadania rozpoczną się w ciągu najbliższych kilku minut. Widzimy, że jeden proces tworzenia kopii zapasowych bazy danych wykorzystuje większość zasobów. Skoro to może mieć wpływ na naszą pracę, możesz TO ZABIĆ?”

dla nich jest to zadanie tworzenia kopii zapasowych, które działa codziennie. Ale tylko DBA wie, jak cenna jest kopia zapasowa bazy danych. Nie pamiętam, ile razy ten dodatkowy backup pomógł mi wyjść z trudnych sytuacji lub dał mi pewność siebie, aby iść do przodu z jakąś ryzykowną propozycją.

gdy ktoś zapyta jak długo będzie działało to zadanie backupu lub ile już wykonało, najlepszym rozwiązaniem w SQL Server 2000 było sprawdzenie wyniku podanego przez parametr stats w skrypcie backupu. Jeśli jednak ktoś zapomniał podać parametr stats w skrypcie backupu, nie ma możliwości sprawdzenia stanu zakończenia backupu w SQL Server 2000.

ale począwszy od SQL Server 2005, to zachowanie się zmieniło. Jednym z wielu wspaniałych DMV, które mają być zawarte w SQL Server 2005 jest sys. dm_exec_requests. z tym DMV status, procent ukończony itp. procesu tworzenia kopii zapasowej (w tym przypadku dowolne polecenie SQL) można łatwo śledzić. Oto skrypt, który robi dokładnie to samo.

SELECT A.NAME,B.TOTAL_ELAPSED_TIME/60000 AS ,B.ESTIMATED_COMPLETION_TIME/60000 AS ,B.PERCENT_COMPLETE as ,(SELECT TEXT FROM sys.dm_exec_sql_text(B.SQL_HANDLE))AS COMMAND FROM MASTER..SYSDATABASES A, sys.dm_exec_requests BWHERE A.DBID=B.DATABASE_ID AND B.COMMAND LIKE '%BACKUP%' order by percent_complete desc,B.TOTAL_ELAPSED_TIME/60000 desc

wiem, że większość z nas już od bardzo dawna korzysta z niektórych lub innych wersji tego skryptu. Ponieważ ten skrypt ostatnio pomógł Davidowi Rummelowi śledzić kopię zapasową dużej bazy danych, pomyślał, że może to pomóc komuś innemu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.