使用SQL Server Management Studio 创建数据库备份作业
--完整备份,每周一次
USE Master
GO
declare @str varchar(100)
set @str='D:\Weldon\DBBACK\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'
BACKUP DATABASE [demo] TO DISK=@str
WITH RETAINDAYS=15,NOFORMAT,NOINIT,
NAME=N'Demo完整备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO
/*******************差异备份作业*******************/
--截断日志
USE Master
GO
BACKUP LOG Demo WITH NO_LOG
GO
--收缩日志文件
USE Demo
GO
DBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)
GO
--差异备份,每天一次
USE Master
GO
declare @str varchar(100)
set @str='D:\Weldon\DBBack\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE [Demo] TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差异备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO
/******************日志备份作业*******************/
--日志备份,每小时一次
USE Demo
GO
declare @str varchar(100)
set @str='D:\Weldon\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'
BACKUP LOG [Demo] TO DISK=@str
WITH RETAINDAYS=3,NOFORMAT,NOINIT,
NAME=N'Demo日志备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO
--删除过期的备份文件,每天两次
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\Weldon\'
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str
https://www.cnblogs.com/devloper110/articles/1298650.html
SQL Server 作业无非就是按照规定的时间执行指定的脚本,这里介绍如何用SSMS(SQL Sever 2008)创建作业备份数据库。
(0)假设在创建作业之前你所要备份的数据库已经存在;其次,你已经会启动SQL Sever 代理(一般是关闭的)
(1)创建SQL Server代理作业
(1.1)新建作业,输出常规信息
如上图:输入作业名称(如:BackupJobTest),这里所有者和类别都是默认的,输入说明(就跟写代码要写注释一样,利人利己)
(1.2)设置作业执行步骤
点击左边“选择页”中的步骤属性选项卡,点击“新建”按钮
作业步骤属性窗口中,类型选择(T-SQL),选择要备份的数据库,并粘贴上调试好的SQL 备份脚本,由于我也是第一次写,贴一段示例在这里,读者可以自行参考修改:
--将SQL脚本赋值给变量 declare @SqlBackupDataBase as nvarchar(1000) set @SqlBackupDataBase=N'BACKUP DATABASE YourDataBaseName TO DISK = ''E:\DBBackup\YourDataBaseName-'+ CONVERT(varchar(11),GETDATE(),112)+REPLACE(CONVERT(varchar(12),GETDATE(),108),':','')+'.bak''' --备份文件格式:YourDataBaseName-20140626233410.bak print @SqlBackupDataBase --打印出来(为了方便调试,可省略) exec sp_executesql @SqlBackupDataBase --调用系统存储过程,执行SQL
注:CONVERT()函数的第三个参数是时间样式ID;用REPLACE()函数替换掉了时间中的冒号(因为Windows中文件名不能包含该字符)
时间格式及ID对照表参考:W3school
(1.3)设置作业执行计划
在计划选项卡中,点击“新建”按钮新建计划:
设置完成后,点击”确定“按钮,另外三个属性“警报”、“通知”、“目标”如果需要可以自行设置,这里不再讲述。
完成计划设置后,点击上级的“确定”按钮,作业就创建完成了。
(2)手动验证作业执行的正确性
右键单击作业节点下刚建立的作业(图中的“BackupJobTest”),选择‘作业开始步骤(T)’
执行结果如下,表示成功:
点击“查看历史记录(V)”,可查看日志:
通用备份作业:
ALTER PROCEDURE [dbo].[my_backup] @DISK VARCHAR(400)
AS
BEGIN/*********************************************************参数为空时,不执行备份,只打印出备份语句,可以直观得出需要备份的数据库列表my_backup ''my_backup 'D:\DBBackup\'*********************************************************/SET NOCOUNT ON;DECLARE @sql NVARCHAR(MAX);IF(LEN(@DISK)>1)IF(RIGHT(@DISK, 1) <> '\') SET @DISK=@DISK+'\'SET @sql = '';DECLARE @ts VARCHAR(50)=CONVERT(varchar(11),GETDATE(),112)+REPLACE(CONVERT(varchar(12),GETDATE(),108),':','')SELECT @sql = @sql + 'IF EXISTS (SELECT * FROM ['+name+'].sys.extended_properties WHERE class_desc=''DATABASE'' AND name=''backup'' AND [value]=''Y'')'+CHAR(10)+'SET @SQL=@SQL+''BACKUP DATABASE [' + name + '] to DISK=''''' + @DISK + name + '-'+@ts+'.bak'''';''+CHAR(10) ' + CHAR(10)FROM sys.databasesWHERE name NOT IN ( 'master', 'tempdb', 'model', 'msdb','ReportServer','ReportServerTempDB' );--print @sql --EXEC (@sql);DECLARE @S NVARCHAR(MAX)=''-- my_backup 'D:\DBBackup\'exec sp_executesql @sql,N'@SQL NVARCHAR(MAX) output',@S OUTPUTIF(ISNULL(@DISK,'')='')PRINT @SELSEEXEC (@S)
END;
将这个存储过程放到master中,创建作业定时执行这个存储过程,将需要备份的数据库添加一个扩展属性 backup值为Y即可
原文:http://www.cnblogs.com/January/p/3811524.html
转载于:https://www.cnblogs.com/GarsonZhang/p/6905607.html
使用SQL Server Management Studio 创建数据库备份作业相关推荐
- Microsoft SQL Server Management Studio ------- 附加数据库 对于 服务器“xxx失败(错误码5120)
标题: Microsoft SQL Server Management Studio ------------------------------附加数据库 对于 服务器"xxx" ...
- Microsoft SQL Server Management Studio ------- 附加数据库 对于 服务器“xxxamp;amp;quot;失败(错误码5120)
标题: Microsoft SQL Server Management Studio ------------------------------ 附加数据库 对于 服务器"DESKTOP- ...
- 无法打开数据库‘XXXX’。恢复操作已将该数据库标记为SUSPECT或者打开Microsoft SQL Server Management Studio发现数据库被标为可疑的解决办法
无法打开数据库'XXXX'.恢复操作已将该数据库标记为SUSPECT 当你用navciat连接sql server 数据库的时候,发现某个库打不开的时候.爆出了这个'无法打开数据库'XXXX'.恢复操 ...
- Microsoft SQL Server Management Studio 附加数据库时出错。有关详细信息,请单击……
在制作毕业设计的作业时,需要连接SQL数据库,在附加.mdf数据库文件时,出现了这个错误.于是上网查阅.我列出几个解决办法:基本上都是权限问题,或者认证方式以及版本问题. 1.找到.mdf文件,右击, ...
- 使用SQL Server Management Studio 创建作业备份数据库
在项目中,经常需要备份数据库,如果能做到只需点个按钮("开始备份数据库"按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sq ...
- Microsoft SQL Server Management Studio ------- 附加数据库失败
加数据库 对于 服务器"xxx"失败. (Microsoft.SqlServer.Smo)有关帮助信息,请单击: http://go.microsoft.com/fwlink?Pr ...
- SQL Server Management Studio管理数据库
数据库管理 文件和文件组 (1)数据库文件(Database File) 数据库文件是存放数据库数据和数据库对象的文件,一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据:当有多个数据 ...
- Microsoft SQL Server Management Studio附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。
附加数据库时出错.有关详细信息,请单击"消息"列中的超链接. 导入别人的项目时导入mdf和ldf数据库文件时,附加数据库出错 这是由于文件夹的权限问题,详细解决办法如下图所示: 我 ...
- .bak 服务器备份文件,如何从SQL Server Management Studio中的多个备份(bak)文件还原数据库...
本文概述 在带有SSMS的SQL Server中, 还原数据库(至少对于小型数据库而言)非常容易.无论当前的原因是什么, 例如在生产环境中进行还原, 在本地环境中进行还原以检查数据库完整性等等, 你都 ...
最新文章
- 边缘计算技术发展与对策研究
- IOS开发基础知识--碎片45
- firefox显示nagios
- laravel 文件上传
- 新建idea加入的一句话,键值对
- 一线上nagios监控参数
- Google Guava多集
- javascript要点_JavaScript要点:为什么您应该知道引擎如何工作
- 微软阵营企稳的利好消息:.NET开源、Visual Studio免费
- 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
- 华为发布企业服务云化转型战略 未来5年投资5亿美金建设服务能力(2017年09月06日)
- 算法黑话大赏,我直呼好家伙!
- iMpACT中的Xilinx Prom烧录
- sshpass简介及安装
- [书籍推荐]为了自己的钱包,为了自己的时间——分享一下自己的淘书经验
- ELK详解(八)——Logstash收集系统日志实战
- 史上最全!数学参考书大评测及常见问题
- linux默认的分区是fat,linux下开机自动挂载FAT分区
- Android应用生命周期实现简单的秒表App
- DSP的时钟和系统控制
热门文章
- java dom获取命名空间属性_Java DOM XML解析::获取元素属性值
- 计算机网络—PPP协议和HDLC协议
- 操作系统—死锁的避免
- bzoj 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
- 2017 Multi-University Training Contest - Team 7:1011. Kolakoski(模拟)
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛:I. 丢史蒂芬妮
- 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数
- Java 绘制艺术图案
- python文件夹,文件监听工具(pyinotify,watchdog)
- 机器学习案例系列教程——距离度量方法总结