设为首页 收藏本站
查看: 936|回复: 0

[经验分享] SQL Server 高可用方案

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-20 10:27:27 | 显示全部楼层 |阅读模式
SQL Server 高可用方案

方案一:Asynchronous Mirror + Alias方案介绍数据库服务器配置异步镜像关系,程序客户端连接串配置别名连接。
1. 在SQL Server客户端配置中创建别名,在客户端的连接串设置中用别名代替服务器名或IP地址。
2. 写一个实用程序,在镜像角色切换的时候,更新别名。
3. 更新别名可通过修改相应的注册表字符串来完成,位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo
方案优缺点优点:对于实现计划中的数据库迁移安全、快捷、简单。仅需修改别名对应IP地址。
缺点:对于少量业务应用管理较实用。

方案二:Asynchronous Mirror + Hosts方案介绍数据库服务器配置异步镜像关系,程序客户端配置域名连接,Hosts文件配置IP和域名的对应关系。
1. 在客户端机器中修改Hosts文件,创建域名和主数据库服务器IP的对应关系。
2. 写一个实用程序,在镜像角色切换的时候,更新Hosts文件中的IP地址。Hosts文件位于Hosts文件位于C:\Windows\System32\drivers\etc\Hosts
3. 清空客户端机器的DNS缓存。
方案优缺点优点:仅需修改客户端Hosts文件中的IP和域名对应关系后,清空DNS缓存,重新获取新的主服务器信息。
缺点:相较方案一,有一定延时。

方案三:Asynchronous Mirror + DNS方案介绍数据库服务器配置异步镜像关系,程序客户端配置域名连接,DNS服务器配置IP和域名的对应关系。
1. 创建DNS CNAME / A 记录指向活动的数据库服务器。
2. 在客户端连接串设置中,使用一个虚拟的名称。
3. 写一个实用程序完成以下工作:
a) 更新DNS记录
b) 在镜像角色切换的时候,清空客户端机器的DNS缓存
方案优缺点优点:对于实现大批量业务应用平台化管理较实用。
缺点:需要修改DNS服务器端记录配置信息,再清理客户端DNS缓存,重新获取新的主服务器信息。过程相对繁琐;需要考虑DNS服务器的高可用;相较方案一、二,有一定延时。

方案四:AlwaysOn方案介绍AlwaysOn是一项集合了故障转移群集、数据库镜像和日志传送的优点于一身的、功能强大的“高可用性+灾难恢复”技术。
AlwaysOn利用了Windows故障转移群集的健康监测和自动故障转移的特性,因此它必须建立在Windows故障转移群集之上。但是和SQLServer群集不同的是,可用性组里的数据库并不是一定要求存放在共享存储(SharedDisk)上的,它们也可以存储在本地磁盘上。另外,可用性组是以用户数据库的集合为单位进行健康检测和故障转移的,而不像SQLServer群集那样是以整个实例为单位。
方案优缺点优点:AlwaysOn可用性组,每个可用性组是一个包含了一个或数个用户数据库的容器,可用性组里的所有数据库作为一个整体发生故障转移;辅助服务器可用于只读的访问请求;辅助服务器可以执行备份和DBCC命令。
缺点:AlwaysOn的SQLServer实例,最好使用同样的固定端口;基于Windows群集。

方案五:Synchronous Mirror方案介绍当事务安全设置为 FULL 时,数据库镜像会话便会在初始同步阶段后以高安全性模式同步运行。又细分为:
1. 不带自动故障转移功能的高安全性模式
当伙伴连接在一起并且数据库已同步时,支持手动故障转移。如果镜像服务器实例出现故障,则主体服务器实例不会受到影响并且公开运行(即,未镜像数据)。如果主体服务器丢失,则镜像会挂起,但可以将服务强制到镜像服务器(可能造成数据丢失)。
2. 带自动鼓掌转移功能的高安全性模式
自动故障转移通过确保在丢失一个服务器之后仍向数据库提供服务来提供高可用性。自动故障转移要求会话具有第三个服务器实例(“见证服务器”),理想情况是见证服务器驻留在第三台计算机上。
方案优缺点优点:无数据损失。
缺点:对业务性能要求较高的业务一定影响;需要部署一台见证服务器。

