KAP 18 SQL SERVER AGENT Tjänsten Sql Server Agent Operator Job Alert (larm) http://www.youtube.com/watch?v=ii1tc493bzm 1 VAD ÄR SQL SERVER AGENT? SQL Server Agent är en tjänst (service) som ansvarar för: Jobb (Job), dvs uppgifter som regelbundet kan utföras automatiskt Larm (Alert), dvs åtgärder som ska utföras då angivna händelser (event) inträffar Operatörer (Operator), dvs ansvariga som kan uppmärksammas genom e-post, personsökaren (pager) eller net send 1) kommandon Systemdatabasen msdb är agentens egen databas och används bl a till att spara schemalagda jobb. Agenten låter dig automatisera administrativa uppgifter, t ex regelbunden backup, kontrollera antalet felaktiga inloggningar definiera operatörer skapa olika typer av jobb, t ex backup jobb meddela operatör om fel inträffar Gå hem och koppla av SQL Server Agent har ansvaret Naturligtvis är du fortfarande bunden till personsökaren (pager). 1) net send kommer att försvinna i kommande versioner 2 1
OBS AGENTEN I MSTUDIO - OPERATOR Tjänsten (service) SQL Server Agent är avstängd som standard och måste startas innan agenten kan fungera. Agenten kan startas och administreras via Management Studio. Här kan man skapa operatörer job och alert: Operator En Operator är en person eller grupp som kan uppmärksammas genom e-post, personsökare (pager) eller net send 1), när jobbavslutats eller när det gått ett larm. Övning: Lägg till operatören "Nisse" Expandera SQL Server Agent ikonen och högerklicka på Operators-ikonen och välj Ny Operator Skriv namn på operatören (Nisse), e-post och dators namn som Net Send adress, OBS Servicen Messenger måste vara startad för att det ska fungera. Messenger finns tyvärr inte längre i XP SP2 eller Vista. Här får man använda SQL-mail. Synd att Net Send kommer att försvinna - den är ju lätt att testa med 1) net send kommer att försvinna i kommande versioner 3 JOB Ett jobb är en rutinuppgift som kan köras manuellt eller schemaläggas. kan ha ett eller flera steg utförs villkorligt beroende på om föregående steg lyckats eller ej. koden är vanligen T-SQL satser (backup, dbcc schrinkdb) går att anropa kommandofiler i Windows eller köra andra program. När ett jobb misslyckas eller avslutas kan det meddela operatör eller pager via e-post eller net send. Fel kan också loggas i NT Application Event Log och därigenom också starta ett larm (alert). 4 2
ÖVNING JOB Övning: Skapa ett jobb som testar Orphaned Logins En orphaned (föräldralöst) login är en windowslogin i SQL Server som inte längre existerar i Windows 1. Expandera SQL Agent och högerklicka på Jobs ikonen och välj New Job 2. Namnge jobbet "Check for Orphaned Logins" 3. Byt till Steps sidan och välj New 4. Använd Type T-SQL och database master. I kommandorutan skriver vi: exec sp_validatelogins 5. Byt till Advanced sidan. I slutet markeras: Append output to existing entry in table och Include step output in history. Tryck sedan OK 6. Byt till Notifications sidan. Välj den operator som skapats tidigare och meddela denne "When the job completes". Markera Write to the Windows Application event log - When tje job fails. 7. Klicka OK för att spara jobbet 8. Högerklicka på "Check for Orphanded Logins" i högra rutan och välj Start job 9. När jobbet är klart högerklicka på det igen och välj View History 5 FLERSTEGSJOBB Antag att det varje kväll mellan 22.00 och midnatt ska laddas ner en textfil från stordatorn för import till SQL Server. Vi behöver ett jobb som: Om filen finns Byt till bulked_logged recovery model Importera data med bulk copy programmet (bcp) Om importen lyckades Säkerhetskopiera transaktionsloggen Byt tillbaka till full- recovery model Annars Meddela operatör att den inte har anlänt Man lägger då till ett steg för varje operation. Man ställer seden enkelt in villkor genom att ta nästa steg om det lyckas annars hoppar man till ett annat steg. Listan med steg och programvillkor kan se ut så här: 6 3
ALERT - LARM Ett larm (alert) utlöses av en händelse (event) och kan som svar på denna t ex starta ett jobb eller skicka e-post De event som SQL Server kan reagera på är: 1. fel som loggas i Windows eventlogg (severity 19) t ex felaktig inloggning 2. prestandavillkor antal anslutna, antal deadlocks/s m. fl. Skapa larm Utförs i Management Studio under agenten. Man väljer vad som ska utlösa larmet. Det kan vara: Ett error number Ett severity nummer En spec. textsträng i felmeddelandet 7 ALERTS, JOBS OCH EVENT Ett larm (alert) är något som utförs då en viss händelse (event) inträffar Alert Application Event Log Running program Raiserror med xp_logevent Operator E-post Pager net send Kan köra Övervakar Startar Kan logga fel SQL Server Agent Job Kan logga fel Övervakar SQL Server Kör igång schemalagda jobb Agenten övervakar Windows Application Event Log och SQL Server. Om tillräckligt allvarligt fel (severity>=19) inträffar och ett larm (alert) är inprogrammerat för detta eller om något prestandavillkor (t ex antalet inloggade) överskrider visst värde kan ett larm utlösas. Larmet kan meddela operator direkt eller starta ett jobb som i sin tur kan meddela operator. Agenten bevakar också schemalagda jobb och startar dessa. 8 4
UNDERHÅLL För att få hjälp med att automatisera underhållet av databaserna finns Maintenance Wizard där man kan definiera de underhållsjobb som man vill schemalägga. De uppgifter som man kan få hjälp med är Check Database Integrity Perform Index maintenance Update database statistics Perform database backup Shrink data and log files För att det ska fungera ska Agenten vara startad SQL Mail installerat Server option: 'Agent XPs' vara enablat. (Se kap 11) Finns beskrivet i boken "Beginning SQL Server 2008. " kap 7 9 SUMMERING SQL Server Agent kan användas till att automatisera administrativa uppgifter och är ansvarig för Jobs, Alerts och Operators. Använder databasen msdb flitigt. SQL Server kan skicka e-post och net send meddelanden Rutinuppgifter läggs i jobb med ett eller flera steg. Jobbet kan köras manuellt eller schemaläggas. En operator är en person som ansvarar för ett jobb eller ett larm (alert) och det är till operatorn som meddelanden skickas Larm (alert) aktiveras av en händelse (event) och kan starta ett jobb och eller meddela operatör. De event som larm (alert) kan reagera på är fel som loggas i Windows eventlogg (severity 19) t ex felaktig inloggning eller på prestandavillkor t ex antal anslutna, antal deadlocks/s m fl Underhållsplaner kan lätt programmeras med Maintenance Wizard 10 5