Mail od klienta:
Pojawił się inny problem. Wersja mojego sql servera 2008 to wersja Express i nie mogę uruchomić sql server agenta :). Jak zrobić cykliczny backup na wersji Express. Chciałbym uzyskać taki efekt aby full backup wykonywał się w każdy wtorek.
Odpowiedź:
Rzeczywiście SQL Express jest pozbawiony Agenta. Możesz to obejść w taki sposób:
Napisz (lub wyklikaj) skrypt tworzący kopię bazy danych np:
use master;
backup database AdventureWorks2008 to disk = 'd:\mybackup.bak'
Zapisz ten skrypt pod nazwą np d:\mybackup.sql
Potem spróbuj uruchomić ten skrypt z poziomu command prompt (uruchamiasz cmd, a w nim):
sqlcmd -s d:\mybackup.sql
Komenda powinna zinterpretować Twój skrypt i wykonać kopię bazy danych. Jak działa to idziemy dalej.
Teraz wykorzystując Harmonogram zadań pod windows każesz wykonywać okresowo:
sqlcmd -s d:\mybackup.sql
Komenda w w/w postaci używa autentykacji Windows. Definiując zadanie w harmonogramie zadań
musisz określić, na czyim koncie ma się uruchamiać to zadanie. Jeżeli wybierzesz swoje konto to bądź przygotowany na to, że rozwiązanie przestanie działać kiedy zmienisz swoje hasło. Idealnie więc byłoby mieć inne konto użytkownika należące w sql do roli backup operators i uruchamiać tę komendę na tym koncie.
Skutek:
Zrobiłem tak jak pisałeś i wszystko super działa.
Zrobiłem task schedulera, który wykona mi backup bazy kiedy chce.
Stworzyłem sobie usera któremu hasło nie wygasa dodałem go do roli tak jak opisałeś i wszystko działa.
A tu jeszcze więcej ciekawych pomysłów na ten temat:
http://wss.pl/frmThread.aspx?id=384340
Komentarze:
[…] to polecenie pozwalające na uruchamianie w trybie wsadowym skryptów SQL. Można go użyć np w edycji Express, do regularnego wykonywania kopii zapasowej (co było już opisane na mobilo/mob…. Jak jednak zbadać, jaki jest wynik działania polecenia SQLCmd z poziomu „dos-owego […]