AlwaysOn group的一个新特性是允许在secondary replica进行backup,将backup的负载从primary replica上移除去。

并且提供了Backup preference选项,用于在AlwaysOn Availability Group环境下对备份进行管理。需要强调的是,Backup Preferences并没有强制作用,设定之后,依然可以在任意一个replica上进行备份。

下面用一个例子解释如何使用Backup preference

环境

===

Secondary node: SQL108W2K8R21.

Secondary node: SQL108W2K8R22.

.

Availability group: AgGroupTest

Replica database: dbtest1

打开AvwaysOn High Availability ->Availability Groups->右键所需要的Availability Replicas->Properties.

会弹出下面的窗口,点击左面的Backup Preference。

Backup Preference选项分别如下:

Prefer Secondary

优先级高的secondary replica会被设定为Prefer replica ,如果所有的secondary replica优先级相同,那么系统会随机挑选一个作为Prefer replica.

如果高优先级的secondary replica不可用,那么第二高的会被选择为prefer replica,以此类推。

如果primary是唯一可用的replica,那么primary为成为prefer replica。

Secondary only

Primary replica永远不会成为prefer replica, 其余的和Prefer Secondary相同

Primary

只有Primary replica成为prefer replica。

Any Replica

优先级高replica的成为replica

如果replica勾选了Exclude Replica,则该replica不会成为prefer replica

那么如何将backup preference应用到我们的backup计划中呢?下面是一个例子

在所有的replica中建立一个full backup作业,该作业每天运行一次,脚本如下

declare @n int

select @n=sys.fn_hadr_backup_is_preferred_replica ( 'dbtest1' )

if @N=1

begin

declare @timestamp sysname

set @timestamp= replace(replace(CONVERT(char(16),GETDATE(),120),':','_'),' ','_')+'.bak'

declare @dbName sysname

set @dbName='dbtest'

declare @path sysname

set @path='\\sharefolder\'--for example c:\backup\

declare @backup nvarchar(200)

set @backup='backup database '+quotename(@dbName,']')+' to disk='+''''+@path+@dbName+@timestamp+''' with copy_only' //alwayson不支持在seconday做full dbbackup

exec (@backup)

end

在所有的replica中建立一个log backup作业,该作业每天15分钟一次,脚本如下

declare @n int

select @n=sys.fn_hadr_backup_is_preferred_replica ( 'dbtest1' )

if @N=1

begin

declare @timestamp sysname

set @timestamp= replace(replace(CONVERT(char(16),GETDATE(),120),':','_'),' ','_')+'.bak'

declare @dbName sysname

set @dbName='dbtest'

declare @path sysname

set @path='\\sharefolder\'--for example c:\backup\

declare @backup nvarchar(200)

set @backup='backup log '+quotename(@dbName,']')+' to disk='+''''+@path+@dbName+'_log'++@timestamp+''''

exec (@backup)

end

这个备份作业使用到了sys.fn_hadr_backup_is_preferred_replica函数,该函数会根据backup preference的设定来判断当前节点是否为prefer replica,如果是,就进行备份,否则退出。

该函数返回0和1,0代表NO,1代表 YES. 这样就保证同一时刻只有一个replica可以进行备份操作。

如果您使用Maintenance Plan来创建计划,默认情况下会自动使用Backup preference.

最后是两个关于backup preference的bug fix

FIX: 100 percent of CPU resources are used after you enable the Log Shipping feature for some databases in SQL Server 2012 http://support.microsoft.com/kb/2887115

FIX: The system function sys.fn_hadr_backup_is_preferred_replica does not work correctly after you have CU7 for SQL Server 2012 SP1 installed http://support.microsoft.com/kb/2918791

