SQL SERVER resource governor 来控制对于备份任务的资源消耗
来源:互联网 发布:淘宝全球购申请 编辑:程序博客网 时间:2024/03/29 09:34
在日常的备份操作中,很有可能的是你的服务器在进行运行,需要大量的CPU以及内存,而这时你的备份任务却悄然在schedule,
并开始运行。
那这里我们要做的是利用SQL SERVER 2008的新功能 resource governor 来对这个情况进行控制,以达到限制它对备份认为的资源消耗。
------------------------------------------------------------------------------------------------------------------------------------------------
CREATE RESOURCE POOL [backup] WITH(min_cpu_percent=0,
max_cpu_percent=30,
min_memory_percent=10,
max_memory_percent=40)
GO
CREATE WORKLOAD GROUP [backup] WITH(group_max_requests=0,
importance=Low,
request_max_cpu_time_sec=0,
request_max_memory_grant_percent=25,
request_memory_grant_timeout_sec=0,
max_dop=0) USING [backup]
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
这里我们建立了一个资源池,名字叫BACKUP,并分配CPU的最大资源为30%,内存的最大资源在10-40%之间,并在这里建立了一个资源组,他的重要等级是低的,并建立和资源池的关联。
到了这里我们虽然建立了资源池以及资源组,但是我们却还么有和我们的备份任务有任何的关系,这里需要一个触发备份就是用这个资源的函数。那下面我们就做这个函数。
use master
go
create function backupcontrol (0
RETURNS sysname WITH SCHEMABINDING
as
begin
declare @groupname sysname
if (suser_name()='backup')
set @groupname='backup'
return @groupname
end
这里解释,我们来判断是否是备份的任务是通过执行备份任务的用户名来进行的,只要是使用BACKUP这个用户来进行的备份工作,则自动进入我们的资源控制范围,也就是说我们的触发SQL SERVER 去管理备份资源的触点是,backup这个用户,所以非BACKUP用户进行的备份操作不在我们的控制范围,当然我们也可以通过应用的类型来做。
这里要给定的有
1 suser_name 也就是我们的执行备份认为的用户名
2 @GROUPNAME 这里赋值一定要使用我们已经做好的组名
最后一步就是要把我们的这个函数和我们的resource governor进行连接
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [dbo].[backupcontrol]);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
好了我们的任务已经完成了
- SQL SERVER resource governor 来控制对于备份任务的资源消耗
- SQL SERVER Resource Governor 自己翻译的白皮书(部分)
- SQL案例--002--20110511--SQL Server 2008 R2 Resource Governor 的小 BUG
- Handling workloads on SQL Server 2008 with Resource Governor
- Restricting IO Using SQL Server 2014 Resource Governor
- SQL Server2008 Resource Governor简介
- SQL Server2008 新特性 Resource Governor
- Resource Governor
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- 如何定位资源消耗多的SQL
- 定位高消耗资源的sql语句
- 查找消耗资源多的sql
- 控制RMAN的备份时间,减少IO消耗
- 通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
- 如何度量SQL资源消耗
- 什么是统一通信?
- 2011新生选拔赛解题报告
- 优化数据库的方法及SQL语句优化的原则
- 什么是SEO
- Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of
- SQL SERVER resource governor 来控制对于备份任务的资源消耗
- Servlet共享变量与作用域
- 电脑维修
- INI文件结构简单描述
- 从容生活
- XNA正交投影矩阵原点在左上角
- 新手报到
- Mongodb源码分析--Mongos
- 大数据量SqlServer效率分页