План за одржување на база на податоци

Оваа тема опишува како да се имплементира План за одржување на база на податоци (DBMP) користејќи T-SQL команди. DBMP обезбедува повеќе функционалности од едноставно резервно копирање бидејќи го проверува интегритетот на базата на податоци, ги поправува помалите грешки и го оптимизира перформансот на базата на податоци.
Креирање на DBMP
Користејќи го следниот упит, треба само да ги измените глобалните променливи, и скриптата е подготвена за извршување.
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)
-- Декларирај глобални променливи
set @sDBName = 'BigDB' -- Име на базата на податоци / промени по потреба
set @sPlanName = 'BigDB Maintenance Plan' -- Име на планот за одржување / промени по потреба
set @sLogDir = 'C:\MSSQL7\LOG' -- Патека до логот на серверот / промени по потреба
set @sBackupDir = 'C:\MSSQL7\BACKUP' -- Патека до локацијата за резервни копии / промени по потреба
set @iStartDate = 20020425 -- Датум кога планот за одржување станува активен (ГГГГММДД)
set @iBackupTime = 20000 -- Време за почеток на резервните копии (2:00 часот наутро)
set @iOptiTime = 10000 -- Време за почеток на оптимизацијата (1:00 часот наутро)
-- Земи ID на планот и внеси го во табелата 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)
-- Стартувај задачи
--!! select @PlanID = N'1403015E-AAC4-4481-81EF-84BCAF0CBC91'
set @sJobName = 'DB Backup Job for DB Maintenance Plan '''+@sPlanName+''''
...
Прикажување на DBMP
За да прикажете листа на активни планови за одржување, извршете го следниот упит:
select *
from msdb.dbo.sysdbmaintplans