Skrypt generujący polecenia backup dla całego serwera SQL

Wrzucam skrypcik popełniony już jakiś czas temu. Potrzeba wykonania szybko backupu, wraz z jego zrównolegleniem do kilku plików i unikalną nazwą zaowocowały poniższym kodem.

ZAŁOŻENIA:

  • generowanie dla ścieżek sieciowych (lub lokalnych dyskowych) poprzez parametr,
  • wygenerować polecenia backup wszystkich baz na serwerze tak by można było je przekopiować i uruchomić (skrypt sam nie uruchamia backupów),
  • przyspieszenie wykonywania backupów poprzez zrównoleglenie ich wykonywania do kilku plików na raz (o nazwie *_partX gdzie X to numer pliku) – ilość plików ma być konfigurowalna (jak pokazują testy, backup przez sieć 1Gbit do 6 plików przyspiesza ich robienie ponad dwukrotnie),
  • w nazwie plików maja znaleźć się nazwa serwera (i instancji) oraz data wykonania przy czym włączenie ma być parametryzowane,
  • skrypt ma również wygenerować backup baz systemowych (bez zrównoleglania) – włączenie przez parametr,
  • opcjonalnie konfiguracja polecenia STATS czyli co ile procent SQL ma zwracać status wykonania backupu,
  • baza musi być w trybie ONLINE by skrypt ja wziął pod uwagę.

SKRYPT:

 

PRZYKŁADOWY OUTPUT:

Dla parametrów identycznych jak w skrypcie powyżej i bazy AdventureWorks2012

SKRYPT PIERWOTNIE OPUBLIKOWANY JAKO TSQL na dziś #41

Dodaj komentarz