logo logo
关于我们

技术分享

技术分享 SQL Server 2005数据库定期备份和删除历史备份记录

SQL Server 2005数据库定期备份和删除历史备份记录

2021-04-23

在SQL Server 2005数据库中实现自动备份的具体步骤:
1、打开SQL Server Management Studio
2、启动SQL Server代理
3、点击作业->新建作业
4、"常规"中输入作业的名称
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '.')
set @strPath = 'D:\bak\' + 'databasename'+@strPath + '.bak'
BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
(D:\bak\改为自己的备份路径,databasename修改为想备份的数据库的名称)
6、添加计划,设置频率,时间等。
确定,完成。

一、 SQL Server 2005数据库定期备份

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

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

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

操作过程:

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

SQL Server 2005数据库定期备份和删除历史备份记录

图1

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图2

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

SQL Server 2005数据库定期备份和删除历史备份记录

图3

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图4

说明:

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

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图5

说明:

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图6

SQL Server 2005数据库定期备份和删除历史备份记录

图7

说明:

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

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

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图8

说明:

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

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

SQL Server 2005数据库定期备份和删除历史备份记录

图9

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

SQL Server 2005数据库定期备份和删除历史备份记录

图10

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

SQL Server 2005数据库定期备份和删除历史备份记录

SQL Server 2005数据库定期备份和删除历史备份记录

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

declare @d varchar(2000)
declare @dbname varchar(200)
declare @sql varchar(max)
set @d=convert(varchar(20),getdate(),120)
set @d=replace(@d,':','-')
set @dbname='Archive'  --数据库名称

set @sql='backup database ['+@dbname+'] to disk=''d:/Databak/'+@dbname+'_full_'+@d+'.bak'' WITH CHECKSUM,NOFORMAT,INIT,SKIP'
--print @sql
exec (@sql)

二、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数据库定期备份和删除历史备份记录

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

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 云计算

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

jia7jia_7
请添加好友
为您提供支持

请拨打电话
为您提供支持

400-9955-698