SQL Server的维护计划Maintenance Plan是一个非常实用的维护工具,可以完成大多数的数据库维护任务,通过对这些功能的封装,可以省去很多的代码编写时间。网络上完整介绍的不是很多,特此补上一篇。

数据库的备份是日常操作非常重要的一个环节,备份的方法也很多,其中最简单的方法就是通过Management Studio的图形界面,这种方法对于即时性的备份需求是最快的。

也可以通过SQL语句,直接通过语句相对来说对于自定义的自动化备份更灵活:

BACKUP DATABASE mydb to DISK='D:\Backup\mydb

但有时备份操作往往在具体的要求和自动化的要求上会更高一些,尤其是在数据仓库系统,比如对一个生产系统的备份通常是这样要求的:

- 每周六一个全量备份

- 工作日时间每天一个增量备份

- 所有的备份在一个月之后自动删除

如果你是一个很厉害的Coder,通过SQL编程,或者.net c# code,以及powershell等等方式来实现这个需求虽说不难,但也不简单。而实际上SQLServer早就为我们考虑好了这样的需求,那就是通过SQLServer自带的Maintenance Plan。

可以在SQL Server Management Studio的Management下找到Maintenance Plans。

首先右键这个文件夹新建一个维护计划。

给维护计划取个名字。

维护计划界面。对于上面我们提到的需求,在维护计划里对应的就是三个Subplan。系统会默认创建一个空的Subplan。

Subplan里都支持哪些功能呢?让我们点击View菜单下的Toolbox。

可以看到在维护计划下支持的任务类型(熟悉SSIS的朋友对这个或许再熟悉不过)。

将Back Up Database Task拖拽到右侧。

双击设计界面的Back Up Database Task,弹出备份设计界面,首先指定要备份哪一个数据库。这里支持多选,所以在维护整台服务器的时候很方便。这里我们只演示备份AdventureWorksDW2012数据库。

备份类型选择Full完整。然后依次指定备份路径等信息。

完整备份创建完毕后,再创建一个Subplan,来完成增量备份的设置。

点击Add Subplan后,给子计划取个名字。

数据库还是选择AdventureWorksDW2012,备份类型选择"差异"。其它设置跟以前相同,当然如果考虑将差异备份和完整备份分开的话,可以考虑重新设置备份路径。

完整备份和差异备份的设置完成了,接下来需要设置的是清空历史备份。这里再添加一个Subplan,将Maintenance Cleanup Task拖拽到设计界面中。

设置要清理的文件夹,指向刚才我们设置的备份路径,然后在底部设置多久的文件需要被清理掉,这里选择1 Month。

三个步骤设置完毕了,以此为全量备份,差异备份以及备份清理,问了维护方便,将这三个Subplan重新命名:

接下来设置每个步骤的运行周期。按照先前的需求定义,周六一个完整备份,平日一个差异备份,然后自动清理一个月前的备份。

首先点击第一个Subplan的Schedule按钮,按照如下设置全量备份的周期设置。

然后以此设置差异备份的周期。

最后文件清理的周期。

设置好之后,保存,维护计划就设置完毕了。

而实际上,SQL Server是根据刚才的操作,自动生成了相应的SSIS Package和Job,在SQL Server Agent的Jobs下可以看到生成的相应的三个Job。

点开每个Job,可以看到Job步骤下是在SSIS下生成的对应的Package。

至此,通过维护计划来实现复杂的备份任务介绍至此。也许这个备份介绍的还不是很全面,但基本足以满足大多数的需求场景,尤其是对数据仓库的备份,而且再复杂的备份任务基本也都可以通过维护计划来实现。

SQL Server Database 维护计划创建完整的备份策略的更多相关文章

  1. SQL Server Database 维护计划创建一个完整的备份策略

     SQL Server维护计划Maintenance Plan这是一个非常有用的维护工具,能够完成大部分的数据库维护任务,通过这些功能包.您可以省略大量的编码时间. 介绍的不是非常多,特此补上一篇 ...

  2. SQL Server 2008如何创建定期自动备份任务

    我们知道,利用SQL Server 2008数据库可以实现数据库的定期自动备份.方法是用SQL SERVER 2008自带的维护计划创建一个计划对数据库进行备份,下面我们将SQL SERVER 200 ...

  3. SQL Server 2008 维护计划实现数据库备份

    SQL Server 2008 维护计划实现数据库备份(最佳实践) 2013-08-29 09:08 by 听风吹雨, 173 阅读, 2 评论, 收藏, 编辑 一.背景 之前写过一篇关于备份的文章: ...

  4. 利用SQL Server 2008 R2创建自动备份计划

    本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...

  5. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...

  6. 四、利用SQL Server 2008 R2创建自动备份计划

    (转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...

  7. Visual Studio 2012创建SQL Server Database Project提示失败解决方法

    新建一个SQL Server Database Project,提示: Unable to open Database project This version of SQL Server Data ...

  8. 关于SQL Server 2005 的自动远程数据库备份

    原文:(原创)关于SQL Server 2005 的自动远程数据库备份 由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需 ...

  9. Create a SQL Server Database on a network shared drive

    (原文地址:http://blogs.msdn.com/b/varund/archive/2010/09/02/create-a-sql-server-database-on-a-network-sh ...

随机推荐

  1. c++调用lua环境配置

    安装完luaforwindows后进行配置 配置项目属性            

  2. Opencv 完美配置攻略(Win8.1 + Opencv 2.4.8 + VS 2013)

  3. VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题

    VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题   在VirtualBOx虚拟机中Ubuntu 14.04设置屏幕分辨率,怎么点都没反应. 方法一:安装与你的Ubuntu-Gu ...

  4. gulp-rev-collector自定义修改rev-manifest.json后替换不成功的问题分析

    由于项目需要,我要把common.js替换成build.min.js,接着后面才用到build.min.js=>build-te234ds.min.js这样的形式替换,但是我发现怎么替换都不能把 ...

  5. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

  6. Alpha阶段项目Postmortem

    以下对成员名字的简称: 陈鸿超 = 陈1 陈彦吉 = 陈2 石浩然 = 石 韩青长 = 韩 1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ...

  7. Python * 和 ** 参数问题

    Problem def calcuate(*keys) def calcluate(**keys) Slove *: 用来传递人一个无名字的参数,这些参数会以一个Tuple的形式来访问. **: 用来 ...

  8. <<< Tomcat运行报错IOException while loading persisted sessions: java.io.EOFException

    解决方法:将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser即可以解决.

  9. C#虚函数和接口的区别

    接口只能声明不能实现,虚函数可以. 接口:对外提供可以访问的函数叫接口.虚函数不需要被强制重写,其本身含有实现部分. 抽象类:指派了派生类必须实现的函数(纯虚函数),不然编译不通过. 虚函数的限制:  ...

  10. 10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则

    加载类可以使用include.require.require_once三种中的任意一种,每个关键字都有两种方法,但是这种方法的缺点是需要加载多少个php文件,就要写多少个加载类的方法.一般也就需要加载 ...