SQL Server Alwayson创建代理作业注意事项

介绍

Always On 可用性组活动辅助功能包括支持在辅助副本上执行备份操作。 备份操作可能会给 I/O 和 CPU 带来很大的压力(使用备份压缩)。 将备份负荷转移到已同步或正在同步的辅助副本后,您可以使用承载第一层工作负荷的主副本的服务器实例上的资源,您可以创建主数据库的任何类型的备份。 也可以创建辅助数据库的日志备份和仅复制完整备份。

一、概念

1.辅助副本上支持的备份类型

  • BACKUP DATABASE :在辅助副仅支持数据库、文件或文件组的仅复制完整备份。 请注意,仅复制备份不影响日志链,也不清除差异位图。
  • 辅助副本不支持差异备份。
  • BACKUP LOG 仅支持常规日志备份(辅助副本上的日志备份不支持 COPY_ONLY 选项)。
  • 若要备份辅助数据库,辅助副本必须能够与主副本进行通信,并且状态必须为 SYNCHRONIZED 或 SYNCHRONIZING。

2.配置运行备份作业的位置

在辅助副本上执行备份以减轻主生产服务器的备份工作负荷非常有好处。 但是,对辅助副本执行备份会显著增加用于确定应在何处运行备份作业的过程的复杂性。 要解决这个问题,请按如下所示配置备份作业运行的位置:

  • 配置可用性组以便指定要对其执行备份的可用性副本。
  • 为承载作为执行备份候选的可用性副本的每个服务器实例上的每个可用性数据库都创建编写了脚本的备份作业。

3.备份首选项

优先辅助副本
指定备份应在辅助副本上发生,但在主副本是唯一联机的副本时除外。 在该情况下,备份应在主副本上发生。
这是默认选项。

仅辅助副本
指定备份应该永远不会在主副本上执行。 如果主副本是唯一的联机副本,则备份应不会发生。

主副本
指定备份应该始终在主副本上发生。 如果您需要在对辅助副本运行备份时存在不支持的备份功能,例如创建差异备份,此选项将很有用。

任意副本
指定您希望在选择要执行备份的副本时备份作业将忽略可用性副本的角色。请注意,备份作业可能评估其他因素,例如每个可用性副本的备份优先级及其操作状态和已连接状态。

注意:如果您计划使用日志传送为可用性组准备任何辅助数据库,请将自动备份首选项设置为Primary,直到准备好所有辅助数据库并将其加入可用性组。没有强制的自动备份首选项设置。 对此首选项的解释取决于您为给定可用性组中的数据库撰写备份作业脚本的逻辑(如果有)。 自动备份首选项设置对即席备份没有影响。

二、判断语句

若要为某一给定可用性组考虑使用自动备份首选项,则对于承载备份优先级大于零 (>0) 的可用性副本的每个服务器实例,您需要为该可用性组中的数据库的备份作业编写脚本。若要确定当前副本是否为首选备份副本,请在备份脚本中使用 sys.fn_hadr_backup_is_preferred_replica 函数。如果当前实例上的数据库位于首选副本上,则返回 1否则返回 0。 通过对查询此函数的每个可用性副本运行判断脚本,可以确定哪个副本应运行给定的备份作业。

If sys.fn_hadr_backup_is_preferred_replica(@dbname)=1
BEGIN
BACKUP DATABASE @DBNAME TO DISK=<disk>
END
ELSE
PRINT(‘当前副本不是备份首选副本‘)

在所有可能执行的备份的副本上面创建相同的备份语句,在发生故障转移时,无需修改任何脚本或作业

三、创建代理作业 

注意:

1.这里的数据库要选择“master”,如果当前的alwayson配置了只读路由而你这里选择的是可用性数据库的话那么在辅助副本上面创建的作业会执行失败,因为只读路由连接辅助副本可用性数据库需要readonly连接属性。创建非备份的其它作业也是一样。

2.当前我的备份脚本放在master数据库中,如果是执行其它数据库下的脚本也是一样,这里需要将数据库名带上。

3. 如果if判断这里指定的是一个非可用性组的数据库返回的结果同样是1,因为对于实例来说非可用性的数据库也是备份的首先副本。

判断是否是主副本命令

If sys.fn_hadr_is_primary_replica (@dbname) =1
BEGIN
    PRINT(‘1‘)
END
ELSE
    PRINT(‘当前副本不是主副本‘)

备注:判断是否是主副本命令和判断是否是备份主副本命令不一样,如果指定的数据库是非可用性组数据库判断是否是主副本返回的结果是NULL,而判断是否是备份主副本返回的是1。

总结

1.在可用性组的主数据库或辅助数据库上不允许 RESTORE 语句。

2.备份首选项只是给出一个备份的判断选项,无论你手动在哪个副本上备份都可以,唯一的限制就是辅助副本的完整备份只支持“复制”备份。由于辅助副本只支持仅复制备份,所以辅助副本无法进行差异备份。要进行差异备份那么首先备份副本应该选择主副本。

