Plan de întreținere a bazei de date

Acest subiect descrie cum să implementați un Plan de Întreținere a Bazei de Date (DBMP) folosind comenzi T-SQL. Un DBMP oferă mai multă funcționalitate decât o simplă copie de siguranță deoarece verifică integritatea bazei de date, repară erorile minore și optimizează performanța bazei de date.
Crearea unui DBMP
Folosind interogarea de mai jos, trebuie doar să modificați variabilele globale, iar scriptul este gata de rulare.
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)
-- Declară variabile globale
set @sDBName = 'BigDB' -- Numele bazei de date / modifică după necesitate
set @sPlanName = 'Plan de întreținere BigDB' -- Numele planului de întreținere / modifică după necesitate
set @sLogDir = 'C:\MSSQL7\LOG' -- Calea către jurnalul serverului / modifică după necesitate
set @sBackupDir = 'C:\MSSQL7\BACKUP' -- Calea către locația de backup / modifică după necesitate
set @iStartDate = 20020425 -- Data când planul de întreținere devine activ (YYYYMMDD)
set @iBackupTime = 20000 -- Ora de începere a backup-urilor (2:00 AM)
set @iOptiTime = 10000 -- Ora de începere a optimizării (1:00 AM)
-- Obține ID-ul planului și inserează-l în tabelul PLANS
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)
-- Pornește joburile
--!! select @PlanID = N'1403015E-AAC4-4481-81EF-84BCAF0CBC91'
set @sJobName = 'Job Backup DB pentru Planul de Întreținere DB '''+@sPlanName+''''
...
Vizualizarea DBMP-urilor
Pentru a afișa o listă a planurilor de întreținere active, rulați următoarea interogare:
select *
from msdb.dbo.sysdbmaintplans