Ved hjælp af databasevedligeholdelsesplaner kan vi automatisere grundlæggende databaseadministrationsaktiviteter. Vedligeholdelsesplaner er SQL Server-integrationsservicepakker, som udføres af SQL Server Agent-job på konfigureret tidsplan. Ved hjælp af vedligeholdelsesplaner kan vi automatisere følgende opgaver.
- Formindsk en database
- Sikkerhedskopier en database
- Operatørmeddelelse
- Opdater databasestatistik
- Udfør databaseintegritetstjek
- Udfør SQL Server Agent-job
- Kør T-SQL-script
- Omorganiser eller genopbyg indekser
Desuden kan vi konfigurere en alarm for at underrette en DBA om status for udførelse af vedligeholdelsesplanen ved at aktivere Database Mail.
I denne artikel vil jeg forklare, hvordan man opretter en grundlæggende vedligeholdelsesplan for at udføre databasekonsistenstjek på en brugerdatabase.
Forudsætninger for at oprette en databasevedligeholdelsesplan
For at oprette en databasevedligeholdelsesplan er følgende forudsætninger:
- Integrationstjenester skal installeres
- SQL Server Agent Service skal køre.
Integrationstjenester skal køre
Som jeg nævnte, er databasevedligeholdelsesplaner SQL Server-integrationsservicepakker, og derfor skal integrationstjenester installeres for at udføre dem.
For at bekræfte, at integrationstjenesterne er blevet installeret, skal du åbne SQL Server Configuration Manager , vælg SQL Server Services i venstre rude. Du kan se versionen af integrationstjenesten øverst på listen.
Hvis integrationstjenesterne ikke var installeret, skal du installere dem ved hjælp af SQL Server-installationsprogrammet. Se denne artikel for reference.
SQL Server Agent Service skal køre
Database Mail sender e-mails eller beskeder ved hjælp af SQL Server Agent Service. Hvis Agent Services ikke kører, kan SQL Server ikke sende e-mails. Mens agenttjenesten ikke kører, vil alle meddelelser blive sat i kø, og når agenttjenesten starter, vil alle meddelelser i kø blive leveret.
For at bekræfte status for agenttjenesten skal du udføre følgende kommando i SQL Server Management Studio.
use master go EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'
Udgangen er som følger:
Hvis SQL Server Agent Service ikke kører, skal vi starte den. For at starte SQL Server Agent Service skal du åbne tjenester, gå til Kontrolpanel , klik på Administrationsværktøjer , og klik derefter på Tjenester . Søg efter SQL Server Agent på listen over tjenester . Højreklik på SQL Server Agent og vælg Start .
Hvis du vil e-maile status for vedligeholdelsesplanen, skal du aktivere Database Mail og det kan gøres ved at ændre databaseinstansens konfigurationsparametre. Som standard er Database-mail funktionen er ikke aktiveret. Det skal aktiveres ved at ændre konfigurationsværdien for Database Mail XPs.
For at aktivere Database Mail , udfør følgende forespørgsler i rækkefølge.
USE master Go EXEC sp_configure 'show advanced options', 1 --Enable advance option Go RECONFIGURE Go EXEC sp_configure 'Database Mail XPs,' 1 --Enable database Mail option Go RECONFIGURE Go EXEC sp_configure 'show advanced options', 0 --Disabled advanced option Go RECONFIGURE Go
Demoopsætning
Til denne demo vil jeg oprette en vedligeholdelsesplan for at udføre databasekonsistenstjek på FileStream_Demo database. Vedligeholdelsesplanen udføres hver søndag kl. 12:00.
SQL-serverversion :SQL Server 2017.
Software :SQL Server Management Studio.
En databasevedligeholdelsesplan kan oprettes enten ved hjælp af Vedligeholdelsesplan-guiden eller ved at bruge vedligeholdelsesplanens designoverflade. Først vil jeg forklare, hvordan man opretter vedligeholdelsesplanen ved hjælp af Vedligeholdelsesplan-guiden .
Opret en vedligeholdelsesplan ved hjælp af Maintenance Plan Wizard
Vi kan oprette flere vedligeholdelsesplaner ved hjælp af Database Maintenance Plan Wizard . Guiden har nogle foruddefinerede vedligeholdelsesopgaver, som kan konfigureres trin for trin.
For at oprette en vedligeholdelsesplan ved hjælp af guiden skal du åbne SSMS, udvide Management , højreklik på Vedligeholdelsesplan og vælg Maintenance Plan Wizard.
Guiden Vedligeholdelsesplan dialogboksen åbnes, hvor du kan se en oversigt over opgaver, der kan udføres ved hjælp af guiden. Du kan ignorere det og klikke på Næste .
I den næste dialog angives det ønskede navn og beskrivelse af vedligeholdelsesplanen. Angiv den bruger eller konto, der udfører vedligeholdelsesplanen. Som jeg nævnte, kan du oprette flere vedligeholdelsesplaner ved hjælp af guiden; denne dialog indeholder en mulighed for at konfigurere tidsplanen. Du kan udføre alle opgaver på samme tid, eller du kan angive en enkelt tidsplan for hele planen. Angiv det ønskede navn og beskrivelse i Navn og Beskrivelse tekstbokse. SQL Server Agent kører vedligeholdelsesplanen hvis SQL Server Agent servicekonto er valgt. Vores plan udføres individuelt, så vælg Enkelt tidsplan for hele planen eller ingen tidsplan .
For at konfigurere tidsplanen skal du klikke på Tidsplan knappen ud for Skift tekstboks. Ny jobplan dialogboksen åbnes. Angiv det ønskede navn i Navn tekstboks. Vedligeholdelsesplanen udføres ugentligt, og vælg derfor Gentagende i Tidsplantype drop-down boks. Som nævnt udføres vedligeholdelsesplanen ugentligt, og vælg derfor Ugentligt i rullemenuen, og marker Søndag. Opgaven udføres kl. 12:00, indtast derfor 12:00:00 i det tilsvarende tekstfelt. Klik på OK .
Når tidsplanen er konfigureret, skal du klikke på Næste på Vælg planegenskaber dialog.
På Vælg vedligeholdelsesopgaver dialogboksen skal du vælge Kontroller databaseintegritet afkrydsningsfeltet, og klik på Næste .
Hvis der er konfigureret flere vedligeholdelsesopgaver, kan du bestille dem i Vælg rækkefølge for vedligeholdelsesopgave dialog. Kun én opgave er konfigureret, så er der ikke behov for handling her. Klik på Næste .
I den næste dialog skal du vælge navnet på den database, hvor vedligeholdelsesopgaven skal udføres. Vælg FileStream_Demo database fra Databaserne rullemenuen, og klik på Næste .
I den næste dialog skal du vælge logningsindstillingen. Du kan skrive status for udførelsen af vedligeholdelsesplanen til en tekstfil, eller du kan sende en advarsels-e-mail. Vælg den ønskede mulighed, og klik på Næste .
I den næste dialog kan du se oversigten over opgaver udført for at oprette vedligeholdelsesplanen. Gennemgå dem, og klik på Udfør .
Når planen er oprettet, vises Guiden Vedligeholdelsesplan fuldføres.
Opret en tilpasset vedligeholdelsesplan ved hjælp af Maintenance Plan Designer-overfladen
Som jeg forklarede, Guiden Vedligeholdelsesplan har nogle foruddefinerede basisopgaver, der ikke giver flere kontrol- og tilpasningsmuligheder. Hvis du f.eks. ønsker at køre et SQL-script, før du udfører en vedligeholdelsesopgave, kan det ikke udføres ved hjælp af guiden.
For at oprette en tilpasset vedligeholdelsesplan skal du åbne SQL Server Management Studio, udvide Management , højreklik på Vedligeholdelsesplaner , og vælg Ny vedligeholdelsesplan .
I dialogen skal du angive det ønskede navn på vedligeholdelsesplanen og klikke på OK .
Maintenance Plan Designer åbner. Den har to sektioner. I det første afsnit kan du angive navn og beskrivelse af vedligeholdelsesplanen. Du kan ændre egenskaberne for den eksisterende underplan eller tilføje underplanerne til de eksisterende vedligeholdelsesplaner.
Beskrivelsen af de enkelte komponenter:
Når du opretter en ny vedligeholdelsesplan, opretter SQL en standardunderplan med navnet Subplan_1 . Vi kan redigere egenskaberne for den. For at redigere standardunderplanen skal du klikke på Rediger underplanegenskaber knap. Alternativt kan du vælge underplanen fra gittervisningen og dobbeltklikke på den. Egenskaber for underplan dialogboksen åbnes. Angiv det ønskede navn på underplanen, og klik på OK .
Som jeg nævnte tidligere, vil vi oprette et vedligeholdelsesjob for at udføre databasekonsistenstjekket. Træk Kontroller Database Integrity Task fra vedligeholdelsesplanen værktøjskasse, og slip til Maintenance Plan Designer overflade.
Dobbeltklik på Check Database Integrity Task . Opgaven Kontroller databaseintegritet dialogboksen åbnes.
I dialogboksen skal du vælge SQL Server-forbindelsen fra Forbindelse drop-down boks. Du kan også oprette en ny forbindelse ved at klikke på Ny knap. Når du klikker på Database(r) rullemenuen åbnes en dialogboks med flere muligheder. Du kan udføre konsistenstjek på:
- Alle databaser
- Kun systemdatabaser (master, msdb, model, TempDB)
- Brugerdatabaser
- Specifikke databaser.
Du kan også ignorere listen over databaser, der er offline. Som nævnt ønsker vi at udføre et konsistenstjek på FileStream_Demo database. Vælg FileStream_Demo fra Disse databaser liste, og klik på OK .
Når tjek databaseintegritetsopgaven er fuldført, skal du planlægge dens udførelsestid. For at gøre det skal du klikke på Kalender knappen på værktøjslinjen.
Alternativt kan du dobbeltklikke på underplanen for at åbne egenskaber og klikke på Kalender knappen ved siden af Tidsplan tekstboks.
Ny jobplan dialogboksen åbnes. Som nævnt skal opgaven udføres hver søndag kl. 12:00, og skab derfor tidsplanen i overensstemmelse hermed. I Navn tekstboks, angiv det ønskede navn på jobbet, vælg den ønskede tidsplantype. I Frekvens skal du vælge Ugentligt i Opstår tekstboks. Jobbet udføres en gang om ugen, og vælg derfor 1 i Gentages hver tekstboks. Vælg Søndag nedenfor . I Daglig frekvens skal du angive tidspunktet i Forekommer én gang kl tekstboks. Jobbet vil blive udført kl. 12.00, og indtast derfor kl. 12.00 i det. Og til sidst skal du vælge startdatoen for jobbet og klikke på OK .
Når tidsplanen er oprettet, kan du se oversigten over tidsplanen i Tidsplan kolonne i underplanens gittervisning.
Når vedligeholdelsesplanen er oprettet, skal du gemme den. Du kan se vedligeholdelsesplanen i Vedligeholdelsesplanen mappe under Administration .
SQL Server Agent Service udfører vedligeholdelsesplanen; derfor er tidsplanen for vedligeholdelsesplanen angivet under Job vejviser. For at se det, Åbn SSMS, udvid SQL Server Agent , og udvid Jobs .
Du kan udføre vedligeholdelsesplanen manuelt. For at gøre det skal du højreklikke på Vedligeholdelsesplanen og klik på Udfør .
Vedligeholdelsesplanen afsluttes med succes. Du kan se rapporten ved at klikke på Rapporter knappen og vælg Vis rapport mulighed.
Du kan også flytte den eksisterende vedligeholdelsesopgave til en anden server ved at eksportere den til filsystemet og implementere manuelt på en anden server. Som jeg nævnte, er databasevedligeholdelsesplaner integrationsservicepakker gemt i MSDB-databasen. For at eksportere vedligeholdelsesplaner til filsystemet skal du oprette forbindelse til integrationstjenester ved hjælp af SQL Server Management Studio, udvide lagrede pakker node, og udvid derefter Vedligeholdelsesplaner , højreklik på vedligeholdelsesplanen med navnet Database Consistency Check Job og vælg Eksportér pakke .
Eksportpakke dialogboksen åbnes. I Pakkeplacering rullemenuen, vælg Filsystem . I pakkestien tekstboks, indtast det sted, hvor vedligeholdelsesplanen skal gemmes, og klik på OK.
Vedligeholdelsesplanen vil blive eksporteret til det ønskede sted.
Oversigt
I denne artikel har jeg forklaret:
- Hvad er vedligeholdelsesplaner;
- Forudsætninger for at oprette vedligeholdelsesplaner;
- Sådan opretter du tilpassede vedligeholdelsesplaner;
- Sådan opretter du en vedligeholdelsesplan ved hjælp af guiden;
- Sådan eksporteres en vedligeholdelsesplan til filsystemet.
Nyttigt værktøj:
dbForge Studio til SQL Server – kraftfuld IDE til SQL Server-administration, administration, udvikling, datarapportering og analyse.