3.无论是在主副本上备份日志还是在辅助副本上备份日志最终都会截断所有副本上的日志链。


备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

时间: 2024-11-01 12:47:46

SQL Server Alwayson创建代理作业注意事项的相关文章

管理SQL Server AlwaysOn(1)——基础维护

本文属于管理SQL Server AlwaysOn系列文章 前言: 前面系列已经介绍了SQL Server AlwaysOn的知识点.安装演示及注意事项等.但是这并不是终点,更多的反而是起点.就像不能生了孩子就不管,你还得养(管理).作为DBA,更多的工作内容恰恰就是管理AlwaysOn.所以这里单独列出一个系列介绍SQL Server AlwaysOn的管理.本系列沿用从0开始部署基础的AlwaysOn 的环境. 在这个系列中,准备讲述以下内容: 管理SQL Server AlwaysOn(1

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 网上的 AlwaysOn可以说是非常的多,也可以说是非常的千篇一律,而且很多都是搭建非常顺利的,没有坑的,难道搭建 AlwaysOn真的可以这麽顺利吗?????? 由于公司使用的是最新的Windows Server 2012 R2,网上用的都是Windows Server 2008 R2 ,2012 R2和2008 R2在故障转移集群界面菜单和AD 服务管理工具 已经有较大变化,有一些步骤跟Windows Server 20

SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?

本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Server AlwaysON从入门到进阶(1)--何为AlwaysON? SQL Server AlwaysON从入门到进阶(2)--存储 SQL Server AlwaysON从入门到进阶(3)--基础架构 SQL Server AlwaysON从入门到进阶(4)--分析和部署Windows Ser

管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控

本文属于管理SQL Server AlwaysOn 系列文章 前言: 前面几节提到了如何对AlwaysOn做常规管理,这一节和接下来的一节专门对"监控"进行解释和演示.管理和监控这两个词在很多时候是混淆的,但是我们大概也可以区分出来,比如我做备份,算管理,对错误.异常进行响应这也是管理,但是对错误.异常的捕获和通知DBA这就是监控了,而且监控有时候是不需要进行干预的,比如我监控磁盘空间,当空间充足的时候,我可以不管. 在日常的DBA工作中,我本人对监控的重视程度远大于所谓的管理,因为有

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

原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式介绍怎麽搭建AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的操作,先不要用域用户DCADMIN登录 1.两个集群节点都需先安装.NET Framework

翻译(十五)-----通往1级楼梯:什么是“SQL Server AlwaysOn”

通往1级楼梯:什么是“SQL Server AlwaysOn” Perry Whittle,2016 / 02 / 24(首次公布:2014 / 09 / 24) 该系列 本文是系列的一部分:楼梯楼梯AlwaysOn AlwaysOn是一套复杂的技术,常被误解.在这楼梯你将学到的AlwaysOn技术,他们如何适应高可用的堆栈,如何利用好他们. 欢迎来到第一级阶梯”系列中的SQL Server AlwaysOn”.在这1级的文章,我们会发现技术“在”.“虚拟服务器”(FCI)和“Windows服务

翻译:到AlwaysOn级别1的楼梯:什么是“SQL Server AlwaysOn”?

到AlwaysOn级别1的楼梯:什么是"SQL Server AlwaysOn"?佩里·惠特尔,2016/02/24(首次出版:2014 /09/24)该系列这篇文章是楼梯系列的一部分:通往AlwaysOn的楼梯AlwaysOn是一套复杂的技术,经常被误解.在这个阶梯中,您将了解AlwaysOn技术,它们如何适应高可用性堆栈,以及如何充分利用它们.欢迎来到"SQL Server AlwaysOn"系列的第一个级别.在这一级别的文章中,我们将发现技术"Alw

SQL Server 2008创建数据库

1.数据.数据库.数据管理系统基本概念: 数据:人类有用信息的符号化表示. 数据库:按照数据结构来组织.存储和管理数据的一个仓库. 数据库管理系统(DBMS):可维护.存储并为应用系统提供数据的软件系统(软件+数据库+数据管理员). 可以客观描述的事物被称为"实体",不同的数据体现了不同的实体.数据每一行(Row)对应一个实体,被称为"记录(record)",每个输入项称为"列"(Column),如编号,姓名,学号等.数据"表"

SQL Server AlwaysON从入门到进阶(2)——存储

本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节讲解关于SQL Server 存储方面的内容,相对于其他小节而言这节比较短.本节会提供一些关于使用群集或者非群集系统过程中对存储的利用建议.当然,重点还是集中在对于一个标准的AlwaysOn可用组配置过程中,对存储的选择和配置上面. AlwaysOn的部署首先建立在一个Windows Server Failover Cluster(WSFC)上.并且每个服务器通常有一个独立的SQL Server实例.另外,每个服务器