【腾讯云的1001种玩法】在腾讯云上创建您的 SQL Server 故障转移集群(5)

2018.7.3 关于HAVIP最近进展:已公布,本文方法仅限学习折腾,不可以在生产环境使用,请使用最新特性HAVIP:

https://cloud.tencent.com/document/product/215/18025


导语

终于到了本系列最后一篇,在上一篇中,我们准备好了各种资源,包括搭建SQL Cluster群集的底层,在发布了前面四篇后我收到了大量反馈,现在集中回答下。

A、 文中采用 iscsi 服务器作为共享存储仅仅是为 demo 效果,但是生产环境绝不推荐使用 IAAS 层面的 iscsi 服务器,那么究竟什么样的架构才可以相对合理( IaaS 层面的 Guest Cluster 没有绝对合理的架构)呢?我个人建议是这样的,可以采用 AlwayON 来进行搭建 SQL 高可用(这也是从 SQL Server 2012之后就主推的架构),AlwayON (但是同样需要安装 Cluster ,只是不需要再起 SQL Role,在 SQL Server 2016 Always On 不依赖域)可以无存储进行搭建,如果确确实实需要搭建 SQL Cluster ,有什么办法呢?目前来说,国内大部分公有云厂商不支持双挂 NAS 盘的架构, QCloud 实际上底层支持,但是这同样需要一定的 level (钱)才可以支持这种特殊配置,据我所知,目前客户群体中不超过两位数。

B、 那既然 SQL Servr 2012 之后不推崇 SQL Server Failover Cluster 了,为毛你还要写 SQL Server Failover Cluste r文章?首先写 SQL Server Failover ClusterC 最主要的目的是给大部分客户在国内云厂商上搭建 Failover Cluster (不单单是 SQL Cluster )提供指引,其次也是为了验证国内云厂商的可折(tu)腾(cao)性,单从这两点来看,目前效果还是不错的,从文章被官方腾云阁收录的情况来看,国内云厂商的容忍度还是比较高的。

C、 后续计划是怎么样的?你们以为就只有 SQL Cluster 吗?看过我个人博客的童鞋应该都知道,我所写的文章基本都是系列文,而且是平行世界炒鸡大的系列文,既然这次系列文反响还不错,那么解下来的尿性应该就是《在 QCloud 上创建您的XXXX》的一大堆博文了,最终会跟我 VMCloud 云平台系列文章做整合,这算是埋下的一个彩蛋,敬请期待。

有些童鞋肯定存在疑问,为什么做一个 SQL Cluster 需要这么多 CLB(VIP),这么多角色有点混乱,现在我们就来捋一捋,涉及到本系列文章其实最重要有三个角色:

  • Cluster
  • DTC

  • SQL Cluster其中 Cluster 作为 DTC 、 SQL 的基础群集服务,自然不用多讲,那么 DTC 与 SQL 之间存在什么关系,我个人是运维集成工程师,并不是专业 DBA ,通过请教 DBA 大师得知, DTC (分布式事务协调器)主要目的是为了实现分布式的事务型任务处理,确保节点间进程通信一致,如果不做 Cluster 的话 DTC 不需要搭建,如果需要做到群集的话, DTC 就是必要条件之一,当前环境只存在一个 SQL Cluster ,默认选择第一个(也是唯一一个) DTC 实例作为分布式实例(为确保群集完整,这是 SQL Server 2008 之后才有的验证)。好了,话痨了这么久,现在上正菜,涉及架构及相关网络如下:
    编号服务器名称生产IP存储IP心跳IP对外VIP1Q-DC01192.168.108.188无无2Q-SG01192.168.108.20610.11.11.231无3Q-SQL01192.168.108.25410.11.11.10.10.10.2ClusterName 192.168.108.994Q-SQL02192.168.108.11410.11.11.10.10.10.234SQLClusterName 192.168.108.99
  • 与 ClusterIP 高可用部署一样,这里也需要采用脚本方式(见上一篇)进行判断是否需要切换,记得把反向区域创建好,避免 nslookup 出现解析错误:

2.在 SQL 01、SQL 02 安装 DTS 角色:

3.确认 SQL01、SQL02 介质到位,初始化两个节点的数据盘(我们将 SQL 主程序安装在数据盘上,避免出问题),开始进行安装:

4.点击群集管理器将 SQLData01 进行脱机删除(上一篇主要为了测试将共享存储进行转换成 CSV 测试转移):

5.点击 SQLServerSetup 安装程序,切换到安装:

6.第一个节点(Q-SQL01)点击新的群集安装并输入 License :

