SQL-Server_故障转移集群

SQL-Server故障转移

  • 故障转移群集简介
  1. 故障转移群集功能

故障转移群集(Failover Cluster)是 Windows Server 下的群集技术的全称。它指的是一组协同工作的独立服务器,通过物理链路和软件进行连接,以相应的技术手段来实现更好的服务可用性:当群集内某一台物理服务器出现故障时,另一台服务器开始接管故障服务器的服务(此转移的过程被称为故障转移过程)。群集角色会主动监测群集内的主机工作是否正常,通过故障转移,最终用户所能感知到的停机时间将会非常短暂。尽管群集多数是由两台以上的独立服务器组成,但在逻辑上,它们被认为是一个紧密的整体。

故障转移群集在 Windows Server 下是一项覆盖面很广的技术,其不仅可以提升 Hyper-V 的服务可用性,还可以将以下几个重要角色添加到故障转移群集中:

  • DFS 命名空间服务器:命名空间是一个组织中文件共享的虚拟视图。当用户查看命名空间时,共享看似驻留于单个硬盘中。用户无需了解承载数据的服务器名称或文件共享,即可导航命名空间。
  • DHCP 服务器:DHCP 服务器自动提供客户端计算机和其他基于 TCP/IP 并具有有效 IP 地址的网络设备。
  • 虚拟机:虚拟机是在物理计算机上运行的虚拟化的计算机系统。多个虚拟机可运行在同一台计算机上。关于虚拟机的故障转移群集也是本书的重点之一。
  • Hyper-V 副本代理:故障转移群集可以使用 Hyper-V 副本代理加入具有 Hyper-V 副本的虚拟机复制。每个故障转移群集上只能配置一个 Hyper-V 副本代理。通过Hyper-V 副本代理,使得 Hyper-V 副本可以在故障转移群集中使用。
  • 文件服务器:文件服务器的群集可以为用户提供基于文件共享的高可用实例。
  • 通用服务、脚本、应用程序:可以将本不是用于在故障转移群集中运行的服务、脚本、应用程序配置高可用性。
  • Exchange 服务器:在早期的 Exchange 中,如 Exchange2007,即采用的故障转移群集技术,最新的 Exchange2010 2013 所采用的 DAG 技术则采用了故障转移群集组件提供的有限的一部分群集功能。DAG 使用群集数据库、群集心跳(Cluster heartbeat)及文件共享见证(File Share WitnessFSW)功能
  • SQL ServerSQL Server 是一套数据库系统,通过故障转移群集,可为 SQL Server 带来高可用性,使用户免遭服务中断的影响。
  1. 什么是高可用性

高可用性(High_Availability)简称 HA,其不限制具体采用的技术,只要利用到了"未雨绸缪"的设计思想,均算是高可用性的一种。如正常的系统备份、硬件级别的离线冷备份、硬件级别在线热备份、异地灾备、软件群集技术,这些均算是高可用性的范畴内。唯一不同

的是,由于所采用的技术不同,其所提供的可用性级别不同,出现故障时的转移时间不同。

  1. 故障转移群集优势

故障转移群集的优点正如其名称一样,通过转移故障,为最终用户带来自动化的,中断时间相对较短的高可用性。总的来说,故障转移群集可以实现以下几个目标:

  • 适应计划内的停机维护,通过故障转移群集,可以在设定的时间范围内对群集内的一部分服务器进行停机维护,同时可以保障业务的连贯性。使用故障转移群集,可以在白天进行一些维护工作,而无需等到夜深人静时加班去做这些操作。
  • 减少计划外的停机时间,故障转移群集通过自有的算法机制,自动接管意外停机服务器上的服务,减少由于硬件或软件的故障造成的停机,对业务连贯性的影响,维护整套系统的高可用性。

