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.