DB-Wartungsplan

Dieses Thema beschreibt, wie man einen Datenbank-Wartungsplan (DBMP) mit T-SQL-Befehlen implementiert. Ein DBMP bietet mehr Funktionalität als eine einfache Sicherung, da er die Datenbankintegrität überprüft, kleinere Fehler repariert und die Datenbankleistung optimiert.
Erstellen eines DBMP
Mit der untenstehenden Abfrage müssen Sie nur die globalen Variablen anpassen, und das Skript ist einsatzbereit.
use master
begin transaction
declare
@sPlanID nchar(36),
@sPlanName varchar(100),
@sLogDir varchar(100),
@sBackupDir varchar(100),
@sJobName varchar(255),
@sParam varchar(1000),
@sDBName varchar(100),
@iStartDate int,
@iBackupTime int,
@iOptiTime int,
@ReturnCode INT,
@JobID0 nchar(36),
@JobID1 nchar(36),
@JobID2 nchar(36),
@JobID3 nchar(36),
@JobID4 nchar(36),
@JobID5 nchar(36),
@JobID6 nchar(36),
@JobID7 nchar(36),
@JobIDD nchar(36)
-- Globale Variablen deklarieren
set @sDBName = 'BigDB' -- Datenbankname / bei Bedarf ändern
set @sPlanName = 'BigDB Wartungsplan' -- Name des Wartungsplans / bei Bedarf ändern
set @sLogDir = 'C:\MSSQL7\LOG' -- Pfad zum Server-Log / bei Bedarf ändern
set @sBackupDir = 'C:\MSSQL7\BACKUP' -- Pfad zum Sicherungsort / bei Bedarf ändern
set @iStartDate = 20020425 -- Datum, an dem der Wartungsplan aktiv wird (JJJJMMTT)
set @iBackupTime = 20000 -- Zeit zum Starten der Sicherungen (2:00 Uhr)
set @iOptiTime = 10000 -- Zeit zum Starten der Optimierung (1:00 Uhr)
-- Plan-ID abrufen und in die Tabelle PLANS einfügen
select @sPlanID = NEWID()
insert msdb.dbo.sysdbmaintplans (plan_id, plan_name, max_history_rows, remote_history_server, max_remote_history_rows)
values (@sPlanID, @sPlanName, 1000, '', 0)
-- Jobs starten
--!! select @PlanID = N'1403015E-AAC4-4481-81EF-84BCAF0CBC91'
set @sJobName = 'DB Backup Job für DB-Wartungsplan '''+@sPlanName+''''
...
DBMPs anzeigen
Um eine Liste der aktiven Wartungspläne anzuzeigen, führen Sie die folgende Abfrage aus:
select *
from msdb.dbo.sysdbmaintplans