由此可以看出,故障转移群集是一种为提供更高可用性而存在的技术。在 Windows Server 2012 R2 中,故障转移群集支持最多 64 个节点,而在 Windows Server 2008 R2 中,仅仅支持 16 个节点。在数据中心越来越庞大的今天,16 个节点的限制显然是捉襟见肘的,要满足用户的需求,升级系统势在必行。同时,在 Windows Server 2012 R2 中,每个群集中的最大虚拟机数量也从 Windows Server 2008 R2 中的 1000 个提升到了 8000 个。

  1. 故障转移群集的缺点

故障转移群集可以为企业带来更高的可用性,相应的,为了搭建故障转移群集需要付出一部分代价方可实现。

  • 相对较低的资源利用率,由于希望当故障发生时,可以有备用的服务器随时转移故障,接管服务,因此群集内的所有服务器不可能会满负荷运行,至少要预留一部分资源,以完成可能会发生的故障转移的操作。
  • 增加响应时间,由于最终用户不是直接和目标服务器通信,而是由一套群集机制来负载和分流,因此对于维护故障转移群集本身,这需要消耗一部分系统资源去实现,相应的,会增加一些系统响应时间。
  • 额外的成本,由于使用故障转移群集需要投入冗余的硬件成本和共享存储,因此在设备投资上会超越非高可用架构的设计规划。
  • 相对较高的技术要求,由于使用了冗余的架构设计,因此需要 IT 管理人员的知识面要更加广泛。
  1. 故障转移群集的网络要求

故障转移群集要求网络存在冗余,一般实际部署中,单台物理服务器会使用两条网线,其中一条接入生产网络,另外一条作为心跳线(heart line),为群集之间互相验证存活的手段。需要注意的是,心跳线在 Windows Server 2012/2012 R2 中并不是必要条件。故障转移群集建议的是网络链路的"最好"存在冗余,至于冗余的线路是承载生产网络还是单纯作为心跳使用,并没有严格要求。

如果希望业务能够很好的分层处理,在规划服务器虚拟化或微软私有云之初,就需要对故障转移群集的网络部分进行统筹设计。任何方案都类似,当架构成型后,再做架构方面的变动,就会牵扯到很多环节,继而有可能影响业务的持续可用。

  • 搭建共享存储服务器

如果希望使用故障转移群集,则必须要为故障转移群集准备共享存储,共享存储可以使用直连存储、iSCSI 存储、光纤存储中的一种。关于三种存储的优缺点,以及所采用的硬盘所带来的性能差异可参考本书前面的章节。如果企业预算紧张或在测试环境中希望对群集的功能进行验证,则可以使用 Windows Server 2012 R2 自带的角色功能来搭建"iSCSI 目标服务器"

  1. iSCSI 目标服务器的优势

作为 Windows Server 2012 起自带的一项系统功能,"iSCSI 目标服务器"最大的优势是搭建简单,应用方便。在 Windows Server 2008 R2 时代,如果希望搭建虚拟化的共享存储,一般会采用"Openfiles"的类 Linux 操作系统来实现,Openfiles 配置共享存储的操作步骤较多,设置选项也较为复杂,相比我们熟知的 Windows Server 系统,其部署难度和管理难度都超出预期。Windows Server 2012 R2 提供了简便快捷的"iSCSI 目标服务器",将部署和运维共享存储的难度进一步降低。

另一方面,Windows Server 2012 R2 "iSCSI 目标服务器"所生成的存储格式为 vhd vhdx,在 Windows Server 2012/2012 R2 操作系统中,这种文件格式极易被编辑和拷贝、增减、维护。这一点也是该功能的显著优势。

 

  • 环境介绍:

       操作系统:2012R2

       软件环境:ISCSI/DNS/AD/SLQ-Server2014

       说明:三台服务器,其中一台AD(AD也做共享磁盘),两台sql,

       实现目标:双台sql使用共同的存储,并在一台失去联系后,另外一台会自动顶上。

  • 安装准备:
  • 磁盘准备:

需要4个磁盘卷:仲裁盘、群集共享卷、MSDTC、可用磁盘卷(数据存储盘) 

通过isci服务来创建上述的四个磁盘卷。 域控服务器不需要关联这四个磁盘卷。

3个服务器:

