SqlServer 2008 R2定时备份数据库,并且发送邮件通知

原文:SqlServer 2008 R2定时备份数据库,并且发送邮件通知

先配置数据库的邮件设置,这样才可以发送邮件。

2.

3.

4.

5.

6.

7.

8.

9.

10.

总的预览图,如图

 

执行这一段(先发送备份邮件,然后进行数据备份,将昨天的发送数据插入到另一张表中,这样表中的数据也很小,查询也很快,充分利用数据库的表空间,进行拆表是一件提高查询和插入速度很快的一种方案)

/******发送邮件通知******/
USE OpenMas
GO
DECLARE @mailContent NVARCHAR(2000),@num int,@totalMessageCount int,@sys_usr NVARCHAR(30);
SET @sys_usr = SYSTEM_USER;
SELECT @num = ISNULL(COUNT(1),0) FROM SMSSentLog WHERE YEAR(SendTime) = YEAR(GETDATE()-1) AND MONTH(SendTime)= MONTH(GETDATE()-1) AND DAY(SENDTIME) = DAY(GETDATE()-1)
SELECT @totalMessageCount = ISNULL(SUM(MessageCount),0) FROM SMSSentLog WHERE YEAR(SendTime) = YEAR(GETDATE()-1) AND MONTH(SendTime)= MONTH(GETDATE()-1) AND DAY(SENDTIME) = DAY(GETDATE()-1)
--PRINT cast(@num as nvarchar)  + '-'+ cast( @totalMessageCount as nvarchar)
SET @mailContent = '备份发送记录表邮件内容:时间:'+ CONVERT(varchar(100), GETDATE(), 25)+',备份条数:'+CAST(@num AS NVARCHAR) +'条,总发送量:'+CAST( @totalMessageCount AS NVARCHAR)+',登录数据库账号:'+@sys_usr+' 来自OpenMas机'
--PRINT @mailContent
USE msdb
EXEC dbo.sp_send_dbmail
@recipients='yanghenglian@163.com',
@subject='数据库表数据备份通知',
@body =@mailContent
GO

/*每天凌晨(两点钟)将昨天(2015-1-9)的发送短信插入到指定月份的表(SMSSentLog201501)*/
USE OpenMas
--定义参数
--年份
DECLARE @year NVARCHAR(10)
--月份
DECLARE @month NVARCHAR(10)
--日
DECLARE @day NVARCHAR(10)
--动态表名称
DECLARE @tableName NVARCHAR(20)
--动态构建脚本
DECLARE @Sql NVARCHAR(2000)
--赋值(昨天的年月日是多少)
SET @year = YEAR(GETDATE()-1)
SET @month =MONTH(GETDATE()-1)
SET @day  = DAY(GETDATE()-1)
    --动态构建表名称(需要导入到备份表的名称)
    SET @tableName  = 'SMSSentLog'+ @year + CASE WHEN LEN(@month)=1 THEN  '0'+ @month ELSE @month  END
    --PRINT @year + '-' + @month + '-' + @tableName
    SET @Sql = N'INSERT INTO '+ @tableName +'(Id,Channel,SystemCode,CompanyId,CompanyCode,CompanyName,UserId,UserCode,UserName
,AccountCode,ApplicationCode,MessageID,MessageContent,MessageCode,ExtendCode,DestinationAddress,CustomerName,SendType,SendTime,IsWapPush,MessageCount,WapUrl,CreateTime,GatawayStatus)  SELECT Id,Channel,SystemCode,CompanyId,CompanyCode,CompanyName,UserId,UserCode,UserName
,AccountCode,ApplicationCode,MessageID,MessageContent,MessageCode,ExtendCode,DestinationAddress,CustomerName,SendType,SendTime,IsWapPush,MessageCount,WapUrl,CreateTime,GatawayStatus FROM SMSSentLog  WHERE YEAR(SendTime) = '+@year+' AND MONTH(SendTime)='+@month+' AND DAY(SENDTIME) = '+@day+';'
    --拼接删除语句,是否要删除
    SET @Sql  = @Sql + 'DELETE FROM SMSSentLog  WHERE YEAR(SendTime) ='+@year+' AND MONTH(SendTime)='+@month+' AND DAY(SENDTIME) ='+@day+';'
    --PRINT @Sql
    --执行Sql
    EXEC sp_executesql @sql

 

时间: 2024-09-17 08:30:45

SqlServer 2008 R2定时备份数据库,并且发送邮件通知的相关文章

