SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

时间:2021-05-02 10:44:46
分类: SQL Server 20052011-01-06 16:25 3320人阅读 评论(1) 收藏 举报

SQLServer2005的定期备份是通过创建“维护计划”来实现的。主要有两种方式:1、维护计划向导。2、新建维护计划(用户手工创建)

如果想在SQLServer2005中使用维护计划来设计维护备份数据库任务时,有一个前提条件:“SQL Server 代理”服务必须是启用状态

首先介绍使用维护计划向导来执行数据库的定期备份

操作过程:

1、 单击:开始→程序→Microsoft SQL Server 2005→“SQL Server Management Studio”(图1)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图1

2、 右键单击:SQL Server 代理→启动(注: 要执行维护计划,SQL Server 代理必须启动!)

3、 右键单击:管理→维护计划→维护计划向导,单击“下一步”(图2)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图2

4、 在“选择目标服务器”窗口,依次设置“名称”、“服务器”、“身份验证”等信息,单击“下一步”(图3),

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图3

说明:身份验证:安装sqlserver2005时采用的验证方式

5、 在“选择维护任务”窗口,选择准备执行的任务,单击“下一步”(图4)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图4

说明:

1) 在维护任务列表中勾选需要执行的任务,可多选

2) 下方黄色区域针对选择的每项任务加以说明

6、 在“选择维护任务顺序”窗口,可以调整每项任务的执行顺序,单击“下一步”(图5)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图5

说明:

1) 调整多个任务的先后执行顺序可通过上移和下移来实现

7、 在“定义备份数据库(完整)任务”窗口,勾选需要备份的数据库名称,单击下一步(图6)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图6

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图7

说明:

1) 选择将备份文件备份到磁盘上

2) 指定备份文件存放的文件夹和位置

3) 勾选“验证备份完整性”

8、 在“选择计划属性”窗口,单击“更改”按钮打开“新建作业计划窗口”,设置好各项参数后单击“确定”按钮(图8)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图8

说明:

1) 设置好各项参数后,在摘要说明栏中叙述了本次作业的详细内容

9、 再次回到“选择计划属性”窗口,单击下一步(图9)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图9

10、 在“选择报告选项”窗口,设置报告的保存或分发方式,单击下一步(图10)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

图10

11、 显示本次维护计划的详细信息,单击完成(图11)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

至此,SQL Server 2005采用维护计划即可以达到定期备份数据库的目的。

二、SQL Server 2005数据库备份定期清理

由于采用上述介绍的数据库维护计划,可以到达定期备份数据库的目的,但是产生了一个问题,数据库备份定期一直在生成,如果大的数据库一个备份文件达几 GB,长期备份的话,硬盘将满了,并且保存太长时间的备份也没有太大必要,因此如何定期清理这些备份是我们接下来要介绍的。有很多种方法可以实现定期清理 备份,本文介绍一种实现方法——采用forfiles命令,这个命令在Windows Server 2003系统中存在,在XP中并不存在,因此需要下载安装。
1. 下载forfiles并安装。 
     下载forfiles,并且拷贝forfiles.exe至具备环境变量的目录下(比如:C:/WINDOWS/system32)。这样你就可以在命令 提示符中用forfiles命令了。 下载地址:http://download.csdn.net/source/1812302
2. forfiles命令简介
FORFILES [/P pathname] [/M searchmask] [/S]
        [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
描述:
   选择一个文件(或一组文件)并在那个文件上
   执行一个命令。这有助于批处理作业。
参 数列表:
   /P    pathname      表示开始搜索的路径。默认文件夹是当前工作的
                       目录 (.)。
   /M    searchmask    根据搜索掩码搜索文件。默认搜索掩码是 '*'。
   /S                  指导 forfiles 递归到子目录。像 "DIR /S"。
   /C    command       表示为每个文件执行的命令。命令字符串应该
                       用双引号括起来。
                       默认命令是 "cmd /c echo @file"。下列变量
                       可以用在命令字符串中:
                       @file    - 返回文件名。
                       @fname   - 返回不带扩展名的文件名。
                       @ext     - 只返回文件的扩展。
                       @path    - 返回文件的完整路径。
                       @relpath - 返回文件的相对路径。
                       @isdir   - 如果文件类型是目录,返回 "TRUE";
                                  如果是文件,返回 "FALSE"。
                       @fsize   - 以字节为单位返回文件大小。
                       @fdate   - 返回文件上一次修改的日期。
                       @ftime   - 返回文件上一次修改的时间。
                       要在命令行包括特殊字符,字符请以 0xHH
                       形式使用十六进制代码(例如,0x09 为 tab)。
                       内部 CMD.exe 命令前面应以 "cmd /c" 开始。
   /D    date          选择文件,其上一次修改日期大于或等于 (+),
                       或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日
                       或选择文件,其上一次修改日期大于或等于 (+)
                       当前日期加 "dd" 天,或者小于或等于 (-) 当前
                       日期减 "dd" 天。有效的 "dd" 天数可以是
                       0 - 32768 范围内的任何数字。如果没有指定,
                       "+" 被当作默认符号。
   /?                  显示帮助消息。
例如:
FORFILES /?
FORFILES
FORFILES /P C:/WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:/ /S /M *.bat
FORFILES /D -30 /M *.exe
            /C "cmd /c echo @path 0x09 在 30 前就被更改。"
FORFILES /D 2001-01-01
            /C "cmd /c echo @fname 在 2001年1月1日就是新的。"
FORFILES /D +2006-12-12 /C "cmd /c echo @fname 今天是新的。"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
     不熟悉的可以根据上面的例子,逐个联系,看看执行结果。
3. 删除备份的批处理脚本 
      FORFILES /P D:/sqldataup /M *.bak /C "cmd /C del /Q @path" /d –5
     上述脚本的意思是:备份文件夹为D:/sqldataup,/d –5表示删除5天前的数据库备份,这个可以根据实际需要设定。

注意:如果路径有空格,则应用""将路径引起来。如:"C:/my documents/database backup",否则出错。
4. 通过计划任务调用批处理脚本如下图所示:(下图为在网上摘录)

SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

至此,数据库定期备份和清理备份可以实现了。清理备份还有其他方法,此文并不介绍。