MSSQL数据库高可用性方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高可用MS SQL Server数据库解决方案
建设目标
减少硬件或软件故障造成的影响,保持业务连续性,从而将用户可以察觉到的停机时间减至最小,确保数据库服务7*24小时(RTO为99.9%)运转,建设一套完整的高可用性MS SQL Server数据库系统。
需求分析
服务器宕机造成的影响
服务器宕机时间使得丢失客户收益并降低员工生产效率,为了避免对业务造成影响,从两个方面采取预防措施:
一、计划宕机时的可用性:
●补丁或补丁包安装
●软硬件升级
●更改系统配置
●数据库维护
●应用程序升级
二、防止非计划性宕机:
●人为错误导致的失败
●站点灾难
●硬件故障
●数据损毁
●软件故障
现有状况
●服务器存在单点故障;
●数据库未做高可用性配置;
●数据库版本为MS SQL Server2008;
●服务器配置为CPU E7540 2.0,24G内存;
●数据库容量约800G
技术解决方案
解决思路
考虑到本项目的需求和最佳性能,为了达到最佳可用性,方案采用两台数据库服务器做故障转移集群,连接同一台存储做数据库的共享存储,实现故障自动转移。同时,将旧服务器作为镜像数据库,采用SQL Server 2012的alwayson 功能来再次完成自动故障转移,并可以分担查询的负载。
架构拓扑
新数据库:承担数据库主体计算功能,用于生产数据,采用双机集群,实现自动故障转移。
旧数据库:通过镜像功能,存储数据库副本,用于发生故障时的转移。也可配置为只读,承担备份的负载。
存储:存储采用双控制器,双FC连接两台服务器,避免单点故障。
主/辅域控制器:采用双机模式,SQL Server 2012 实现高可用的必备基础设施。
高可靠性技术方案
SQL Server的企业版支持所有的高可用性功能,这些功能包括:
故障转移集群
故障转移集群为整个SQL Server实例提供高可用性支持,这意味着在集群上某个节点的SQL Server实例发生了硬件错误、操作系统错误等会故障转移到该集群上的其它节点。通过多个服务器(节点)共享一个或多个磁盘来实现高可用性,故障转移集群在网络中出现的方式就像单台计算机一样,但是具有高可用特性。值得注意的是,由于故障转移集群是基于共享磁盘,因此会存在磁盘单点故障,因此需要在磁盘层面部署SAN复制等额外的保护措施。最常见的故障转移集群是双节点的故障转移集群,包括主主节点和主从节点。
事务日志传送
事务日志传送提供了数据库级别的高可用性保护。日志传送可用来维护相应生产数据库(称为“主数据库”)的一个或多个备用数据库(称为“辅助数据库”)。发生故障转移之前,必须通过手动应用全部未还原的日志备份来完全更新辅助数据库。日志传送具有支持多个备用数据库的灵活性。如果需要多个备用数据库,可以单独使用日志传送或将其作为数据库镜像的补充。当这些解决方案一起使用时,当前数据库镜像配置的主体数据库同时也是当前日志传送配置的主数据库。事务日志传送可用于做冷备份和暖备份的方式。
数据库镜像
数据库镜像实际上是个软件解决方案,同样提供了数据库级别的保护,可提供几乎是瞬时的故障转移,以提高数据库的可用性。数据库镜像可以用来维护相应生产数据库(称为“主体数据库”)的单个备用数据库(或“镜像数据库”)。
因为镜像数据库一直处于还原状态,但并不会恢复数据库,因此无法直接访问镜像数据库。但是,为了用于报表等只读的负载,可创建镜像数据库的数据库快照来间接地使用镜像数据库。数据库快照为客户端提供了快照创建时对数据库中数据的只读访问。每个数据库镜像配置都涉及包含主体数据库的“主体服务器”,并且还涉及包含镜像数据库的镜像服务器。镜像服务器不断地使镜像数据库随主体数据库一起更新。
数据库镜像在高安全性模式下以同步操作运行,或在高性能模式下以异步操作运行。在高性能模式下,事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。在高安全性模式下,已提交的事务将由伙伴双方提交,但会延长事务滞后时间。数据库镜像的最简单配置仅涉及主体服务器和镜像服务器。在该配置中,如果主体服务器丢失,则该镜像服务器可以用作备用服务器,但可能会造成数据丢失。高安全性模式支持具有自动故障转移功能的备用配置高安全性模式。这种配置涉及到称为“见证服务器”的第三方服务器实例,它能够使镜像服务器用作热备份服务器。从主体数据库至镜像数据库的故障转移通常要用几秒钟的时间。数据库镜像可用于做暖备份和热备份。
复制
复制严格来说并不算是一个为高可用性设计的功能,但的确可以被应用于高可用性。复制提供了数据库对象级别的保护。复制使用的是发布-订阅模式,即由主服务器(称为发布服务器)向一个或多个辅助服务器或订阅服务器发布数据。复制可在这些服务器间提供实时的可用性和可伸缩性。它支持筛选,以便为订阅服务器提供数据子集,同时还支持分区更新。订阅服务器处于联机状态,并且可
用于报表或其他功能,而无需进行查询恢复。SQL Server 提供四种复制类型:快照复制、事务复制、对等复制以及合并复制。
AlwaysOn
AlwaysOn 故障转移群集实例利用Windows Server 故障转移群集(WSFC) 功能通过冗余在服务器实例级别(故障转移群集实例(FCI))提供了本地高可用性。FCI 是在Windows Server 故障转移群集(WSFC) 节点上和(可能)多个子网中安装的单个SQL Server 实例。在网络上,FCI 表现得好像是在单台计算机上运行的SQL Server 实例,但它提供了从一个WSFC 节点到另一个WSFC 节点的故障转移(如果当前节点不可用)。当服务器上出现硬件或软件故障时,连接到该服务器的应用程序或客户端将会停机。在将SQL Server 实例配置为FCI(而非独立实例)时,该SQL Server 实例的高可用性受到FCI 中提供的冗余节点的保护。在FCI 中,一次只能有一个节点拥有WSFC 资源组。在出现故障(硬件故障、操作系统故障、应用程序或服务故障)或进行计划的升级时,该资源组的所有权就会转移至另一个WSFC 节点。此过程对于连接到SQL Server 的客户端或应用程序是透明的,可以最大限度地缩短出现故障时应用程序或客户端的停机时间。
故障转移群集实例提供的一些主要优点:
●通过冗余提供实例级的保护
●在出现故障(硬件故障、操作系统故障、应用程序或服务故障)时自动进行
故障转移
●支持多种存储解决方案,包括WSFC 群集磁盘(iSCSI、光纤信道等)和服