MSSQL 2005 Express
SQL server 2005 Express neobsahuje SQL Server Agent, proto je nutno úlohy pro údržbu databází plánovat pomocí plánovače úloh systémy Windows a utility sqlcmd.
1) První kroky
Vytvořte adresář, do kterého umístíte níže uvedené soubory. V tomto článku použijeme adresář C:\Maintenance.
2) Záloha všech databází
- Chcete-li naplánovat zálohu všech uživatelských databází, vytvořte v adresáři C:\Maintenance následující soubor:
zaloha.sql
execute spav_dbbackup_all_dbs 'C:\SQLBackup', 10
V tomto případě budou zálohovány všechny uživatelské databáze do adresáře C:\SQLBackup s tím, že zálohy starší 10 dnů budou automaticky smazány.
- Chcete-li zálohovat databáze pouze určených firem či databází, může soubor zaloha.sql vypadat například takto:
zaloha.sql
execute spav_dbbackup2 1, 'C:\SQLBackup', 10
execute spav_dbbackup 'Firmy', 'C:\SQLBackup', 10
execute spav_dbbackup 'DZAK0001', 'C:\SQLBackup', 10
V tomto případě budou zálohovány databáze Firmy, DZAK0001, DataX001, DMajX001, DMzdX001, DOLEX001 a DUctX001.
Dále vytvořte soubor zaloha.cmd, který použijete v plánovači úloh, s následujícím obsahem
zaloha.cmd (zabezpečení SQL serveru)
sqlcmd -S "<SERVER>" -U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" -i "C:\Maintenance\zaloha.sql" -o "C:\Maintenance\zaloha.log"
tento příkaz spustí utilitu sqlcmd a požadované operace provede na základě údajů uvedených v souboru C:\Maintenance\zaloha.sql. V adresáři C:\Maintenance bude vytvořen soubor zaloha.log s informacemi o průběhu zálohování.
V případě, že chcete použít integrované zabezpečení systému windows, vynechte údaje (-U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" ):
zaloha.cmd (integrované zabezpečení)
sqlcmd -S "<SERVER>" -i "C:\Maintenance\zaloha.sql" -o "C:\Maintenance\zaloha.log"
V tomto případě nezapomeňte, že uživatel systému windows, pod jehož účtem budete plánovanou úlohu spouštět, musí být na SQL serveru členem serverové role sysadmin!
V plánovači úloh naplánujte novou úlohu s časem spuštění nejlépe vám vyhovujícím a jako příkaz použijte dávkový soubor C:\Maintenance\zaloha.cmd.
3) Kontrola integrity databází
- Chcete-li naplánovat kontrolu integrity všech uživatelských databází, vytvořte v adresáři C:\Maintenance následující soubor:
integrita.sql
execute spav_foreachuserdb @Command='DBCC CHECKDB'
V tomto případě bude provedena kontrola integrity všech uživatelských databází. V adresáři C:\Maintenance bude vytvořen soubor Integrita.log s informacemi o průběhu kontroly integrity.
- Chcete-li provést kotrolu integrity pouze u výchozích databází Varia, bude soubor integrita.sql vypadat takto:
integrita.sql
execute spav_foreachvariodb @Command='DBCC CHECKDB'
V tomto případě bude provedena kontrola integrity pouze u databází Firmy, DataXXXX, DMajXXXX, DMzdXXXX, DOLEXXXX, DUctXXXX.
Dále vytvořte soubor integrita.cmd, který použijete v plánovači úloh, s následujícím obsahem
integrita.cmd (zabezpečení SQL serveru)
sqlcmd -S "<SERVER>" -U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" -i "C:\Maintenance\integrita.sql" -o "C:\Maintenance\integrita.log"
tento příkaz spustí utilitu sqlcmd a požadované operace provede na základě údajů uvedených v souboru C:\Maintenance\integrita.sql. V adresáři C:\Maintenance bude vytvořen soubor integrita.log s informacemi o průběhu zálohování.
V případě, že chcete použít integrované zabezpečení systému windows, vynechte údaje (-U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" ):
integrita.cmd (integrované zabezpečení)
sqlcmd -S "<SERVER>" -i "C:\Maintenance\integrita.sql" -o "C:\Maintenance\integrita.log"
V tomto případě nezapomeňte, že uživatel systému windows, pod jehož účtem budete plánovanou úlohu spouštět, musí být na SQL serveru členem serverové role sysadmin!
V plánovači úloh naplánujte novou úlohu s časem spuštění nejlépe vám vyhovujícím a jako příkaz použijte dávkový soubor C:\Maintenance\integrita.cmd .
4) Reindexace
- Chcete-li naplánovat reindexaci všech uživatelských databází, vytvořte v adresáři C:\Maintenance následující soubor:
reindexace.sql
execute spav_dbreindex_all_dbs
V tomto případě bude provedena reindexace nad všemi tabulkami všech uživatelských databází. V adresáři C:\Maintenance bude vytvořen soubor reindexace.log s informacemi o průběhu reindexace. Soubor nebude prázdný pouze v případě chyby.
- Chcete-li reindexovat databáze pouze určených firem či databází, může soubor integrita.sql vypadat například takto:
reindexace.sql
execute spav_dbreindex2 1
execute spav_dbreindex 'Firmy'
execute spav_dbreindex 'DZAK0001'
V tomto případě bude provedena reindexace pouze u databází Firmy, DZAK0001, DataX001, DMajX001, DMzdX001, DOLEX001 a DUctX001.
Dále vytvořte soubor reindexace.cmd, který použijete v plánovači úloh, s následujícím obsahem
reindexace.cmd (zabezpečení SQL serveru)
sqlcmd -S "<SERVER>" -U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" -i "C:\Maintenance\reindexace.sql" -o "C:\Maintenance\reindexace.log"
tento příkaz spustí utilitu sqlcmd a požadované operace provede na základě údajů uvedených v souboru C:\Maintenance\reindexace.sql. V adresáři C:\Maintenance bude vytvořen soubor reindexace.log s informacemi o průběhu zálohování.
V případě, že chcete použít integrované zabezpečení systému windows, vynechte údaje (-U "<LOGINSYSADMIN>" -P "<HESLOSYSADMIN>" ):
reindexace.cmd (integrované zabezpečení)
sqlcmd -S "<SERVER>" -i "C:\Maintenance\reindexace.sql" -o "C:\Maintenance\reindexace.log"
V tomto případě nezapomeňte, že uživatel systému windows, pod jehož účtem budete plánovanou úlohu spouštět, musí být na SQL serveru členem serverové role sysadmin!
V plánovači úloh naplánujte novou úlohu s časem spuštění nejlépe vám vyhovujícím a jako příkaz použijte dávkový soubor C:\Maintenance\reindexace.cmd .
Poznámky
- Pro více informací o plánovači úloh čtěte článek na technetu Task Scheduler.
- Procedura na ořezání databázových logů postrádá významu, neboť na SQL server 2005 Express je výchozím modelem obnovy databáze model Simple a ořezávání logů nebude v dalších verzích MSSQL podporováno. Více o údržbě databázových logů viz. článek na MSDN: Managing the Transaction Log.