使用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.databases
WHERE 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 OUTPUT
IF(ISNULL(@DISK,'')='')
PRINT @S
ELSE
EXEC (@S)
END;
将这个存储过程放到master中,创建作业定时执行这个存储过程,将需要备份的数据库添加一个扩展属性 backup值为Y即可

原文:http://www.cnblogs.com/January/p/3811524.html
使用SQL Server Management Studio 创建数据库备份作业的更多相关文章
- 利用Microsoft Sql Server Management studio 创建数据库的示例
利用Microsoft Sql Server Management studio 创建数据库的示例方法如下: 一.打开安装好的Microsoft Sql Server Management stu ...
- 在SQL Server Management Studio中可以运行作业但是用T-SQL运行则失败
原文:在SQL Server Management Studio中可以运行作业但是用T-SQL运行则失败 问题: 在SQL Server Management Studio中可以运行作业但是用T-SQ ...
- Microsoft SQL Server Management Studio ------------------------------ 附加数据库 对于 服务器
http://zhidao.baidu.com/link?url=didvEEY86Kap_F9PnRAJMGoLXv63IW1fhElfiOpkkmalJ9mvZoqNULlGKcGHN31y_4z ...
- 使用SQL Server Management Studio 创建作业备份数据库
在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...
- 使用 SQL Server Management Studio的活动和监视器 查看运行的SQL语句
使用SQL Server Management Studio可以查看SQL Server 服务器执行的SQL语句,支持sql server,(LocalDB)\V11.0,Projects\v12和s ...
- SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法
在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你. SQL Server 2008“阻止保存要求重新创建表的更改”的错误的解决方案是本 ...
- SQL Server Management Studio 教程二: 创建新登录名
1.先用windows身份登录SQL server2008 2.打开[安全性],右击[登录名],选择[新建登录名] 3.[常规]选项页面中,修改如下位置设置,默认数据库可以是其他数据库,不一定是mas ...
- 利用SQL Server Management Studio(SSMS)复制数据库
利用SQL Server Management Studio(SSMS)复制数据库 标签(空格分隔): SQLServer 前言 今天由于客户购买的软件版本确认了,而之前进行开发的本地数据库版本较低, ...
- 使用PD(Power Designer)设计数据库,并且生成可执行的SQL文件创建数据库(本文以SQL Server Management Studio软件执行为例)
下载和安装PD: 分享我的软件资源,里面包含了对PD汉化包(链接出问题时可以留言,汉化包只能对软件里面部分菜单栏汉化) 链接:https://pan.baidu.com/s/1lNt1UGZhtDV8 ...
随机推荐
- 做自己生活的导演:华为CameraKit为你加持大师光环
今年最流行的娱乐方式,无疑是短视频,抖音等短视频平台,越来越多的消费者沉浸其中.除了看别人拍的短视频用以丰富生活乐趣之外,也有不少跃跃欲试的消费者加入到短视频拍摄的行列中.随着拍摄者的增加,对拍摄设备 ...
- Editing a Book UVA - 11212 IDA*
You have n equal-length paragraphs numbered 1 to n . Now you want to arrange them in the order of 1 ...
- Windows 下tomcat安装及将多个tomcat注册为Windows服务
一.应用场景 虽然Windows在当下已经不再是我们作为服务器操作系统平台的首选,但是还是有一些开发商或者项目整体需求的限制必须运行在Windows系统平台之下.为了避免多个应用部署在同一个tomca ...
- [浪风推荐]CURL伪造IP和来源
给“刷票”的朋友提供了很好的换IP的方案,查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl_seto ...
- PYTHON MYSQL 的表创建和插入
import mysql.connector cnx = mysql.connector.connect(user='xx',password='xx++.',host='139.107.11.166 ...
- iOS QQ的AppID转换16进制的方法
801312852为QQ的AppID 打开终端 echo 'ibase=10;obase=16;801312852'|bc 红色框内的即为转换后的16进制
- 第二章----python基础
概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行.python使用缩进来组织代码块,Python程序中大小写是敏感 ...
- Android OpenCV图像转换
1.Mat存储到本地: public void saveMatData(Mat mat) { File fileDir = new File(Environment.getExternalStorag ...
- 3、ACE-实用生活口语---讲打电话Talking on the phone
(3)需要留口信吗?请让他给我回电话Would you like to leave a message?May I take a message for you ?Please tell him to ...
- 【BZOJ2794】[Poi2012]Cloakroom 离线+背包
[BZOJ2794][Poi2012]Cloakroom Description 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]).再给出q个询问,每个询问 ...