Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn

注意:微软官方并未正式宣布Lync2013能够使用Sql Server的AlwaysOn高可用性技术,本文只是采取一些旁门左道取巧的办法达到该目的,其实施完成后还存在一些问题和风险,搭来稳定还好,如果真出了啥岔子……阅读本文也需要有一定的Lync2013实施经验,因为其中省略了一些大家熟知的步骤(主要是懒得截图凑篇幅,如果有步骤不明白可以留言交流)

目前据我们所知,Lync的后端SQL数据库高可用只能有两种办法

1、SQL clustering

2、SQL mirroring

(Database software support in Lync Server 2013

https://technet.microsoft.com/en-us/library/gg398990.aspx

前者需要额外的共享存储,后者需要一台额外的见证服务器。这样一来在中小型高可用架构当中,就会涉及到成本问题。

Alwayson是个好功能,靠着从DAG学来的经验(然而并没有心跳线!?),用事务日志级别的复制保持主副本和辅助副本的同步,只需要使用到本地磁盘;成本低廉。(关于alwayson的原理,如果没听说过,或者跟它不熟,请先参考以下文档:

https://msdn.microsoft.com/zh-cn/library/hh403414.aspx

http://blog.csdn.net/dreamyuzhou/article/details/18989543

早在2014年的Lync conference上,Lync产品组的人就说过alwayson功能将会添加对Lync的支持,然而时至今日……依然没有官方声称可以了。

于是某天实在忍不住了,仔细想了想其到底是哪里不支持。做了一些分析如下:

其实这是一个先有鸡后有蛋的问题,首先AlwaysOn就跟Exchange的DAG一样,你得先有数据库,然后才能有DAG组。那么同样的,在安装好两台SQL Server之后,我得先建立数据库,然后才能对这些数据库进行AG组的操作。

而且,AlwaysOn就算搭建好了,那么它只提供一个侦听器供调用,这个侦听器的意义是,你只能对现有AG组里的数据库进行增删读写,而不能跳出去,通过这个侦听器来创建数据库。

那么问题来了,Lync 2013在发布拓扑的时候,就开始执行创建数据库的操作了。那,我在发布拓扑的时候,后端数据库连接里填的一定是某个单台数据库服务器名或是某个Cluster的名称,而不能是AlwaysOn的侦听器名称。

OK,那将拓扑里的后端数据库改成侦听器名称不就行了吗?问题又来了,拓扑发布了之后,这玩意儿他不让改…除非删除拓扑,即移除当前的中央存储位置。也就是说,我们在Lync拓扑里,先写其中一台SQL,发布拓扑,让它吭哧吭哧创建完需要的库,接下来杀鸡取卵,把创建好的数据库加到AG组里,然后删除部署,删除中央存储位置,重新发布一个拓扑,里面写的是AG组,这样Lync去检查数据库结构的时候发现,咦!数据库都建好了,只需要做做修改就能用了。然后顺利发布新的拓扑,有了新拓扑,再把Lync前端部署掉,测一下客户端连通性。搞定~

好,思路有了。搭个环境试试吧,毕竟问题不会自己跳出来,而是是动手了才能发现的。

环境里一共需要5台机器:屌丝环境,一切从简。

LyncFE.contoso.com    前端

LyncBE-1.contoso.com  后端节点1

LyncBE-2.contoso.com  后端节点2

DC.contoso.com  域控及CA

win7client.contoso.com  客户端

基本配置部分我就不写了,什么起域控啊,起CA啊,这都是基础知识。

我们首先装好两台后端上的SQL Server 2014,注意Sql Server 2014的小版本,如果是老的版本Lync 2013在创建数据库的时候会报未识别SQL版本。

安装完成之后,还得安装WSFC,即故障转移群集服务,不然这个地方无法勾选。

发挥Windows Server 2012 的优势,一台控制整个场~

接着打开故障转移群集管理器,创建群集。注意在验证群集那一步选择不要验证,要记住,咱很穷,没有共享存储卷!

取个名字,配个ip地址,AlwaysOn毕竟依赖WSFC,还是得认真规划一下这一步的选项。

创建完成之后,再打开Sql Server配置管理器,在SQL实例上单击右键 - 属性,选择AlwaysOn高可用性,然后勾上“启用AlwaysOn可用性组”,两个后端节点都得勾一下。

创建一个共享文件夹,供两个后端节点在创建AlwaysOn当中进行初次数据文件同步,在共享权限里把两台SQL服务器的计算机账户直接加进去给FullControl,免得后面麻烦。

接下来我们打开LyncBE-1即第一台节点上的SQL 控制台,创建一个临时的数据库,并且确认这个数据库的选项里头,恢复模式为“完整”

然后对其进行一次“完整”备份

备份完成之后,开始创建alwaysOn的可用性组,取个名字叫SqlAG好了。

此时我们的临时数据库已经满足了可用性组的先决条件,直接勾选,然后下一步。

这里我们将第二个节点LyncBE-2添加进来,它会自动识别为辅助角色。至于后面的可读辅助副本是啥意思,大家可以去参考文章一开头给出的AlwaysOn文档。

选择最后的侦听器选项卡,就直接创建一个AG组的侦听器,端口号就写SQL默认的端口1433好了,记得为其规划一个ip地址。

创建完AG组之后,开始数据同步,初次同步通过我们最开始建立的共享位置来完成。填入共享路径。

woops,最后一步报错了,原来是临时数据库的存放文件夹必须对应辅助副本节点上的相同位置,换句话说,我在LyncBE-1上的C:\sqldata文件夹下放的数据库,在LyncBE-2上也必须有一个C:\sqldata文件夹。

默认共享直接创建一个C:\sqldata,再来一次验证。

验证通过!

创建完成!在SQL控制台面板中,右击可用性组的名字,选择显示面板,是不是像看到了DAG的那个面板一样亲切?

手动验证下故障转移试试?没问题。

OK,那到这里,我们首先通过一个测试数据库建立起了AlwaysOn可用性组。

下一节,我们就聊聊怎么一步步的偷梁换柱,杀鸡取卵,把一个屌丝架构的Lync 2013搭在这个高可用性组上面。

不得不说,在win2012R2下面用SQL 2014建立AlwaysON真是简单,如果是在2008R2的操作系统上面搭这个,你需要额外打上以下几个补丁,而且每一个都需要你留个Email然后等它发到你邮箱里…

时间: 2024-10-11 01:51:28

Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn的相关文章

Lycn 2013 with SQL AlwaysOn 「三」后续问题

在前面两节当中,我们杀鸡取卵,偷梁换柱,终于迎娶白富美(AlwaysOn),走向--打住,没测呢还. 对,我们没有进行后端高可用的测试,如何测? 在客户端连接着的情况下,关闭一台后端数据库节点,然后看客户端有没有反应. Exchange 2010切DAG节点都要断一下重连咧(手动切Active和Passive是不会的,你关掉一台全是Active副本的MBX试试?),你一嫁接起来的Lync关后端节点何德何能客户端会没反应?试试呗 我们关掉目前的主副本,同时观察客户端的反应情况,看到右边窗格里一水的

Lycn 2013 with SQL AlwaysOn 「二」偷梁换柱装Lync

上一节里,我们部署好了两台Lync后端数据库节点的AlwaysOn可用性组.这一节才是重头戏,怎么把Lync搭在上面. 再来梳理一下最开始思考好的思路: 1.安装Lync先决 2.AD准备.配置DNS.配置用户和组 3.管理工具安装 4.发布拓扑 ---- 此时后端数据库指向LyncBE-1,发布拓扑后去观察其数据库创建结构,确认Lync所需数据库全部创建完毕. 5.将Lync创建的数据库加入到可用性组里,并且完成初始同步. 6.在拓扑管理器里删除部署,发布空拓扑,移除中央存储位置. 7.创建新

LibreOJ #2013. 「SCOI2016」幸运数字

二次联通门 : LibreOJ #2013. 「SCOI2016」幸运数字 /* LibreOJ #2013. 「SCOI2016」幸运数字 树链剖分 + 线段树 + 线性基合并 没什么可说的 对原树进行树链剖分 然后建线段树 每个区间维护一段线性基 每次暴力把一段插入另一段中 最后线性基求最大即可 注意线性基求最大时一定是倒着枚举的 */ #include <cstdio> #include <iostream> const int BUF = 12312334; char Bu

【sql: 联系题26 ,27】查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,查询课程名称为「数学」,且分数低于 60 的学生姓名和分数

题目:26:查询平均成绩大于等于 85 的所有学生的学号.姓名和平均成绩 分析:这个应该是根据student 进行分组 group by 再根据 having >= 85 进行过滤,然后在关联student 信息表,拿到学生的基本信息 SELECT student.id, student.stdentname,AVG(student_score.score) AS a FROM student_score, studentWHERE student.id = student_score.stud

大数据和「数据挖掘」是何关系?---来自知乎

知乎用户,互联网 244 人赞同 在我读数据挖掘方向研究生的时候:如果要描述数据量非常大,我们用Massive Data(海量数据)如果要描述数据非常多样,我们用Heterogeneous Data(异构数据)如果要描述数据既多样,又量大,我们用Massive Heterogeneous Data(海量异构数据)--如果要申请基金忽悠一笔钱,我们用Big Data(大数据) 编辑于 2014-02-2817 条评论感谢 收藏没有帮助举报作者保留权利 刘知远,NLPer 4 人赞同 我觉得 大数据

技术人员应对「考核」的一些思考

来这个公司实习已经半年多了,在年前经历了一次年终考核,最终对我的工作的评级是 C(及格-符合当前职位的工作),让我不禁思考自己在项目中的一些工作的问题,为什么我是C?是我做的不够好吗?或者说在哪里做的不够好? 从考核流程来看,基本上是 CTO 与 Team Leader 对团队成员的「年终总结与次年工作计划」进行Rank,个人狭义的认为「考核」的主要支持材料就是这个总结了. 他山之石 其他公司是怎么考核的呢?说实话我也不太清楚,刚入行,只能通过搜索了解,在网上了解到有以下几种:发精品博客.发论文

非关系型数据库中的「关系」实现

Knowledge Dependence:阅读文本前,你需要了解基本的关系型数据库与非关系型(NoSQL)数据库的概念和区别,以及 MongoDB(Mongoose)的简单实践. ? 这两三年来,伴随着大数据(Big Data)的空前火热,无论是在工程界还是科研界,非关系型数据库(NoSQL)都已经成为了一个热门话题. 相比于传统的关系型数据库,非关系型数据库天生从理念上就给数据存储提供了一种新的思路.而在实际应用中,它往往更轻巧灵活.扩展性高,并且更能胜任高性能.大数据量的场景. 值得一提的是

从「集装箱」思考Docker风潮

从「集装箱」思考Docker风潮 -- Docker潮流下的赢家策略 By 高焕堂 (台灣Docker聯盟 主席) 2015/02/20 前言 在许多革命性转折里,经常出现集装箱的身影:它就像幸运草一般,总是带来许多幸福和财运.现在Docker风起云涌,再现集装箱身影,如果开放视野.大力支持它,持续发挥它的潜能和力量,则幸运草就会出现在我们身旁了. 由于Docker集装箱带来的商机,其最直接的受益者是软件管理者(或称维运者),例如软件测试工具业者.测试人员等.因此在今天,不论您是开发者或是维运者

大數據的「真面目」及其運用

大數據的定義 近年來,人們對「大數據」的關注度日益提高.這都歸因於麥肯錫全球研究院在2011年發布的研究報告.該報告認為人們即將迎來一個利用規模大到超出現有數據處理系統能力的巨量信息時代,並暗示戰略性地利用這些信息數據,就有可能產生巨大的商業機會. 那麼大數據到底是什麼呢?從字面來看,它指的是以現有信息處理技術無法應對的龐大信息量.而實際上,當我們將儲蓄了各種服務的使用信息數據與用戶的屬性信息相結合,並在這些信息數據發生時能夠全量獲取,就被稱做大數據. 典型的是互聯網服務的利用數據.另外還包括零