Skip to content

Automatisatie van Taken

1. SQL Server Agent

SQL Server Agent is de centrale service voor het automatiseren van beheertaken. Elke SQL Server instantie heeft er één. Alles wat je meer dan een paar keer moet doen, kan je hier automatiseren.

Componenten

Component Beschrijving
SQL Server service (MSSQLSERVER) De database-engine zelf
Windows Application Log Logt systeemgebeurtenissen; SQL Server Agent leest dit
SQL Server Agent service Voert geautomatiseerde taken uit, reageert op events

Wat SQL Server Agent kan automatiseren

  • Jobs — bevatten stappen, schema's, waarschuwingen en meldingen
  • Alerts — bewaken gebeurtenissen en kunnen meldingen verzenden of taken uitvoeren
  • Operators — groepen of individuen die meldingen kunnen ontvangen
  • Multi-server environments — beheer van meerdere SQL-instanties vanuit één master instance (via Master & Target-servers)

2. Operators

Een operator is een groep of individu die meldingen kan ontvangen (via e-mail of pager).

Object Explorer → SQL Server Agent → rechtermuisklik op OperatorsNew Operator...

Stel in: - Naam + e-mailadres - Pager-schema (werkdagen + tijdsvenster) - Notificaties: voor welke alerts

USE [msdb];
GO

EXEC msdb.dbo.sp_add_operator
    @name                    = N'Marcel',
    @enabled                 = 1,
    @weekday_pager_start_time = 80000,
    @weekday_pager_end_time  = 180000,
    @pager_days              = 62,
    @email_address           = N'marcel@ap.be';
GO

3. Alerts

Een alert reageert op een event in het Windows Application Log of een performantieconditie.

  • SQL Server Agent leest het Windows Application Log en vergelijkt met gedefinieerde alerts
  • Bij match → alert wordt geactiveerd

Alerts reageren op: - Mogelijke problemen (transaction log vol, disk space, ...) - Systeem errors - Door de gebruiker gedefinieerde errors

Object Explorer → SQL Server Agent → rechtermuisklik op AlertsNew Alert...

Tabbladen: - General — naam, type, object, counter, conditie - Response — job uitvoeren en/of operator notificeren - Options — e-mail/pager insluiten, vertraging tussen responses

USE [msdb];
GO

EXEC msdb.dbo.sp_add_alert
    @name                       = N'TEMPDB Growing',
    @enabled                    = 1,
    @delay_between_responses    = 120,
    @include_event_description_in = 1,
    @performance_condition      = N'Databases|Data File(s) Size (KB)|Employees|>|0';
GO

EXEC msdb.dbo.sp_add_notification
    @alert_name       = N'TEMPDB Growing',
    @operator_name    = N'Marcel Kiekeboe',
    @notification_method = 1;
GO

4. Jobs

Een job is een reeks stappen die SQL Server Agent uitvoert.

Job aanmaken (via SSMS)

Object Explorer → SQL Server Agent → rechtermuisklik op JobsNew Job...

Tabbladen:

Tabblad Inhoud
General Naam, eigenaar, categorie, beschrijving
Steps Stappen toevoegen — elke stap heeft een type (T-SQL, CmdExec, ...), database en commando; op success/failure volgende stap of stoppen
Schedules Wanneer de job uitgevoerd wordt (eenmalig, terugkerend, bij opstart)
Alerts Koppelen van alerts aan de job
Notifications Operator verwittigen + actie bij voltooiing
Targets Lokale server of target-servers (multi-server)

Job step types

Type Gebruik
Transact-SQL script (T-SQL) SQL statements uitvoeren
Operating System (CmdExec) OS-commando's uitvoeren
Een applicatie opstarten Externe applicatie uitvoeren

Schedule opties

  • Eenmalig op specifiek tijdstip
  • Terugkerend (dagelijks, wekelijks, elk uur, elke minuut, ...)
  • Bij opstart van de SQL Server Agent

5. Job History Log

Taakactiviteiten worden opgeslagen in sysjobhistory in de msdb systeemdatabase.

Veld Beschrijving
Datum en tijdstip Wanneer de stap plaatsvond
Succes/Fout Of de stap geslaagd is
Operators Wie genotificeerd is
Duurtijd Hoe lang de stap duurde
Foutberichten Eventuele foutomschrijving
  • Max. 1000 rijen in het logboek
  • Max. 100 rijen per job

Via SSMS: rechtermuisklik op job → View History → Log File Viewer


6. Automatisatie van Administratieve Taken

Taken die vaak worden uitgevoerd en daarom kunnen worden geautomatiseerd via SQL Server Agent jobs:

  • Maken van backups van databases & transaction log
  • Overzetten van data
  • Indexen herberekenen
  • Data integriteit controleren
  • Databases verkleinen

7. Database Mail

Database Mail laat SQL Server toe om zelf e-mails te sturen via SMTP — handig om operators te notificeren bij job-failures of alerts.

Kenmerken: - Berichten kunnen zoekresultaten bevatten en bestanden als bijlage - Gebruikt SMTP (Simple Mail Transfer Protocol) - Vereist lidmaatschap van de databaserol DatabaseMailUserRole in msdb - Bewaart verboden bestandsextensies (configureerbaar) - Bewaart kopieën van berichten en bijlagen in msdb

Configuratie (via SSMS)

Object Explorer → Management → rechtermuisklik op Database MailConfigure Database Mail

Stappen wizard: 1. SMTP-account aanmaken (naam, e-mailadres, display name, SMTP server + poort, authenticatie) 2. Mail-profiel aanmaken en SMTP-account(s) koppelen 3. Profile security instellen (public/private) 4. System parameters configureren (retry attempts, max file size, ...)

Database Mail testen

Object Explorer → Management → rechtermuisklik op Database MailSend Test E-Mail...


8. Multi-Server Environments

Via SQL Server Agent kunnen taken beheerd worden over meerdere SQL-instanties:

  • Master server — beheert en distribueert jobs
  • Target servers — ontvangen en voeren jobs uit

Hierdoor kan een DBA vanuit één centrale instantie jobs uitrollen naar alle target-servers.