Met behulp van database-onderhoudsplannen kunnen we basisactiviteiten voor databasebeheer automatiseren. Onderhoudsplannen zijn SQL Server-integratieservicepakketten die volgens een geconfigureerd schema worden uitgevoerd door een SQL Server Agent-taak. Met behulp van onderhoudsplannen kunnen we de volgende taken automatiseren.
- Een database verkleinen
- Maak een back-up van een database
- Melding van operator
- Databasestatistieken bijwerken
- Voer database-integriteitscontrole uit
- SQL Server Agent-taken uitvoeren
- T-SQL-script uitvoeren
- Indexen reorganiseren of opnieuw opbouwen
Bovendien kunnen we een waarschuwing instellen om een DBA op de hoogte te stellen van de status van de uitvoering van het onderhoudsplan door de Database Mail in te schakelen.
In dit artikel ga ik uitleggen hoe u een basisonderhoudsplan maakt om de consistentie van de database te controleren op een gebruikersdatabase.
Vereisten om een database-onderhoudsplan te maken
Om een database-onderhoudsplan te maken, zijn de volgende vereisten:
- Integratieservices moeten zijn geïnstalleerd
- SQL Server Agent Service moet actief zijn.
Integratieservices moeten actief zijn
Zoals ik al zei, zijn database-onderhoudsplannen SQL Server-integratieservicepakketten, dus om ze uit te voeren, moeten integratieservices worden geïnstalleerd.
Om te controleren of de integratieservices zijn geïnstalleerd, opent u SQL Server Configuration Manager , selecteer SQL Server Services in het linkerdeelvenster. U kunt de versie van de integratieservice bovenaan de lijst bekijken.
Als de integratieservices niet zijn geïnstalleerd, installeer ze dan met behulp van het SQL Server-installatieprogramma. Zie dit artikel ter referentie.
SQL Server Agent Service moet actief zijn
Database Mail verzendt e-mails of berichten met behulp van de SQL Server Agent Service. Als de Agent Services niet actief zijn, kan SQL Server geen e-mails verzenden. Zolang de Agent-service niet actief is, worden alle berichten in de wachtrij geplaatst en wanneer de Agent-service start, worden alle berichten in de wachtrij afgeleverd.
Voer de volgende opdracht uit in SQL Server Management Studio om de status van de Agent-service te controleren.
use master go EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'
De uitvoer is als volgt:
Als de SQL Server Agent-service niet actief is, moeten we deze starten. Om de SQL Server Agent Service te starten, open services, ga naar Configuratiescherm , klik opBeheerhulpprogramma's en klik vervolgens opServices . Zoek in de lijst met services naar SQL Server Agent . Klik met de rechtermuisknop op SQL Server Agent en selecteer Start .
Als u de status van het onderhoudsplan wilt e-mailen, moet u de Database Mail . inschakelen en dit kan worden gedaan door de configuratieparameters van de database-instantie te wijzigen. Standaard is de Database Mail functie is niet ingeschakeld. Het moet worden ingeschakeld door de configuratiewaarde van Database Mail XP's te wijzigen.
Database Mail inschakelen , voer de volgende zoekopdrachten in volgorde uit.
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
Demo instellen
Voor deze demo zal ik een onderhoudsplan maken om de consistentie van de database te controleren op de FileStream_Demo databank. Het onderhoudsplan wordt elke zondag om 12.00 uur uitgevoerd.
SQL Server-versie :SQL Server 2017.
Software :SQL Server Management Studio.
Een database-onderhoudsplan kan worden gemaakt met behulp van de Maintenance Plan Wizard of het gebruik van het ontwerpoppervlak van het onderhoudsplan. Allereerst zal ik uitleggen hoe u het onderhoudsplan maakt met behulp van de Wizard Onderhoudsplan .
Maak een onderhoudsplan met de wizard Onderhoudsplan
We kunnen meerdere onderhoudsplannen maken met behulp van de Wizard Database Onderhoudsplan . De wizard heeft een aantal vooraf gedefinieerde onderhoudstaken die stap voor stap kunnen worden geconfigureerd.
Om een onderhoudsplan te maken met behulp van de wizard, opent u SSMS, vouwt u Beheer uit , klik met de rechtermuisknop op Onderhoudsplan en selecteer Wizard Onderhoudsplan.
De wizard Onderhoudsplan dialoogvenster wordt geopend, waar u een overzicht kunt zien van taken die met de wizard kunnen worden uitgevoerd. Je kunt het negeren en op Volgende klikken .
Geef in het volgende dialoogvenster de gewenste naam en beschrijving van het onderhoudsplan op. Geef de gebruiker of het account op die het onderhoudsplan uitvoert. Zoals ik al zei, kunt u meerdere onderhoudsplannen maken met behulp van de wizard; dit dialoogvenster bevat een optie om het schema te configureren. U kunt alle taken tegelijkertijd uitvoeren of u kunt één planning voor het hele plan specificeren. Geef de gewenste naam en beschrijving op in de Naam en Beschrijving tekstvakken. SQL Server Agent voert het onderhoudsplan uit als SQL Server Agent-serviceaccount is geselecteerd. Ons plan wordt individueel uitgevoerd, dus selecteer Enkel schema voor het hele plan of geen schema .
Om het schema te configureren, klikt u op de Planning knop naast de Wijzigen tekstvak. Het Nieuwe takenschema dialoogvenster wordt geopend. Geef de gewenste naam op in de Naam tekstvak. Het onderhoudsplan wordt wekelijks uitgevoerd, dus selecteer Terugkerend in het Schematype vervolgkeuzelijst. Zoals vermeld, wordt het onderhoudsplan wekelijks uitgevoerd, dus selecteer Wekelijks in de vervolgkeuzelijst en vink Zondag . aan De taak wordt uitgevoerd om 12:00 uur, voer daarom 12:00:00 uur in in het bijbehorende tekstvak. Klik op OK .
Nadat het schema is geconfigureerd, klikt u op Volgende op de Planeigenschappen selecteren dialoog.
Op de Onderhoudstaken selecteren dialoogvenster, selecteer de Controleer database-integriteit selectievakje en klik op Volgende .
Als er meerdere onderhoudstaken zijn geconfigureerd, kunt u deze bestellen in de Onderhoudstaakvolgorde selecteren dialoog. Er is slechts één taak geconfigureerd, dan is hier geen actie nodig. Klik op Volgende .
Selecteer in het volgende dialoogvenster de naam van de database waar de onderhoudstaak zal worden uitgevoerd. Selecteer de FileStream_Demo database uit de Databases vervolgkeuzelijst en klik op Volgende .
Selecteer in het volgende dialoogvenster de logboekoptie. U kunt de status van uitvoering van het onderhoudsplan naar een tekstbestand schrijven, of u kunt een alertmail sturen. Selecteer de gewenste optie en klik op Volgende .
In het volgende dialoogvenster kunt u het overzicht bekijken van de taken die zijn uitgevoerd om het onderhoudsplan te maken. Bekijk ze en klik op Voltooien .
Nadat het plan is gemaakt, wordt de wizard Onderhoudsplan voltooit succesvol.
Maak een aangepast onderhoudsplan met behulp van het Maintenance Plan Designer-oppervlak
Zoals ik heb uitgelegd, is de wizard Onderhoudsplan heeft een aantal vooraf gedefinieerde basistaken die niet meer controle en aanpassingsopties bieden. Als u bijvoorbeeld een SQL-script wilt uitvoeren voordat u een onderhoudstaak uitvoert, kan dit niet worden uitgevoerd met de wizard.
Als u een aangepast onderhoudsplan wilt maken, opent u SQL Server Management Studio, vouwt u Beheer uit , klik met de rechtermuisknop op Onderhoudsplannen en selecteer Nieuw onderhoudsplan .
Geef in het dialoogvenster de gewenste naam van het onderhoudsplan op en klik op OK .
De Onderhoudsplan-ontwerper opent. Het heeft twee secties. In het eerste gedeelte kunt u de naam en beschrijving van het onderhoudsplan opgeven. U kunt de eigenschappen van het bestaande subplan wijzigen of de subplannen toevoegen aan de bestaande onderhoudsplannen.
De beschrijving van de afzonderlijke componenten:
Wanneer u een nieuw onderhoudsplan maakt, maakt SQL een standaardsubplan met de naam Subplan_1 . We kunnen de eigenschappen ervan bewerken. Om het standaard subplan te bewerken, klikt u op Eigenschappen subplan bewerken knop. U kunt ook het subplan selecteren in de rasterweergave en erop dubbelklikken. De Eigenschappen subplan dialoogvenster wordt geopend. Geef de gewenste naam van het deelplan op en klik op OK .
Zoals ik eerder al zei, zullen we een onderhoudstaak maken om de consistentiecontrole van de database uit te voeren. Sleep Taak database-integriteit controleren uit het Onderhoudsplan toolbox en ga naar de Onderhoudsplan Designer oppervlak.
Dubbelklik op Taak database-integriteit controleren . De taak Database-integriteit controleren dialoogvenster wordt geopend.
Selecteer in het dialoogvenster de SQL Server-verbinding uit de Verbinding vervolgkeuzelijst. U kunt ook een nieuwe verbinding maken door op de knop Nieuw . te klikken knop. Wanneer u op de Database(s) . klikt vervolgkeuzelijst, wordt een dialoogvenster met meerdere opties geopend. U kunt consistentiecontroles uitvoeren op:
- Alle databases
- Alleen systeemdatabases (master, msdb, model, TempDB)
- Gebruikersdatabases
- Specifieke databases.
U kunt de lijst met databases die offline zijn ook negeren. Zoals vermeld, willen we een consistentiecontrole uitvoeren op de FileStream_Demo databank. Selecteer FileStream_Demo uit de Deze databases lijst en klik op OK .
Zodra de taak voor het controleren van de database-integriteit is voltooid, plant u de uitvoeringstijd ervan. Klik hiervoor op de Agenda knop in de werkbalk.
U kunt ook dubbelklikken op het subplan om eigenschappen te openen en op de Kalender . te klikken knop naast de Planning tekstvak.
Het Nieuwe takenschema dialoogvenster wordt geopend. Zoals vermeld, moet de taak elke zondag om 12.00 uur worden uitgevoerd, dus maak het schema dienovereenkomstig. In de Naam tekstvak, geef de gewenste naam van de taak op, selecteer het gewenste planningstype. In de Frequentie sectie, selecteer Wekelijks in de Gebeurtenis tekstvak. De taak wordt eenmaal per week uitgevoerd, dus selecteer 1 in de Recurs elke tekstvak. Selecteer hieronder Zondag . In de Dagelijkse frequentie sectie, specificeer de tijd in de Komt een keer voor om tekstvak. De taak wordt uitgevoerd om 12:00 uur, voer daarom 12:00:00 uur in. Selecteer ten slotte de startdatum van de taak en klik op OK .
Nadat de planning is gemaakt, kunt u de samenvatting van de planning zien in de Planning kolom van de subplan-rasterweergave.
Nadat het onderhoudsplan is gemaakt, slaat u het op. U kunt het onderhoudsplan bekijken in het Onderhoudsplan directory onder Management .
De SQL Server Agent Service voert het onderhoudsplan uit; vandaar dat het schema van het onderhoudsplan wordt vermeld onder de Job map. Om het te bekijken, opent u SSMS, vouwt u SQL Server Agent uit en vouw Vacatures . uit .
U kunt het onderhoudsplan handmatig uitvoeren. Klik hiervoor met de rechtermuisknop op het Onderhoudsplan en klik op Uitvoeren .
Het onderhoudsplan is succesvol afgerond. U kunt het rapport bekijken door op de Rapport . te klikken en selecteer Rapport bekijken optie.
U kunt de bestaande onderhoudstaak ook naar een andere server verplaatsen door deze naar het bestandssysteem te exporteren en handmatig op een andere server te implementeren. Zoals ik al zei, zijn onderhoudsplannen voor databases integratieservicepakketten die zijn opgeslagen in de MSDB-database. Om onderhoudsplannen naar het bestandssysteem te exporteren, maakt u verbinding met integratieservices met behulp van SQL Server Management Studio, vouwt u de Opgeslagen pakketten uit knooppunt en vouw vervolgens Onderhoudsplannen . uit , klik met de rechtermuisknop op het onderhoudsplan met de naam Databaseconsistentiecontroletaak en selecteer Pakket exporteren .
Het Exportpakket dialoogvenster wordt geopend. In de Pakketlocatie vervolgkeuzelijst, selecteer Bestandssysteem . In het Pakketpad tekstvak, voer de locatie in waar het onderhoudsplan moet worden opgeslagen en klik op OK.
Het onderhoudsplan wordt geëxporteerd naar de gewenste locatie.
Samenvatting
In dit artikel heb ik uitgelegd:
- Wat onderhoudsplannen zijn;
- Vereisten om onderhoudsplannen te maken;
- Hoe aangepaste onderhoudsplannen te maken;
- Hoe maak je een onderhoudsplan aan met behulp van de wizard;
- Hoe een onderhoudsplan naar het bestandssysteem te exporteren.
Handig hulpmiddel:
dbForge Studio voor SQL Server – krachtige IDE voor beheer, administratie, ontwikkeling, gegevensrapportage en analyse van SQL Server.