节点1:192.168.1.130    192.168.192.130

节点2:192.168.1.131    192.168.192.131

DC:192.168.1.136

故障转移群集:192.168.1.137

分布式事务ip:192.168.1.138

数据库集群ip:192.168.1.139

 

只有两个节点关联磁盘,域控服务器不关联磁盘。

 

新建4个isci磁盘卷

 

本次采用域控服务器下的磁盘创建isci虚拟磁盘。配置好本机的ip。

如果是实际环境建议用存储来创建isci虚拟磁盘。

  • 首先在域控服务器上安装isci服务。

选择添加角色和功能。

SQL-Server_故障转移集群_第1张图片

点击下一步

SQL-Server_故障转移集群_第2张图片

下一步

SQL-Server_故障转移集群_第3张图片

下一步

选择如图所示,文件和isci服务下的isci目标服务器。

SQL-Server_故障转移集群_第4张图片

点击下一步

SQL-Server_故障转移集群_第5张图片

下一步

SQL-Server_故障转移集群_第6张图片

点击安装

完成安装即可。

新建虚拟磁盘,选择文件与磁盘服务下的iscsi,点击任务,选择新建iscsi虚拟磁盘。

SQL-Server_故障转移集群_第7张图片

选择本地的一块磁盘,用来创建虚拟磁盘。

SQL-Server_故障转移集群_第8张图片

下一步指定虚拟磁盘的名称和描述,名称必须指定。需要创建四个虚拟磁盘。

可以分别命名为 zhongcai、qunji、DATA、MSTDC。其中仲裁大小(2G即可,实际也是2G即可);qunji群集卷( 20G左右,实际指定为100G至200G左右);DATA(实际工作做需要指定1T-2T左右,本次演示,使用25G即可。);MSTDC(20G左右即可)。

SQL-Server_故障转移集群_第9张图片

下一步,指定磁盘大小,并且选择动态扩展

SQL-Server_故障转移集群_第10张图片

下一步,如果没有isci目标,选择新建isci目标

SQL-Server_故障转移集群_第11张图片

下一步,指定名称如:isci

SQL-Server_故障转移集群_第12张图片

下一步,点击添加,选择输入选定类型的值,指定类型为ip,值添加为两个节点的ip地址。

SQL-Server_故障转移集群_第13张图片

SQL-Server_故障转移集群_第14张图片

下一步,

SQL-Server_故障转移集群_第15张图片

下一步

SQL-Server_故障转移集群_第16张图片

点击创建

SQL-Server_故障转移集群_第17张图片

完成。

同理创建其他三块群集盘。

 