AlwaysOn--Backup Preference的更多相关文章

  1. 跟踪数据库中执行时间超过1.5秒的语句及SP,导入数据库

    跟踪 --============================================================================ --新建两个目录 D:\InOut\ ...

  2. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  3. 如何在没有域的环境中搭建AlwaysOn(二)

    对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 上篇博客 ...

  4. 如何迁移Alwayson AG

    Windows cluster要求同一个cluster中的所有windows版本都是相同的,这样就出现一个问题,当我们要将对windows进行升级时,(例如从windows 2008 R2升级到win ...

  5. AlwaysOn可用性组测试环境安装与配置(二)--AlwaysOn配置(界面与T-SQL)

    四.AlwaysOn配置 1.开启AlwaysOn高可用性功能. 1.1.开启Server01的可用性组 1.2.需要重启服务:属于SQL server群集节点的服务,需要通过故障转移界面重启 1.3 ...

  6. AlwaysOn可用组基础知识

    AlwaysOn可用组概念 AlwaysOn作为SQL Server2012新功能,其目的主要为了替代镜像功能. AlwaysOn拥有镜像的同步和异地容灾功能,并能在镜像的基础上实现一对多的镜像副本同 ...

  7. SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题

    这是上周遇到的一个案例:对已有的硬件进行升级而引发的问题,期间还触发了一个比较严重的BUG,可谓多灾多难:不过值得庆幸的是,在一连串连锁问题出现的时候,并没有出现人工操作失误(这往往是在处理故障中风险 ...

  8. Alwayson+Replication

    本文将介绍如何实现Alwayson + Replication ,通过AlwaysOn实现Publication database的高可用性,使Publication database在failove ...

  9. 【转】SQL Server 2012 配置AlwaysOn(三)

    转载自:http://www.cnblogs.com/lyhabc/p/4682986.html 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http:/ ...

随机推荐

  1. 基于ruby的watir自动化测试 笔记一

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  2. 通过dubbo暴露接口调用方法,及基于zookeeper的dubbo涉及配置文件

    现在很流行的Dubbo很多朋友都听说过吧,最近我也在看这方面的东西,分享先我的心得笔记. 先说说我们团队要做的项目框架,很简单重在实现基于zookeeper的dubbo注册. 框架:springmvc ...

  3. 如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)

    客户端js无需任何专门设置,使用通常的ajax调用即可: $.ajax({ url: '跨域URL', type: 'get', dataType: 'json', success: function ...

  4. 13、系统集成项目经理要阅读的书籍 - IT软件人员书籍系列文章

    系统集成项目经理主要对弱电等项目负责.一般包括计算机网络系统,计算机设备系统,智能楼宇,机房建设等.在软考中,系统集成项目经理放在了中级,这个只能说明系统集成项目经理需要的经验没有高级信息系统项目管理 ...

  5. 使用Web.Config Transformation配置灵活的配置文件

    发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常常有发布的需求,就需要常常修改web.config文件,这往往是一件非常麻 ...

  6. SQL Server(八)——触发器

    触发器是一类特殊的存储过程,在对表update,insert或delete语句时自动执行, 没有参数,没有返回值: 一.触发器类型 1.for触发器 在动作执行之后触发(增删改执行完成后,触发器中的代 ...

  7. 【密码】Oracle用户密码系列

    [密码]Oracle用户密码系列 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  8. 1、Hadoop的伪分布式部署

    伪分布式模式搭建:   1.环境准备 (1)主机名(root用户) # vi /etc/sysconfig/network HOSTNAME=hadoo1 (不要用下划线) (2)创建普通用户cong ...

  9. Java设计模式 - 适配器模式

    概念: 将一个类的接口,转换成客户期望的另一个接口.适配器模式让原来接口不兼容的类可以在一起工作. 解决的问题: 提供类似于中间人的作用:把原本不兼容.不能一起工作的接口组合在一起,使得它们能够在一起 ...

  10. 烂泥:【解决】修改LVM卷组名重启系统后,无法进入进入系统

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 一台服务器系统已经安装完毕,但是LVM的卷组vg使用的是默认的VolGroup名称,使用起来感觉不舒服,打算把这个卷组名称修改为vg. 先来查看系统中有 ...