方案六:SQL Server Cluster方案介绍SQL Server 故障转移群集构建于 Windows Server 故障转移群集之上。Windows服务器故障转移集群旨在提供高可用性服务或应用程序集群内运行故障转移。它包含一组独立运行的服务器来提高应用程序和服务的可用性。故障转移集群可以防止硬件和软件故障, 将故障资源从一个服务器 (或集群节点) 转移到另一个的节点。故障转移是一个过程, 以一个集群服务或应用程序在一个节点上离线,并将它重新联机在另一个节点。整个过程对用户是透明的。
方案优缺点优点:有性能的影响小。
缺点:基于Windows群集;停机时间约等于SQL Server服务重启的时间+数据库恢复时间;无法抵御共享存储磁盘故障。

方案七:Hyper-V + SQL Server Cluster方案介绍很多用户在Hyper-V虚拟机中用到了MS SQL Server。但是单独(standalone)的SQL Server 不能提供高可用性和灾难恢复的功能。在对可用性有较高要求的Hyper-V用户面前,故障转移群集(Failover cluster)是必然用到的功能。当虚拟的生产服务器宕机时,热备份中的虚拟的服务器可以很快投入工作中。
方案优缺点优点:减少计划中的业务停机时间,可利用Hpyer-V的动态迁移功能。
缺点:需要虚拟化,应用于压力小的业务。

方案八:Log Shipping方案介绍可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库)。不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器。日志传送可与使用完整或大容量日志恢复模式的数据库一起使用。
方案优缺点优点:支持多副本。
缺点:故障转移后不可逆;对客户端不透明;停机时间较长。

方案九:Transactional Replication方案介绍事务复制通常从发布数据库对象和数据的快照开始。 创建了初始快照后,接着在发布服务器上所做的数据更改和架构修改通常在修改发生时(几乎实时)便传递给订阅服务器。 数据更改将按照其在发布服务器上发生的顺序和事务边界应用于订阅服务器,因此,在发布内部可以保证事务的一致性。
方案优缺点优点:数据库对象级别。
缺点:对性能的影响较高。

方案十:以上方案的混合使用方案介绍如镜像结合日志传送等。
方案优缺点优点:叠加多种方案的优点。
缺点:增加对性能的影响和管理的复杂度。

方案十一:NLB集群方案介绍NLB集群
方案优缺点优点:透明
缺点:系统层技术复杂。

附表1:SQL Server高可用方案对比
功能
故障转移群集
日志传送
数据库镜像
事务复制
AlwaysOn
保护级别
实例级
数据库级
数据库级
数据库对象级
数据库级
是否有数据损失
/
可能有少量数据损失
无数据损失(同步模式)
可能有少量数据损失
无数据损失(同步提交模式)
自动故障转移


是(高可用操作模式)

是(自动故障转移模式)
故障转移后是否可逆





对客户端是否透明
是,自动重连接到相同IP的另一个节点

是,自动重定向(需要驱动程序支持)


停机时间
约等于SQL Server服务重启的时间+数据库恢复时间
较长
约等于数据库恢复时间
较长
约等于数据库恢复时间
多个备用数据副本




是(最大4个)
备用数据副本可读
/




能抵御用户误操作





能抵御磁盘故障





是否有特定硬件要求
windows群集

要求有较好的磁盘和网络

Windows群集
对性能的影响





其他功能
/
自动页面修复
/
冲突解决,双向数据同步等
自动页面修复,只读路由,辅助数据库备份,辅助数据库执行DBCC命令
版本支持
SQL Server 2000及以后
SQL Server 2000及以后
SQL Server 2005及以后
SQL Server 2000及以后
SQL Server 2012


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-31613-1-1.html 上篇帖子: SQL Server里查看当前连接的在线用户数 下篇帖子: SQLIO 模拟随机或者顺序的方式来测试磁盘IO的性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表