数据库-64位sqlserver 2008 r2企业版可以安装在32位win7上吗

问题描述 64位sqlserver 2008 r2企业版可以安装在32位win7上吗 我的系统是win7的32位版本,可不可以装64位sqlserver 2008 r2企业版的数据库,如果不可以,可否提供32位sqlserver 2008 r2企业版的下载地址,感激不尽 解决方案 不可以.32bit操作系统只能安装32bit程序,反之,64bit系统可以安装32bit程序. 下载原版微软软件:http://msdn.itellyou.cn 解决方案二: 另外,SQL Server 2008 R2

SqlServer定时备份数据库和定时杀死数据库死锁解决

原文:SqlServer定时备份数据库和定时杀死数据库死锁解决 上周五组长更我说了一句要杀死数据库的死锁进程,因为自己对数据库不是很熟悉,突然组长说了我也就决定一定要倒腾一下,不然自己怎么提高呢?现在不研究,说不定下次还是要研究呢,倒腾出来了就可以在下次用到了,后来组长又补了一句:"还有定是备份数据库的问题要解决",说干就干. PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库  因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开

还原数据-SqlServer 2008 R2 全备+差备 数据库还原时报错,求助!!急!!

问题描述 SqlServer 2008 R2 全备+差备 数据库还原时报错,求助!!急!! 在对数据库进行还原的时候,我选了最近一次的全备与最新的一个差备进行还原,当选中这两个备份文件后,点确定之后提示 求帮助!求解决 解决方案 参考Sql server还原数据库提示"介质集有2个介质簇,但只..."的问题 检查一下备份的时候是不是有两个文件,但是还原的时候至指定了一个.

详解SQLServer 2008 R2数据库SSAS建模及扩展能力_mssql2008

SQLServer 2008 R2数据库中提供的SSAS建模工具包括包括SQL Server Management Studio 和Business Intelligence Development Studio,那么建模的过程是怎样的呢?本文我们就来介绍这些,接下来就让我们来一起了解一下SQLServer 2008 R2数据库的建模工具和关键过程以及数据挖掘.权限和访问接口等的知识吧. 建模工具和关键过程 SSAS的建模的目的是设计多维数据库对象,建模的工具包括SQL Server Manag

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份

原文:SQLServer 2008以上误操作数据库恢复方法--日志尾部备份 原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题:          经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题.         遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会

SQL Server Management Studio不能安装SQLServer 2008 R2的问题

环境 SQLServer 2008 R2 + Visual Studio 2010 + SQLManagementStudio_x86_CHS 问题描 述 编程开发难免会用到SQLServer或者VS2010,虽然现在很少做C/C++/C#的开发了.以前我安装SQLServer 2008 R2和Visual Studio 2010的顺序是这样的,先安装SQLServer 2008 R2,然后安装Visual Studio 2010, 这样是不会出现任何问题的.寒假心血来潮,偏偏我又是个叛逆心理很

SQL Server 2008 R2如何附加数据库

环境:SQLServer 2008 R2 问题:SQLServer 2008 R2附加数据库 解决: 数据库------ >附加------>选择数据库MDF数据文件存放位置(LDF日志文件会自动添加进去)------>确定----- ->就可以使用该数据库了. 如图:

自动备份数据库并发送邮件报告数据库

  最近在一个做企业的一个内部系统,数据库采用的是SQL2000,为了保证数据的安全性,需要每天下班之后做数据备份,并且通过邮件的方式通知管理员备份情况.备份数据库很简单,用SQL代理建立一个作业,每天定时备份数据库即可,通过SQL2000来发邮件的话,在网上找了些资料,发现有多种方式可以采用. 一.通过SQL Mail SQL Mail 提供了一种从 Microsoft SQL Server 发送和阅读电子邮件的简单方法.原理是通过调用服务器上面的 MAPI 子系统来进行邮件发送,所以服务器上

sqlserver 2008 r2 开启AWE内存分配的问题

问题描述 sqlserver 2008 r2 开启AWE内存分配的问题 服务器是windows server 2003 8G内存,对数据库内存之类的基本都不懂,只是根据网上给的方法进行设置,但结果却懂. 如图,这是默认正常情况下的内存使用情况,sqlserver的内存到达1.7G的样子就不再上升了 但是当开启了AWE后,设置了最大内存为4000MB,但内存使用却一直维持在100多MB ,完全不懂原因,求解答 解决方案 这就对了.AWE内存SQL Server自己管理,不统计任务管理器中. 你在查