zoukankan      html  css  js  c++  java
  • SQLSERVER 维护计划无法删除

    数据对网站运营或者企业运营是至关重要的,所以,我们在使用数据库的时候,为了保证数据的安全可靠性,都会做数据库备份,

    很显然,这个备份,我们不可能每天都去手动备份,SQLServer 数据库就可以提供数据库定时备份的任务,你可以设置按照天、周、

    月、年等不同设置不同的备份周期,这里我就不在介绍自动备份的设置了,百度教程可以找到一大波,最重要的一点就是,一定要开

    启Sqlserver 代理服务,否则自动备份就无法执行了。

    设置好了,数据库会在【管理】-【维护计划】中创建一条记录,同时,也会在【Sql server 代理】-【作业】中创建一条作业记录;如下图:

     

    然后,一段时间过去了……

    我们的自动备份失效了,或者自动备份不需要了,我们需要删除;

    正常情况下,只要在【管理】-【维护计划】中,找到不需要的维护计划,鼠标右键-删除就可以了,同时,数据库也会把【Sql server代理】中的记录也会删除;

    非正常情况下,就是鼠标右键无法删除的情况了,我们则需要通过SQL代码来删除;

    删除需要分两部分:

    一:删除【管理】中的维护计划;

    USE [msdb]
    SELECT * FROM sysmaintplan_plans	       --查看数据库中所有的维护计划
    DELETE sysmaintplan_plans WHERE name=''	        --删除具体名称的维护计划
    

    二:删除【Sql server代理】中的作业;

    USE [msdb]
    Declare @job_name varchar(100)
    SET @job_name = N'jobName'
    --注:jobName为维护计划对应的jobName
    
    --删除在计划里面的日志
    DELETE sysmaintplan_log 
    FROM sysmaintplan_subplans as subplans
    INNER JOIN sysjobs_view as syjobs on subplans.job_id = syjobs.job_id
    INNER JOIN sysmaintplan_log on subplans.subplan_id =sysmaintplan_log.subplan_id
    WHERE (syjobs.name = @job_name)
    
    --删除代理的作业
    DELETE sysjobschedules 
    FROM sysjobs_view v
    INNER JOIN sysjobschedules o on v.job_id=o.job_id 
    WHERE v.name=@job_name
    
    --删除子计划
    DELETE sysmaintplan_subplans 
    FROM sysmaintplan_subplans as subplans
    INNER JOIN sysjobs_view as syjobs ON subplans.job_id = syjobs.job_id
    WHERE (syjobs.name = @job_name)
    --删除作业
    DELETE FROM msdb.dbo.sysjobs_view WHERE name = @job_name
    

      

      

  • 相关阅读:
    Cocos2d-x 3.2:定时器的使用和原理探究(2)
    Cocos2d-x 3.2:定时器的使用和原理探究(1)
    c++初学(电梯实验加强版)
    中序线索化二叉树
    c++初学(电梯实验)
    二叉树表达式计算(2)
    输入计算表达式,将他们存在string【】中
    函数修改二维数组的值
    单件模式以及内存释放
    迷宫(栈)不能求最短路径
  • 原文地址:https://www.cnblogs.com/Rawls/p/9931350.html
Copyright © 2011-2022 走看看