关于SQL自动备份的方法在本Blog中有些过相关的文章
可以参看:http://fableking.iteye.com/blog/361021
这里就讲如何让产生后的备份文件自动压缩并删除源文件的方法
其实这里利用的是winrar的命令行来执行压缩并删除源文件的方法的
winrar命令行的压缩命令是[winrar路径] a [参数] [压缩后的路径] [需要压缩的文件路径],这是本文需要用到的命令格式
之后我们就要解决如何让SQL来执行这个命令行了
方法就是调用SQL的exec master..xp_cmdshell @cmd的存储过程方法来执行,这样我们就能够实现我们的目的了
大概方向已经取得,之后就是按实际要求来操作它们了,这里我只讲我的使用方法,具体的还是要看大家的具体需要的
我的SQL备份是每天都要执行的,所以我在设置自动备份的时候就是把备份文件名设置成当天日期的格式的
这是备份的命令:
declare @filename varchar(100)
set @filename='D:\'+convert(char(10),getdate(),120) --设置备份文件的路径和文件名
print @filename
backup database[databasename] to disk=@filename with NOINIT,NOUNLOAD,NAME='backup',NOSKIP,STATS=10,NOFORMAT --执行备份
这是压缩并删除源文件的命令:
declare @file varchar(100)
set @file='c:\winrar.exe a -ep -df D:\'+convert(char(10),getdate(),120)+'.rar D:\'+convert(char(10),getdate(),120) --将压缩备份文件并删除源文件的winrar命令行命令
exec master..xp_cmdshell @file --执行命令
这里解释下压缩的命令,关于备份的命令因为之前的文章说明过,这里就不作多余的解释了
这里我本来是想把@file的命令直接写在exec master..xp_cmdshell @cmd的@cmd位置的,但之后发现这里不支持使用"+"号,一下子有点郁闷,幸好后来使用变量解决了该问题。。所以这里使用了@file的变量,不这样的话,命令就无法如意执行了。
'c:\winrar.exe a -ep -df D:\'+convert(char(10),getdate(),120)+'.rar D:\'+convert(char(10),getdate(),120)
解释下这句话的具体意思:
一般默认下winrar的程序都是安装在C:\Program Files\WinRAR下的,但是由于其中的Program Files目录名中有空格,CMD命令行中是不支持有空格的名字的,所以只好把程序复制到一个简单的路径,然后加以调用了。
本来想过使用环境变量添加path来用的,结果这个方法在cmd中可行,放在sql中调用就不行,没办法,暂时就只好重新定义winrar的路径来解决问题了。
a就是winrar压缩文件的命令参数
-ep参数的作用是不压缩文件的完整路径,也就是指压缩指定的文件。
-df参数的作用就是压缩后删除源文件
后面命令的意思就是把D盘根目录下以当天日期命名的备份文件压缩到D盘根目录,并命名为当天日期的rar文件
更多的winrar参数命令可以参考winrar的帮助文档。
-------------------------------------------------------------------------
差不多就是这样了,这个问题我花了差不多一个上午的时间来研究,当中还碰到了sql权限的问题,所以这里还要特别说一下,新建这个作业的用户必须是拥有对master数据库有读写权限的用户,不然是不能执行xp_cmdshell的存储过程的。
分享到:
相关推荐
标题 "C# sql数据库自动备份并压缩(源码)" 提供了一个关键的IT知识点,即如何使用C#编程语言来创建一个SQL数据库的自动备份功能,并且这个备份过程还包含了数据压缩的步骤。这个工具对于数据库管理员或者软件开发者...
### SQL2000自动备份、压缩与删除知识点解析 #### 一、背景与需求概述 在数据库管理中,定期备份是非常重要的环节之一。对于SQL Server 2000这样的数据库系统来说,手工备份不仅耗时费力,还容易出错。特别是随着...
1. **SQL Server 自动备份**: SQL Server 提供了一种叫做维护计划的工具,可以设置定时执行备份任务。但在这个场景中,我们使用的是自定义的vbs(Visual Basic Script)脚本来实现自动化。这种自定义的方法更灵活...
SQL2000自动备份压缩工具是一款针对Microsoft SQL Server 2000数据库设计的实用程序,它能够帮助系统管理员方便地实现数据库的定期备份并进行压缩,以确保数据的安全性和完整性。这款工具通常配备时间任务定时功能,...
本文档详细介绍了SQL Server 2012版本中如何配置数据库的自动备份以及日志文件的压缩和定时清空表数据的步骤。下面将从自动备份、日志压缩及数据表清除三个方面进行详细知识点梳理。 首先,我们需要了解SQL Server ...
3. 输入任务名称,比如“SQL Server 2008 自动备份”,并描述任务目的。 4. 在触发器选项中,设置备份的频率和时间,如每天、每周等。 5. 在操作选项中,选择“启动程序”,然后浏览到`sqlcmd.exe`所在的目录,通常...
SQL自动备份纯脚本工具是一种高效且实用的解决方案,它专为数据库管理员设计,用于定期对SQL Server数据库进行自动备份。这种工具通过脚本化的方式实现了自动化备份过程,避免了手动操作的繁琐和可能出错的风险。在...
本篇将详细探讨如何在SQL Server中实现定时自动备份,确保数据在面临意外情况时能够得到恢复。 首先,理解SQL Server的备份类型至关重要。主要有完整备份、差异备份和日志备份。完整备份会备份数据库的所有内容,...
综上所述,这个“SQL数据库自动备份工具”可能是一个集成了解密、压缩和备份功能的系统,它能够连接到多种类型的数据库(如Progress OpenEdge和SQL Server),并使用批处理脚本自动执行备份过程。文件的加密确保了...
### SQL Server 2008 维护计划实现数据库定时自动备份详解 #### 核心概念解析 在探讨SQL Server 2008维护计划如何实现数据库定时自动备份之前,我们首先需要理解几个核心概念: - **数据安全与备份**:在IT行业中...
标题中的“SQL Server自动备份脚本 bat”指的是在Microsoft SQL Server数据库管理系统中,利用批处理文件(.bat)实现数据库的自动化备份。这样的脚本通常包含T-SQL语句,用于执行备份操作,并且可以设置为Windows...
### SQL数据库自动备份设置知识点详解 #### 一、SQL数据库自动备份概述 在现代企业级应用环境中,确保数据的安全性和完整性至关重要。对于基于Microsoft SQL Server的系统而言,定期进行数据库备份是一项基本且...
- 提供的压缩包子文件“易特SQL SERVER自动备份工具”可能是一个第三方解决方案,用于增强SQL Server 2000的备份功能。 - 这类工具通常提供用户友好的界面,简化备份配置,并可能包括额外的功能,如邮件通知、备份...
《易特SQL SERVER自动备份工具:数据库安全的守护者》 在信息技术日益发达的今天,数据库作为企业核心资产的重要组成部分,其安全性与稳定性至关重要。易特SQL SERVER自动备份工具,作为一个专门为SQL SERVER 2000...
SQL Server 自动备份小精灵是一款专为SQL Server数据库设计的自动化备份工具,尤其适用于SQL Server 2000版本。该工具旨在简化数据库管理员的工作,确保数据的安全性和可靠性,通过定期执行备份任务来防止数据丢失。...
通过with compression显式启用备份压缩,指定对此备份执行备份压缩,覆盖服务器级默认设置。适用于 SQL Server 2008和更高版本。 因为相同数据的压缩的备份比未压缩备份小,所以压缩备份所需的设备 I/O 通常较少,...
SQL自动备份小工具是一款专为数据库管理员设计的实用软件,旨在简化SQL Server的备份过程,提供一键式的自动化解决方案。这款工具极大地减轻了手动备份的工作负担,确保数据的安全性,同时降低了由于人为错误导致的...
本篇将深入探讨SQL自动备份的相关知识点,包括为何需要进行SQL备份、如何实现SQL自动备份以及常见策略。 首先,理解SQL备份的必要性至关重要。数据库中存储着企业核心的数据,如客户信息、交易记录等,一旦发生硬件...
数据库自动备份和压缩是数据库管理中的重要环节,它确保了数据的安全性和可恢复性,同时通过压缩节省存储空间。以下是对这一主题的详细说明: **一、数据库自动备份** 1. **创建维护计划**:在SQL Server中,可以...