子节点添加访问isci虚拟磁盘,在后面加入域之后进行操作即可。

  • 第三步:安装域控服务器

    增加域控服务器

    选择添加功能和角色,选择ActiveDirectory域服务。

    SQL-Server_故障转移集群_第18张图片

    下一步,选择故障转移群集管理

    SQL-Server_故障转移集群_第19张图片

    下一步

    SQL-Server_故障转移集群_第20张图片

     

    完成后点击下一步,直到安装完成。

     

     

     

    安装完成后,会提示提升为域控服务器。点击后,弹出界面如下图所示:

    选择添加新林,指定根域名。

     

    SQL-Server_故障转移集群_第21张图片

    下一步

    输入还原密码:

    *********

    SQL-Server_故障转移集群_第22张图片

     

     

    一直到下一步

    指定NetBIOS域名TRSCLUSTER(这个域名用于之后登陆该域使用,警告可以忽略)

    SQL-Server_故障转移集群_第23张图片

     

     

    先决条件检查

    SQL-Server_故障转移集群_第24张图片

    然后,下一步,最后安装完成后会自动重启计算,重启完成即可。

     

    重启完成后用  域名\Administrator 登录到系统中。

     

    接下来用域管理员登录以后,可以创建一个域账号,然后指定域账号为永不过期,不可修改。并且指定域账号的权限为管理该域。后面会用到该账号。

    如图选择ActiveDirectory用户和计算机

    SQL-Server_故障转移集群_第25张图片

    SQL-Server_故障转移集群_第26张图片

    新建一个域用户

    SQL-Server_故障转移集群_第27张图片

    下一步

    SQL-Server_故障转移集群_第28张图片

     

    指定用户密码永不过期,用户不能更改密码

    这里设置的用户名密码为:trsadmin/*********

    SQL-Server_故障转移集群_第29张图片

    完成

    SQL-Server_故障转移集群_第30张图片

    提升用户权限为domainadmin

    SQL-Server_故障转移集群_第31张图片

    SQL-Server_故障转移集群_第32张图片

    确定

     

    接下来讲DomainAdmin设置为主要组,并且删除DomainUser组。

    SQL-Server_故障转移集群_第33张图片

    SQL-Server_故障转移集群_第34张图片

    最后点击应用确定即可。

    ============================================================================

  • 第四步,将节点加入域
  • 将节点加入域之前,需要先配置节点的ip地址。

    如图节点一ip配置:

    SQL-Server_故障转移集群_第35张图片

    由于使用虚拟机,其中Ethernet0是nat转换网卡,所以配置为私有的ip地址,具体ip网段可以查看虚拟化后生成的网段,然后手动修改。

    注:实体机的时候可以配置一个真是IP再配置一个任意ip即可

    Ethernet1是桥接的物理机网卡状态,所以配置ip地址同物理机一样即可。其中DNS指定为域控服务器的ip地址。

    如图,私有ip地址配置如下所示:

    SQL-Server_故障转移集群_第36张图片

     

    选择高级

    SQL-Server_故障转移集群_第37张图片

    取消如图所示的勾选。

    SQL-Server_故障转移集群_第38张图片

    如图所示禁用TCP/IP上的NetBIOS.

    私有ip配置完毕。

     

    接下来配置公共ip,如下图所示:配置好ipv4的地址即可

    SQL-Server_故障转移集群_第39张图片

     

    接下来指定网卡的顺序。将公共网卡指定为第一位。

    调出菜单栏,选择高级---高级设置

    SQL-Server_故障转移集群_第40张图片

    指定顺序

    SQL-Server_故障转移集群_第41张图片

    两个网卡的ipv6协议最好都取消掉。

    网卡配置完毕后是加入域。

    接下来是将节点加入域

    加入域之前,将两个节点都安装上故障转移群集管理功能。安装方式同添加域服务器时相同,区别是只选择故障转移群集管理即可。

    添加域的方法,选择这台电脑,右键选择属性。

    SQL-Server_故障转移集群_第42张图片

    选择更改设置,选择域,指定域名,点击确定。

    SQL-Server_故障转移集群_第43张图片

    加入域时,需要输入域账号,加入域完成后,需要重启计算机。

    重启完成之后使用之前创建的域管理员账号登录系统

    TRSCLUSTER\trsadmin

    *******登录系统。

    ————————————————————————————————————————————————————————————————————————-——————

    接下来需要添加之前创建的iscsi虚拟磁盘,到节点服务器上

    选择iscsi发起程序

     

    SQL-Server_故障转移集群_第44张图片

    填写目标ip,即最开始创建iscsi服务的服务器ip地址。点击快速连接。

    SQL-Server_故障转移集群_第45张图片

    选择需要连接的目标

    SQL-Server_故障转移集群_第46张图片

    点击连接,完成,然后点击确定。

    添加后,在本地还无法看到对应的磁盘卷。需要通过服务器管理添加。

    选择文件和存储服务,选择磁盘,然后可以看到添加的iscsi虚拟磁盘都处于脱机状态,选中一个磁盘,然后点击联机。

    SQL-Server_故障转移集群_第47张图片

    联机后,选择新建卷

    SQL-Server_故障转移集群_第48张图片

     

    创建卷即可,然后一直下一步,默认直到创建完成为止。

     

    另外一个节点同样处理过程。(备注,另一个节点不需要再做新建卷的操作。直接联机后即可。)

     

  • 第五步:创建群集(在节点服务器)
  • 选择服务器管理---工具---故障转移群集管理器

    SQL-Server_故障转移集群_第49张图片

     

    SQL-Server_故障转移集群_第50张图片

    然后点击创建群集,系统会进行验证配置。

    SQL-Server_故障转移集群_第51张图片

    SQL-Server_故障转移集群_第52张图片

     

    SQL-Server_故障转移集群_第53张图片

     

    SQL-Server_故障转移集群_第54张图片

     

    如果这里验证完成后有错误,说明之前配置的还存在问题,需要返回前面的步骤并检查配置。

    配置分布式事务角色

    SQL-Server_故障转移集群_第55张图片

     

    SQL-Server_故障转移集群_第56张图片

    这里ip需要填写一个未被分配的ip地址。

     

    然后下一步,直到安装完成为止。

    安装完成后,可以通过群集管理器查看节点和磁盘。

    这时需要指定其中一个群集磁盘为群集共享卷。

    方法是选中群集磁盘,右键,将磁盘添加到群集共享卷。

    SQL-Server_故障转移集群_第57张图片

     

  • 第六步:安装分布式事务协调器
  • 选择的集群管理器

     

    SQL-Server_故障转移集群_第58张图片

    打开群集管理界面

    然后右键选择配置角色,或者从图示地方进入

    SQL-Server_故障转移集群_第59张图片

     

    SQL-Server_故障转移集群_第60张图片

    下一步,选择如图所示:

    SQL-Server_故障转移集群_第61张图片

    指定名称,和ip地址,这里的ip地址要指定一个未被分配的ip地址。

    SQL-Server_故障转移集群_第62张图片

    下一步选择存储,指定为之前分配的iscsi虚拟磁盘的msdtc磁盘。

    然后点击确认。直到最后安装完成。

    SQL-Server_故障转移集群_第63张图片

     

  • 第七步:数据库主节点安装
  • 然后安装数据库

    主节点:

    SQL-Server_故障转移集群_第64张图片

     

    SQL-Server_故障转移集群_第65张图片

    SQL-Server_故障转移集群_第66张图片

    SQL-Server_故障转移集群_第67张图片

    SQL-Server_故障转移集群_第68张图片

    这里的ip地址同样需要填写一个未被分配的ip地址

    SQL-Server_故障转移集群_第69张图片

     

    SQL-Server_故障转移集群_第70张图片

    SQL-Server_故障转移集群_第71张图片

     

    另外一个节点的安装:

    SQL-Server_故障转移集群_第72张图片

    选择向SQLServer添加节点

    SQL-Server_故障转移集群_第73张图片

    下一步

    SQL-Server_故障转移集群_第74张图片

    下一步

    SQL-Server_故障转移集群_第75张图片

    SQL-Server_故障转移集群_第76张图片

    一直下一步

    SQL-Server_故障转移集群_第77张图片

     

  • 第八步:另外一个节点的安装
  • 选择安装另外一个节点。

    SQL-Server_故障转移集群_第78张图片

    然后一直下一步,这里都是默认会识别到之前的主节点。

    中间需要填写下 域用户的密码

    直到安装完成为止。

     

  • 第九步:测试
  • 可以使用ping 数据库集群的虚拟ip地址。(之前安装数据库主节点是指定的IP地址)

    不间断的ping 这个虚拟ip地址,

    或者直接使用数据库连接工具连接,访问数据库。将其中一台服务器关机后,数据库始终可以使用。

     

  • 第十步:使用服务器上工具连接数据库
  • 使用工具连接数据库

    SQL-Server_故障转移集群_第79张图片

     

     

     

  • 第十一步:数据库备份与还原
    • 将2005数据库备份成bak文件,然后再在SQLServer2012上还原数据库即可。

      SQL-Server_故障转移集群_第80张图片

      简介参考:https://www.cnblogs.com/wanggege/p/4752783.html

    • 虚拟化磁盘:http://www.cnblogs.com/qingspace/p/4216761.html

你可能感兴趣的:(sql)