深入了解SQL Server 2008高可用性
2008-11-19 10:09:48 来源:WEB开发网其实对于远程故障转移集群来说,主要解决的问题是站点失效的问题,因此单纯使用SQL Server的功能也可以解决这个问题。尽管没有基于硬件的那么高效和稳定。
那么怎么构建一个相对廉价的远程容灾方案呢?我们的答案是故障转移集群+日志传送/复制。在不提到这两项技术的话,他们两个一定会有意见的。
日志传送依赖于日志备份以及还原来实现数据同步的,而复制呢,除了日志外多了一个快照(注意:复制中使用日志的方式与日志传送是不一样的)。因此我们只要确保主服务器的日志能够以一个合理的频率传送给远端的后备服务器,我们就可以提供一定程度上远程容灾能力了。
可是在SQL Server 2005之前,复制和日志传送都有一些小问题,日志传送是依赖于日志备份作业、日志传送作业和日志还原作业,因此日志传送无法做到连续性,他的嘴短同步间隔是一分钟,无法再短了。事务复制尽管能做连续,但是事务复制有主从之分,如果是多站点这项技术会严重限制后备服务器的自治能力。
不过从SQL Server 2005开始,事务复制有了一种新的模式,叫做对等事务复制。对等事务复制平等看待参与复制的所有节点,而取消了主从之分。这就给我们的多站点数据服务规划指出了一条新的道路。
不过大家在这张有些夸张的图里面也许可以看出些端倪。通过对等事务复制,我们确实可以设计出一个非常复杂的数据复制拓扑,利用高速/低速线路,优质/常规线路,我们可以在分布于多个站点的服务器之间构建出一个复制拓扑。说上面这张图是开玩笑,原因是通常复制拓扑不会这么混乱,但是对等复制一定可以制成这张图上出现的服务器数量,关键是要良好规划和设计。
算了,给张清楚点的吧。这是一个比较真实地对等复制拓扑,我们有两个站点。站点内拥有高速的链接,而站点间则是相对低速的租用链路。A、B、C分别是三个应用的数据库,A和C是本地性应用,因此仅在单个站点内进行了复制,保证其容灾能力,而B是一个集团性的应用,为了确保其数据的可用性,因此在站点内和站点间分别实现了复制冗余,同时站点A和站点B可以互不干扰对数据的使用(当然这要依赖于数据库的设计和对等复制链路的配置)。
SQL Server 2008在对等复制方面也有一个小小的改进,那就是冲突检测。在SQL Server 2005的对等事务复制中,冲突是一个非常头疼的事情,因此才会要求非常严格的数据访问隔离设计。SQL Server 2008会在发生冲突的时候暂停复制,既保证了两个站点间的正常数据访问,也保证了在数据冲突时不会错误覆盖正确的数据版本。
结束语
其实SQL Server的可用性和数据应用的可用性完全是两个层面的事情,SQL Server仅仅是数据应用中的一个组成部分,因此如何达到真正的系统可用性,还要考虑更多的问题,通讯(交换机、路由器之类)、网络服务(DNS、DHCP之类)、操作系统、应用服务(IIS、中间件服务器),还有很多很多的问题。
美国人遭遇了911,我们遭遇了512,除了沉重的伤痛之外也留给我们许多需要思考的问题。尽管对于很多IT来说,911和512似乎很遥远,不过我们也讨论到了IT系统需要面对的不仅仅是这些巨大的灾难,还有飓风、火灾、硬件故障、软件缺陷、人为破坏,甚至是例行维护。因此规划和实施有效的可用性方案算是未雨绸缪,当遇到真正的突发事件时,才能避免花费成百数千倍的代价去弥补。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接