7.一路点到安装故障转移群集规则检测,默认会有群集警告(前篇介绍过由于 virio 驱动):

8.功能目录、实例根目录统一选择输入数据盘路径:

9.输入之前配置好的群集名称及输入实例名称:

10.在检查群集资源页上下一步(由于存在仲裁盘及默认 cluster 这里的 SQL 组不可用是正常的):

11.在群集磁盘页面选择 SQL Data01 作为 SQLCluster 共享存储:

12.配置管理账户(这里选定域管理,后面再添加 SQLAdmin 作为管理账户,建议生产环境直接使用 SQLAdmin 域账户作为管理账户):

13.为确保管理遍历,这里启用 SA 账户:

14.确认配置后开始安装:

15.完成搭建,检查群集状态:

16.完成第一个节点的创建后,打开群集管理器,点击角色——选中 SQL Server 右键——选择添加资源——分布式事务处理协调器来添加 DTC 进行事务处理:

17.检查分布式事务处理协调器是否状态正常,正常后对 SQL01 进行重启下。

18.登录 SQL02,打开安装并选择:

19.一路下一步就会识别到群集并进行安装:

至此,完成群集搭建完成,如果应用要使用调用可以直接采用 q-sqlcluster01.q-vmcloud.com(192.168.108.68) 进行访问,当一个 SQL 节点挂了后 Cluster 就会切换到另外一个节点(这里会存在停机时间1~2s),如果要实现没有停机时间的群集,可以采用目前推荐使用的 AlwayOn 或者直接采用 PaaS 级别的 CDB (底层其实也是 AlwayOn ),效果如下:

模拟切换:

切换过程中:

切换完成:

关于如何连接该群集实例 及 安全相关:

  • 直接使用SQL Server Manager Stuio链接,注意使用SQLCluster VIP:192.168.108.68进行链接
  • 连接后先添加一个SQL管理员到登录名中并指定相关权限

下批系列预告:

将放出更多基于QCloud的微软架构文章

相关推荐

【腾讯云的1001种玩法】在腾讯云上创建您的SQL Server 故障转移集群(4)

【腾讯云的1001种玩法】在腾讯云上创建您的SQL Server 故障转移集群(3)

【腾讯云的1001种玩法】在腾讯云上创建您的SQL Server 故障转移集群(2)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

Linux的IPC命令

进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程...

812
来自专栏VMCloud

【腾讯云的1001种玩法】在腾讯云上创建您的SQL Server 故障转移集群(3)

在腾讯云上创建您的SQL Cluster(1) 和 腾讯云上创建您的SQL Cluster(2) 的两篇文章中我们介绍了如何在QCloud标准化的搭建一套域环境...

4420
来自专栏Linyb极客之路

通用型系统架构设计

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总...

1183
来自专栏xingoo, 一个梦想做发明家的程序员

Nodejs·进程

之前对这部分的内容很感兴趣,没想到读起来有点晦涩,还是因为对服务器的知识不是很了解。   说道服务器一般人都会想到tomcat或者Jboss或者weblo...

16510
来自专栏java思维导图

什么是REST架构?

REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。随着 REST架构成为...

772
来自专栏微服务生态

Kafka之Consumer获取消费数据全过程图解

这篇文章是作为:跟我学Kafka源码之Consumer分析 的补充材料,看过我们之前源码分析的同学可能知道。 本文将从客户端程序如何调用Consumer获取到...

632
来自专栏开源项目

SSM(十一) 基于 dubbo 的分布式架构

现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的SSM项目来让第一次接触的同学能快速上手。 浅谈分布...

2936
来自专栏VMCloud

【腾讯云的1001种玩法】在腾讯云上创建您的 SQL Server 故障转移集群(4)

在腾讯云上创建您的 SQL Cluster(3) 和在腾讯云上创建您的 SQL Cluster(2) 的两篇文章中我们准备好了 iscsi 存储,并让两台 SQ...

6610
来自专栏大魏分享(微信公众号:david-share)

深度分析:Istio替代Spring Cloud的合理性

一、现有微服务架构 微服务本质上是分布式架构、分布式应用、分布式计算。 分布式计算可以带来的好处有:性能、可靠性、弹性、可扩展性、可用性、稳健性。 而从应用开发...

9028
来自专栏bdcn

JAVA全栈开发微服务架构模式 顶

对于微内核的架构而言主要是把服务进行拆分,每个微服务都是可以独立运行的,所以我们采用Nutz+嵌入式Jetty的模式进行搭建,这样直接在命令行下就可以独立启动了...

852

扫码关注云+社区