Kontrola Maintenance plánů databází na SQL Serveru 2000 s využitím CDO.Message

Home / Uncategorized / Kontrola Maintenance plánů databází na SQL Serveru 2000 s využitím CDO.Message

Pokud máte na SQL Serveru nastavený plán údržby databáze a rádi byste chtěli výsledky této údržby pravidelně zasílat mailem, zkuste si přečíst tento článek.

Pro odesílání mailů z SQL serveru je ve většině případů standardně používána služba SQL Mail. Pro provoz této služby je nutné mít na serveru nainstalovanou klientskou aplikaci rozhraní MAPI (př. MS Outlook). Dále je nutné mít nastaven profil zpráv rozhraní MAPI a doménový účet. Splnit vyjmenované podmínky pro službu SQL Mail na SQL Serveru bývá někdy velmi problematické.

V MS SQL existují rozšířené uložené procedury, které pracují s COM objekty. Pro zaslání mailu využijeme objekt CDO.Message. 

Podmínky rozchození:

  • Povolit ukádání storovaných procedůr do databáze daného SQL Serveru.
  • Všechny Maint. plány musí mít nastaveno:

Write history to the table msdb.dbo.sysdbmaintplan_history

Právě tato tabulka se v JOBu kontroluje a podle ní se zjišťuje úspěšnost maintenance plánů.

  • Dostupnost SMTP serveru

Postup:

1. Vytvoření dvou procedur v db (spuštěním v Query Analyzer)

2. Musí se vytvořit JOB, ve kterém se jako Step nastaví:

Type: Transact-SQL Script (TSQL)
Database: db
Command:

exec vas.spg_sqladm_test_maintenance_plan
    @smtpserver = 'xxx', — doplnit
    @smtpserverport = 25,
    @smtpconnectiontimeout = 30,
    @from = 'xxx@domena.cz, — doplnit
    @to = 'yyy@domena.cz', — doplnit
    @subject = 'Report o maintenance planech xx',
    @send_report_every_time = 1, — zda se má reportovací zpráva poslat vždy
    @num_of_days_to_test =1

kde parametr @send_report_every_time určuje, jestli se zpráva pošle při každém provedení JOBu:
0 … zpráva se pošle jen když bude nalezena chyba
1 … zpráva se pošle vždy
a parametr @num_of_days_to_test je počet dnů,
které se mají zpětně překontrolovat. Tento parametr je tu proto, aby bylo možné dělat třeba jen týdenní kontrolu

Schedule:

Nastaví se na nějaký čas (doporučuji denně) poté, co proběhnou všechny (noční) maintenance nad databází (db) 

3. Výsledný e-mail pak vypadá např. takto:

Vypis z procedury spg_sqladm_test_maintenance_plan v. 01
Server: SERVER\MSSQL1
Databaze: db

Report poslednich uspesnych aktivit v poslednich 1 dnech:

start_time | plan_name | activity
2008-06-16 02:19:24 | Zálohy databází | Delete old db backup files
2008-06-16 02:13:00 | Zálohy databází | Verify Backup
2008-06-16 02:08:42 | Zálohy databází | Backup database
(Vypis 3 z celkem 3 radku)

Report poslednich NEUSPESNYCH aktivit v poslednich 1 dnech:
Zadne neuspesne aktivity.

4. Poznámka

Aby se doručování mailů nechovalo jako SPAM, tak je dobré nastavit kontrolu každý den se zasláním e-mailu při chybě. Po-té pak jednou za týden kontrolu posledních 7 dnů, aby jsme si ověřili zda-li je všechno v pořádku.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *