PANTHEON™ Help

 Категории
 PANTHEON Help - Welcome
[Collapse]PANTHEON
 [Collapse]PANTHEON упатства
  [Expand]Guide for PANTHEON
  [Expand]Ръководство за PANTHEON Търговия
  [Expand]Ръководство за PANTHEON Vet
  [Expand]Ръководство за PANTHEON Фермерство
 [Collapse]PANTHEON потребителски ръководства
  [Collapse]Ръководство за потребителя за PANTHEON
   [Collapse]Започване
     Речник на термините
     Първи стъпки с PANTHEON
    [Expand]Използване на PANTHEON в Tecta, фикционална компания
    [Expand]Инструкции за осигуряване на съответствието на PANTHEON с SAS
    [Expand]Инсталация на ПАНТЕОН
    [Collapse]ПАНТЕОН Система
     [Expand]Данни на системата PANTHEON
     [Collapse]MS SQL Server
       Изтеглете и инсталирайте MS SQL Server
       Актуализиране на MS SQL Server до 2019 или 2022
       MS Management Studio - Изтеглете и инсталирайте
       Възстановяване на база данни на SQL сървър
       Добавяне на потребители на ниво сървър (AddUser_PAX)
       Инсталиране на SQL за външен достъп
       Инсталиране на PANTHEON клиенти
       Настройки на MS SQL сървър за по-голямо Pantheon™ око
       Смяна на реда на сортиране в SQL
      [Expand]MS SQL Server Сигурност
      [Expand]Полезни SQL заявки
       SQLExecute
      [Collapse]Работи в SQL Server
       [Expand]Обнови наличността
        Напомняния по имейл за просрочени вземания
        План за поддръжка на бази данни
     [Expand]Утилити на Microsoft Windows
     [Expand]Политика за сигурност
     [Expand]Администриране на бази данни
    [Expand]Основи на ПАНТЕОН
    [Expand]ПАНТЕОН Помощ
    [Expand]Материали и движение на стоки
    [Expand]Присвояване на идентификатори
    [Expand]Често задавани въпроси за Пантеон (Ч.З.В.)
    [Expand]Архив
   [Expand]Ръководство за потребителя за електронен бизнес
   [Expand]Настройки
   [Expand]Поръчки
   [Expand]Стоки
   [Expand]Производство
   [Expand]Услуга
   [Expand]Помощ
   [Expand]Персонал
   [Expand]Финансови
   [Expand]Анализи
  [Expand]Ръководство за потребителя за PANTHEON Retail
  [Expand]Ръководство за потребителя за PANTHEON Vet
  [Expand]Ръководство за потребителя за PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]PANTHEON Web Guides
  [Expand]Ръководство за PANTHEON Web Light
  [Expand]Ръководство за PANTHEON Уеб Терминал
  [Expand]Ръководство за PANTHEON Web Legal
  [Expand]Архив на стари продукти
 [Collapse]PANTHEON Web User Manuals
  [Expand]Започване на PANTHEON Web
  [Expand]User Manual for PANTHEON Web Light
   Ръководство за потребителя за PANTHEON Web Terminal
  [Expand]Ръководство за потребителя за PANTHEON Web Legal
  [Expand]Архив на стари продукти
[Collapse]PANTHEON Гранула
 [Collapse]Ръководство за PANTHEON Гранули
  [Expand]Гранула за служители
  [Expand]Пътни заповеди Гранула
  [Expand]Гранула за документи и задачи
  [Expand]Гранула Табло
  [Expand]Гранула за B2B поръчки
  [Expand]Гранула за обслужване на клиенти
  [Expand]Инвентаризация на дълготрайни активи
  [Expand]Гранула за складови наличности
 [Collapse]PANTHEON Granules
   Започване
   Using PANTHEON Granules at Tecta, a fictional company
  [Expand]PANTHEON Granules and activation
  [Expand]PANTHEON Granule Work records
  [Expand]PANTHEON Granule Travel orders
  [Expand]PANTHEON Granule Documents and Tasks
  [Expand]PANTHEON Granule B2B orders
  [Expand]PANTHEON Granule Dashboard
   PANTHEON Granules - FAQ
  [Expand]Полеви сервизен гранул
  [Expand]Инвентаризация на дълготрайни активи
  [Expand]Инвентаризация на склада Гранула
   Архив
[Expand]Потребителски сайт

Load Time: 562,511 ms
"
  2842 | 3240 | 444948 | AI translated
Label

План за поддръжка на БД

План за поддръжка на БД

План за поддръжка на БД

Тази тема описва как да се реализира план за поддръжка на база данни (DBMP) с команди T-SQL. DBMP е по-добър от простото архивиране, тъй като проверява целостта на базата данни, коригира малки грешки и оптимизира производителността.

Създаване на DBMP

046321.gif С тази заявка просто трябва да промените глобалните променливи и е готова за изпълнение.
използвайте master

започнете транзакция

декларирайте
  @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) 


  -- декларирайте глобални променливи
  задайте @sDBName = 'BigDB'  -- име на базата данни / променете при необходимост
  задайте @sPlanName = 'План за поддръжка на BigDB'  -- име на плана за поддръжка  / променете при необходимост
  задайте @sLogDir = 'C:\MSSQL7\LOG'  -- път до лог файла на сървъра / променете при необходимост
  задайте @sBackupDir = 'C:\MSSQL7\BACKUP'  -- път до архива / променете при необходимост
  задайте @iStartDate = 20020425       -- дата, когато планът за поддръжка започва да се прилага (YYYYMMDD)
  задайте @iBackupTime = 20000         -- време за започване на архивиране (2am)
  задайте @iOptiTime = 10000           -- време за започване на оптимизация (1am)

  -- получаване на ID на плана и вмъкване в таблицата PLANS
  изберете  @sPlanID = NEWID()                             
  вмъкнете  msdb.dbo.sysdbmaintplans (plan_id, plan_name, max_history_rows, remote_history_server, max_remote_history_rows) 
    стойности (@sPlanID, @sPlanName, 1000, '', 0)              
  -- стартиране на задачи
--!! изберете  @PlanID = N'1403015E-AAC4-4481-81EF-84BCAF0CBC91'   

  задайте @sJobName = 'Задача за архивиране на БД за план за поддръжка на БД '''+@sPlanName+''''
  exec @ReturnCode = msdb.dbo.sp_add_job 
     @job_id = @JobID4 output, 
     @job_name = @sJobName, 
     @enabled = 1, 
     @category_id = 3
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sParam = 'exec master.dbo.xp_sqlmaint N''-PlanID '+@sPlanID+' -Rpt "'+@sLogDir+'\DBMP (Backup) '+@sDBName+'.txt" -DelTxtRpt 1WEEKS -WriteHistory  -VrfyBackup -BkUpOnlyifClean -CkDBRepair  -BkUpMedia DISK -BkUpDB  -UseDefDir  -DelBkUps 1 -BkExt ""'''
  exec @ReturnCode = msdb.dbo.sp_add_jobstep 
     @job_id = @JobID4, 
     @step_id = 1, 
     @step_name = N'Стъпка 1', 
     @subsystem = N'TSQL', 
     @on_success_action = 1, 
     @on_fail_action = 2, 
     @command = @sParam, 
     @flags = 4
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobschedule 
     @job_id = @JobID4, 
     @name = N'График 1', 
     @enabled = 1, 
     @freq_type = 4, 
     @active_start_date = @iStartDate, 
     @active_start_time = @iBackupTime, 
     @freq_interval = 1, 
     @freq_subday_type = 1, 
     @freq_subday_interval = 0, 
     @freq_relative_interval = 0, 
     @freq_recurrence_factor = 1, 
     @active_end_date = 99991231, 
     @active_end_time = 235959
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobserver 
     @job_id = @JobID4, 
     @server_name = N'(local)'
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sJobName = 'Задача за архивиране на транзакционен лог за план за поддръжка на БД '''+@sPlanName+''''
  exec @ReturnCode = msdb.dbo.sp_add_job 
     @job_id = @JobID6 output, 
     @job_name = @sJobName, 
     @enabled = 1, 
     @category_id = 3
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sParam = 'exec master.dbo.xp_sqlmaint N''-PlanID '+@sPlanID+' -Rpt "'+@sLogDir+'\DBMP (Log Backup) '+@sDBName+'.txt" -DelTxtRpt 1WEEKS -WriteHistory  -VrfyBackup -BkUpOnlyifClean -CkDBRepair  -BkUpMedia DISK -BkUpLog  -UseDefDir  -DelBkUps 1 -BkExt ""'''
  exec @ReturnCode = msdb.dbo.sp_add_jobstep 
     @job_id = @JobID6, 
     @step_id = 1, 
     @step_name = N'Стъпка 1', 
     @subsystem = N'TSQL', 
     @on_success_action = 1, 
     @on_fail_action = 2, 
     @command = @sParam, 
     @flags = 4
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobschedule 
     @job_id = @JobID6, 
     @name = N'График 1', 
     @enabled = 1, 
     @freq_type = 8, 
     @active_start_date = 0, 
     @active_start_time = 0, 
     @freq_interval = 126, 
     @freq_subday_type = 1, 
     @freq_subday_interval = 0, 
     @freq_relative_interval = 0, 
     @freq_recurrence_factor = 1, 
     @active_end_date = 99991231, 
     @active_end_time = 235959
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobserver 
    @job_id = @JobID6, 
    @server_name = N'(local)'
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sJobName = 'Задача за проверки на целостта за план за поддръжка на БД '''+@sPlanName+''''
  exec @ReturnCode = msdb.dbo.sp_add_job 
    @job_id = @JobID2 output, 
    @job_name = @sJobName, 
    @enabled = 1, 
    @category_id = 3
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sParam = 'exec master.dbo.xp_sqlmaint N''-PlanID '+@sPlanID+' -Rpt "'+@sLogDir+'\DBMP (Integrity) '+@sDBName+'.txt" -DelTxtRpt 1WEEKS -WriteHistory  -CkDBRepair  '''
  exec @ReturnCode = msdb.dbo.sp_add_jobstep 
    @job_id = @JobID2, 
    @step_id = 1, 
    @step_name = N'Стъпка 1', 
    @subsystem = N'TSQL', 
    @on_success_action = 1, 
    @on_fail_action = 2, 
    @command = @sParam, 
    @flags = 4
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 
  exec @ReturnCode = msdb.dbo.sp_add_jobschedule 
    @job_id = @JobID2, 
    @name = N'График 1', 
    @enabled = 1, 
    @freq_type = 4, 
    @active_start_date = @iStartDate, 
    @active_start_time = 0, 
    @freq_interval = 1, 
    @freq_subday_type = 1, 
    @freq_subday_interval = 0, 
    @freq_relative_interval = 0, 
    @freq_recurrence_factor = 1, 
    @active_end_date = 99991231, 
    @active_end_time = 235959
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 
  exec @ReturnCode = msdb.dbo.sp_add_jobserver 
    @job_id = @JobID2, 
    @server_name = N'(local)'
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 
 
  задайте @sJobName = 'Задача за оптимизации за план за поддръжка на БД '''+@sPlanName+''''
  exec @ReturnCode = msdb.dbo.sp_add_job 
    @job_id = @JobID0 output, 
    @job_name = @sJobName, 
    @enabled = 1, 
    @category_id = 3
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  задайте @sParam = 'exec master.dbo.xp_sqlmaint N''-PlanID '+@sPlanID+' -Rpt "'+@sLogDir+'\DBMP (Optimisations) '+@sDBName+'.txt" -DelTxtRpt 1WEEKS -WriteHistory  -RebldIdx 10 -RmUnusedSpace 50 10 '''
  exec @ReturnCode = msdb.dbo.sp_add_jobstep 
    @job_id = @JobID0, 
    @step_id = 1, 
    @step_name = N'Стъпка 1', 
    @subsystem = N'TSQL', 
    @on_success_action = 1, 
    @on_fail_action = 2, 
    @command = @sParam, 
    @flags = 4
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobschedule 
    @job_id = @JobID0, 
    @name = N'График 1', 
    @enabled = 1, 
    @freq_type = 4, 
    @active_start_date = @iStartDate,
    @active_start_time = @iOptiTime, 
    @freq_interval = 1, 
    @freq_subday_type = 1, 
    @freq_subday_interval = 0, 
    @freq_relative_interval = 0, 
    @freq_recurrence_factor = 1, 
    @active_end_date = 99991231, 
    @active_end_time = 235959
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  exec @ReturnCode = msdb.dbo.sp_add_jobserver 
    @job_id = @JobID0, 
    @server_name = N'(local)'
  ако (@@ERROR <> 0 ИЛИ @ReturnCode <> 0) отидете QuitWithRollback 

  ако (изберете Count(*) 
       от msdb.dbo.sysdbmaintplan_databases 
       където plan_id = @sPlanID И ИМЕ_НА_БАЗАТА = @sDBName) < 1 
     вмъкнете msdb.dbo.sysdbmaintplan_databases (plan_id, database_name) стойности (@sPlanID, @sDBName)
  изтрийте msdb.dbo.sysdbmaintplan_jobs където plan_id = @sPlanID
  вмъкнете msdb.dbo.sysdbmaintplan_jobs 
    стойности (@sPlanID, @JobID0)
  вмъкнете msdb.dbo.sysdbmaintplan_jobs 
    стойности (@sPlanID,  @JobID2)
  вмъкнете msdb.dbo.sysdbmaintplan_jobs 
    стойности (@sPlanID,  @JobID4)
  вмъкнете msdb.dbo.sysdbmaintplan_jobs 
    стойности (@sPlanID,  @JobID6)

потвърдете транзакцията
отидете EndSave 
QuitWithRollback: ако (@@TRANCOUNT > 0) отменете транзакцията
EndSave: 

Преглед на DBMPs

За да видите списък на активните планове за поддръжка, изпълнете следната заявка:

изберете  *
от    msdb.dbo.sysdbmaintplans            

 


 

Оценете темата
Темата беше ли ви полезна?
Коментар
Вашият коментар ще бъде видим и във форума!