1. Stáhněte si tento soubor Automate-SQL-Express-Backup.zip a rozbalte si jej přímo na disk C.
Důležité kroky jsou zapsány v textovém souboru Read Me Info.txt, ovšem v angličtině.
2. Vytvořte stored proceduru v master databázi. Celý text je uložen na cestě: c:\Backups-All\Automate\SQL Script\Automate SQL Express backups.rtf
Otevřete si Management studio, klepněte na New Query a jednoduše vezměte vše z výše uvedeného souboru a zkopírujte do MSSQL. Následně klepněte na Execute. Pokud vše prošlo správně, měli byste nyní dole pod příkazem vidět text "Command(s) completed seccessfully."
3. Pokud máte více databází na serveru a chcete zálohovat pouze některé z nich, je nutné ve stored proceduře upravit script, ve kterém řeknete, které databáze se zálohovat nebudou (tzv. exclude - vyloučit). Projděte stromem v Management studiu -> Databases -> System Databases -> Master -> Programmability -> Stored Procedures -> pravým tl. myši na dbo.sp_BackupDatabases a vyberte Modify.
Tímto se script spustí a vy ho již můžete upravovat. Najděte sekci "Filter out databases..." a přidejte zde název DB, kterou chcete vyjmout. Jakmile je hotovo, klepněte zase na Execute.
To by byly hotové věci okolo databáze. Nyní se pustíme do nastavení plánovaných úloh, které nám budou automaticky databáze zálohovat a mazat.
4. Otevřete si vlastnosti tohoto počítače a najděte název počítače, na kterém úloha poběží. Můj se jmenuje "vm14081".
5. Tento název vložte do všech čtyř souborů ve složce c:\Backups-All\Automate\Schedul-Task-xml\ místo názvu TECH.PETERCRYS.COM
- 12AM-backup.xml
- 12PM-backup.xml
- DEL12AM.xml
- DEL12PM.xm
6. Spusťte si Plánovač úloh (Task scheduler) a následně klepněte pravým tl. myši na Knihovnu a vyberte Importovat úlohu.
Najděte XML soubory, které jste před chvílí upravovali a jeden po druhém naimportujte.
Po importu jednotlivých částí si můžete upravit hodinu či den, kdy se má tato záloha nebo odmazání provádět. Aktuálně je to nastaveno na zálohu ve 12 hodin odpoledne a o půlnoci každý den. Následně pak odmazávání je nastaveno takto:
DEL12AM - odmaže zálohy 12AM-backup vždy ve dny 1, 11, 21 a posledního v 11hod.
DEL12PM - odmaže zálohy 12PM-backup vždy ve dny 6, 16, 26 ve 23hod.
Časy záloh a odmazání si upravte taky dle velikosti vašeho disku, aby se nestalo, že sice budete zálohovat, ale už nebudete odmazávat a disk si zaplníte během pár dní.
Mě to prvně přes naplánovanou úlohu nefungovalo a protože se příkazová řádka ihned zavřela, nestihl jsem ani postřehnout v čem je problém. Otevřel jsem si tedy příkazovou řádku a vložil příkaz ručně. Ihned potom se objevila chyba "Cannot open backup device. Operating System error 5". Problém je v zapisování do složky uvedené v .bat souboru.
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='C:\Backups-All\Backup\12AM\', @backupType='F'"
Napravit se to dá docela jednoduše. Otevřete si Služby (neboli Services).
Zde najděte službu MS SQL a zjistitě přes jakého uživatele se spouští. V mém případě to je MSSQL$SQLEXPRESS.
Tomuto uživateli je nyní nutné přidat možnost zápisu do této složky. Najděte si ji a klepkněte na ni pravým tl. myši a vyberte Vlastnosti, poté záložku Zabezpečení -> Upravit -> Přidat -> Upřesnit -> Najít.
Najděte stejného uživatele, který spouští MS SQL Express službu a potvrďte OK.
Nakonec mu ještě přidejte veškerá práva -> Úplné řízení.
Video návod v angličtině najdete zde. A info od Microsoftu zase zde.
Ještě malé upozornění...
Po změně cesty do jiného adresáře, mi přestalo zálohování fungovat. Nezjistil jsem čím to bylo, ovšem pomohlo vytvořit nový adresář, kam jsem místo pomlčky "-" dal podtržítko "_". Následně pak už vše zase fungovalo jak má.
0 komentářů:
Okomentovat