欢迎来到天天文库
浏览记录
ID:26863127
大小:2.31 MB
页数:65页
时间:2018-11-29
《SQL+Server数据库高可用性及性能提升分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、·SQLServer数据库高可用性及性能提升研究clusterClusterNamegroupResourseGroupName/moveto:ReportingServer/wait:5ClusterName:群集名称ResourseGroupName:要移动的资源组的名称ReportingServer:备用报表服务器名2.2SQLServer复制发布尽管硬件的发展很快,单台PC服务器的性能越来越强大。但是,作为一个大型企业,不可能把所有的负载都压在一台服务器上。数据库的规模增长到一定的程度,肯定要考虑进
2、行负载均衡的。几乎所有的主流数据库都有复制发布功能,MySQL,DB2有,Oracle其实也有,Oracle的复制发布功能称为“流复制(STREAMSREPLICATION)”,Oracle的RAC尽管功能强大,但是毕竟要另外收费,所以,Oracle也保留了复制发布功能,一些数据库规模尚不是很大的企业,可以用复制发布来进行负载均衡,而无须支付额外的授权费用。和其他数据库一样,复制发布也是SQLServer主要的负载均衡手段。由于SQLServer的群集没有负载均衡功能,因此它的复制发布功能非常强大。SQLS
3、erver2005之前的版本,提供了3种复制发布方式[4]:z快照复制z事务复制z合并复制2.2.1快照复制快照复制实际上是一次性复制,也就是在某一个时点对某一张或几张表做一个快照,一次性应用到辅助服务器上。这个过程是一次性的,此后辅助服务器上的数据不会再发生变化。严格地说,快照复制不是用于负载均衡的。它更多得被用于为开发人员一次性提供数据。-8-···SQLServer数据库高可用性及性能提升研究2.2事务复制事务复制是目前生产环境中使用最多的一种复制方式,它实际上是快照复制加上增量复制。所有的复制都必须
4、先应用快照,把表结构和初始数据复制过去。然后,事务复制会通过日志读取器从主服务器的数据库日志中抓取相关表的数据变动情况,作为事务传送给辅助服务器,辅助服务器应用该事务,就可以和主数据库的数据做到实时同步了。需要指出的是,辅助服务器在事务复制的模式下,只能作为“只读”服务器,用户只能读取数据,不能修改数据。所以事务复制只能分担主数据库读的压力,而无法分担写的压力。2.3合并复制严格地说,合并复制也不是为数据库的负载均衡而设计的。它甚至不要求数据同步的实时性。可以假设一下,在某一大型企业中,销售人员要经常外出处
5、理业务,签订的合同需要通过手边的笔记本电脑传递到总部的数据库。但是,销售人员要到处走动,他们的笔记本电脑不可能实时与数据库连接,另外公司内部人员也可以对它进行修改,销售人员也可以看到总部的修改。总之,合并发布是一个两边都可以修改的模式。这一点是与事务复制不同的。另外它也是非实时性的。2.4具有可更新订阅的事务发布SQLServer2005开始推出这种复制方式,这种方式,应该讲主要是为了负载均衡而设计的。辅助数据库上的修改也可以应用到主数据库。这样,辅助数据库即可以分担读的压力,也可以分担写的压力了。从原理上
6、讲,就是做了一个双向的复制发布,发布数据库也同时是订阅数据库。试想,如果有足够多的辅助数据库,那么可以想像,对于大场景的应用,也是可以应付的。当然,复制发布是每台服务器上放置一个数据库拷贝,先写入本机数据库,再同步到主库,由于网络和服务器处理速度的制约,不能保证2个库中的数据完全一致。数据一致性是复制发布的短板,在一些高端场合应用,必须有其他的控制手段。从这一点上说,Oracle的RAC既能做到负载均衡,又可以保证数据的一致性的。这也就不难理解,为何Oracle在银行、保险机构广泛应用了。2.2.1日志传送
7、在镜像出现以前,日志传送是SQLServer提供整库热备最佳方案,尽管复制发布也可以发布整个数据库,但是前提是所有的表都有“主键”,没有主键的表不能发布。-9-···SQLServer数据库高可用性及性能提升研究如果只发布部分表,那么有些存储过程如果用到未被发布的表,那么这些存储过程也一样不能被发布。所以,由于复制发布的局限性,一般不会被用于整库热备。Oracle也有日志传送(logshipping)功能,不过Oracle叫DataGuard。MySQL、DB2也有这项功能。日志传送尽管号称是整库热备,其实
8、一般被看作为暖备,它比实时的热备还是要差一些。因为日志传送出现得比较早,在过去网络,主机性能比较低的情况下,日志传送并不能保证备份库和主库的数据一致,备份库通常是要落后10多分钟的,在生产中常常看到落后几百分钟的情况。因此,日志传送一般只能保证在主机当机的情况下,它的所有日志都在另一台服务器上有备份。但不能保证这些日志已经被应用到备份服务器上了。如果备份服务器落后太多,那么主库一旦当机,备份服务器也无法马上接管业
此文档下载收益归作者所有