让天下没有难融的资金MicrosoftSQLServer2012AlwaysOn高可用性解决方案编制人:***审批:****编号:Q/DF-XX.2.01-2015当前版本:V1.0发布日期:2015年7月8日反馈对象:市场中心销售中心融资中心人资中心财务中心研发中心让天下没有难融的资金11.术语定义1)高可用性:HA(HighAvailability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性2)灾难恢复:DR(DisasterRecovery)指自然或人为灾害后,重新启用信息系统的数据、硬件及软件设备,恢复正常商业运作的过程3)故障转移群集:WSFC(WindowsServerFailoverCluster)微软操作系统针对服务器提供的一种服务,该服务用于防止单台服务器故障导致服务失效。2.公司数据库使用现状及问题瓶颈其他部门对应用开发部负责的融资管理系统性能提出以下问题:1)数据部:a)服务器不稳定b)数据库性能配置低2)市场部:a)查询效率太低3)产品部:a)报表、BI支撑难这些性能问题无不涉及到后台数据库的性能及可靠性问题。还有一个安全问题也值得重视。目前,公司产品数据库和融资管系统都部署在10.44.1.3一台服务器上。理论上,产品数据库不应与Web应用部署在同一台机器而暴露给用户,产品数据库最好只交由专职DBA来管理。因为,万一Web应用遭受黑客攻击,产品数据将会面临巨大威胁,甚至有可能被永久性物理删除。前不久,就有报道携程数据遭受有预谋的内部攻击被物理删除让天下没有难融的资金2()。如果分开部署,那么即使Web应用遭受攻击,只要产品数据在,我们仍然可以在短时间内部署新的Web应用。3.SQLServer高可用技术简介1)故障转移群集(FailoverCluster)共享存储,效率高,但某一个时间点只有一个节点处于活动状态,造成硬件资源浪费。2)数据库镜像(DatabaseMirror)提供几乎是瞬时的故障转移,以提高数据库的可用性。但其最大弊端在于镜像数据库处于不可读状态,同样造成硬件资源浪费。3)日志传送(LogShipping)还原作业之间的间隔时间内的只读访问权限,可用做报表查询。一般用于远程的异步容灾,存在部分数据丢失的可能性。4)复制(Replication)基于数据库对象级别,灵活性较高,但弊端在于,它不支持DDL命令,不便维护。5)AlwaysOnAlwaysOn是SQLServer2012中提供的一种全新的高可用性技术,其集中了上述4种高可用性技术的优点,以确保企业无需增加成本和提高复杂度,即可实现最高级别的可用性和数据保护。可在数据中心内部以及跨数据中心实现数据冗余,快速地实现应用程序故障转移,保护现有硬件资源,同时简化了其配置过程。AlwaysOn可以实现服务器实例级和数据库级配置高可用性,所对应的技术就是AlwaysOn故障转移群集实例和AlwaysOn可用性组。下图1展示了使用Alwayson可用性组的HA和DR解决方案让天下没有难融的资金3主数据中心灾难恢复数据中心SQLServer主副本SQLServer辅助副本WindowsServer故障转移群集(跨两个数据中心的单个WSFC)可用性组同步异步SQLServer辅助副本图14.AlwaysOn高可用性技术介绍1)AlwaysOn故障转移群集实例一般来说,在单服务器情况下,当服务器上出现硬件或软件故障时,连接到该服务器的应用程序或客户端将会停机。在AlwaysOn故障转移群集实例环境中,SQLServer实例的高可用性受到冗余节点的保护。在群集环境中,一次只能有一个节点拥有群集的资源组。在出现故障(硬件故障、操作系统故障、应用程序或服务故障)或进行计划的升级时,该资源组的所有权就会转移至另一个群集节点。此过程对于连接到SQLServer的客户端或应用程序是透明的,可以最大限度地缩短出现故障时应用程序或客户端的停机时间。因此AlwaysOn故障转移群集实例必须由一组物理服务器节点构成,这些服务器节点推荐使用类似的硬件配置以及相同的软件配置,如操作系统的版本、SQLServer版本、修补程序级别、组件以及实例名称。相同的配置是确保群集在节点间进行故障转移时能够正常运行的前提条件。SQLServer2012在原有SQLServer故障转移群集的基础上功能得到了进一步的增强,支持跨越子网实现多站点群集,此技术一般用于两个或两个以上的数据中心,以同时提供本地高可用性和远程的灾难恢复。其中,每个故障转移群集节点都连接到其他子网或其他子网组。这些子网可以处于同一位置中,也可以位于地理上分散的站点。跨地理上分散的站点进行群集有时又被称为扩展群集。因为没有供所有节点都可以访问的共享存储,所以在多个子网上的数据存储之间应该复制数据。因此,多子网故障转移群集除了具备高可用性之外,还提供了灾难恢让天下没有难融的资金4复解决方案。下面以图例说明:图2在上图中共有两个数据中心并且处于不同子网,本地数据中心subnet1使用的IP地址是10.168.0.10,当本地数据中心发生故障时,SQLServer服务会转移到远程数据中心,远程数据中心subnet2所使用的是不同IP地址,为192.168.0.10来继续提供数据库服务,这两个IP地址之间是OR的关系,也就是说这两个IP地址任意一个在线的话,虚拟网络名称SQLClus都可以正常的向客户端提供服务。在此需要使用到存储级别的复制技术,将本地数据中心数据库中的数据文件及日志文件复制到远程数据中心,当本地数据中心发生故障时,Windows群集检测到故障,远程数据中心存储软件可以检测到复制失效,会将存储转换为读写状态,接下来Windows群集会将远程站点可读写的存储设备挂接到远程的Cluster节点上,此时存储复制的方向就从远程数据中心向本地数据中心复制。也就是说,故障转移群集实例成功启动后,Windows群集服务将监视基础群集的运行状况和SQLServer实例的运行状况。SQLServer2012中允许群集服务使用专用连接来轮询活动SQLServer实例,以便通过系统存储过程获取详细的组件诊断信息。好处是,利用与SQLServer实例的专用连接,能够对组件诊断信息进行可靠轮询,即使在故障转移群集实例负荷较重时也是如此。利用详细的组件诊断信息,可以配置更灵活的故障转移策略,由此用户能选择哪些故障条件将触发故障转移以及哪些故障条件将不触发故障转移。用户利用产生的诊断信息,还可以通过追溯方式更好地对自动故障转移进行故障排除。此诊断信息将存储到与SQLServer错误日志并置的日志文件中。可以将这些日志文件加载到日志文件查看器中以检查导致出现故障转移的组件状态,从而确定导致该故障转移的原因。2)AlwaysOn可用性组让天下没有难融的资金5AlwaysOn可用性组是SQLServer2012中提供的全新功能,确保了应用程序数据的可用性,实现零数据丢失。AlwaysOn可用性组技术融合了数据库群集和数据库镜像的优点,此技术的一大好处是提供非共享存储,可以避免因为存储的单点故障而造成的整个可用性方案失效。AlwaysOn可用性组基于数据库(组)级别,是将一组用户数据库(可以是一个或多个)划到一个组中。每组可用性数据库都由一个可用性副本承载。可用性副本包括一个主副本和一到四个辅助副本(2014最多支持8个)。主副本用于承载主数据库,辅助副本则承载一组辅助数据库并作为可用性组的潜在故障转移目标。主副本使主数据库可用于客户端的读写连接,实现对数据库的更改操作。同时在数据库级别进行同步。主副本将每个主数据库的事务日志记录发送到每个辅助数据库。每个辅助副本缓存事务日志记录,然后将它们还原到相应的辅助数据库。主数据库与每个连接的辅助数据库独立进行数据同步。因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。此外,用户可以借助辅助数据库来实现近实时的报表查询,将查询的负载分担到只读副本。相对于数据库群集及镜像来说,可以更好的利用硬件资源,从而提高IT效率并降低成本。下面看一下AlwaysOn可用性组架构,如下图3所示:图3部署AlwaysOn可用性组需要一个WindowsServer故障转移群集(WSFC)群集。给定可用性组的每个可用性副本必须位于相同WSFC群集的不同节点上。部署AlwaysOn可用性组时,系统会为每个可用性组创建一个WSFC资源组。WSFC群集将监视此资源组,判断节点间的状态,以便评估主副本的运行状况。当发让天下没有难融的资金6生失败时实现故障的转移,针对AlwaysOn可用性组的仲裁基于WSFC群集中的所有节点,而与某一给定群集节点是否承载任何可用性副本无关。用户可以通过创建一个可用性组侦听器来提供到给定可用性组的主副本的客户端连接。“可用性组侦听器”采用DNS名称的方式连接给定可用性组的资源,以便将客户端连接定向到相应的可用性副本。对于每个可用性副本,AlwaysOn所支持的事务提交模式分为同步提交模式或异步提交模式。在异步提交模式下,主副本无需等待确认异步提交辅助副本已强制写入日志,便可提交事务。异步提交模式可最大限度地减少辅助数据库上的事务滞后时间,但允许它们滞后于主数据库,因此可能会导致某些数据丢失。此可用性模式是一种灾难恢复解决方案,适合于可用性副本的分布距离较远的情况。所谓同步提交模式是指在提交事务之前,同步提交主副本要等待同步提交辅助副本确认它已完成强制写入日志。同步提交模式可确保在给定的辅助数据库与主数据库同步时,充分保护已提交的事务。这种保护的代价是延长事务滞后时间。此可用性模式相对于性能而言更强调高可用性和数据保护,当主副本和辅助副本距离较近时可以使用此方法,解决时时同步的问题。正因为AlwaysOn可用性组集现有高可用性技术的优点于一身,不得不说,它是SQLServer2012新特性中最为璀璨的一个。5.东方融资网可实施的AlwaysOn测试部署方案1)宿主机宿主使用工作站(HYPR-V),其基本配置如下:b)处理器:Intel(R)Core(TM)i5-4470CPU@3.20GHz3.20GHzc)内存(RAM):8.00GBd)Windows版本:WindowsServer2012R2Standard2)虚拟机配置数据库服务器基本配置:4个逻辑cpu,1G内存,100G硬盘(C:70G;D:30G)HostNameIP配置OS版本SQL版本功能介绍让天下没有难融的资金7ADServerIP:192.168.1.110WindowsServer2012R2StandardNULL域控制器Server01IP:192.168.1.111WindowsServer2012R2StandardSQLServer2012R2企业版群集节点01Server02IP:192.168.1.112WindowsServer2012R2StandardSQLServer2012R2企业版群集节点023)AlwaysOn可用性组安装配置架构图如下图所示,一个windows群集clustest01中包含三个节点(server01,server02)节点01和节点02组成SQLServer群集,实现实例级别的自动故障转移和AlwaysOn可用性组,可用性组添加侦听IP[192.168.1.130],用于客户端的连接,以实现可用组切换而不用修改客户端连接配置。图44)Windows群集安装将三个服务器都加入域环境中;并安装.Net3.5和故障转移群集功能后,开始创建新群集。第一步:配置主域控服务器ADServer让天下没有难融的资金8a)在仪表板服务器角色中添加ActiveDirectory服务器及DNS服务,并配置域名为aolearn.com。b)配置本机IP为192.168.1.110。c)建立域账户sql@aolea