首页 新闻 会员 周边

【急】SQL server如何实现负载均衡??

0
悬赏园豆:30 [已解决问题] 解决于 2013-08-20 11:57

公司本来有两台数据库服务器,一台是作为备份用的,但是随着现在网站访问量的增加,经常会出现问题,所以经理向我布置任务,让我找到如何实现数据库的负载均衡,按他的意思是把备用数据库用上,两台数据库一起工作,但是我这方面完全不懂。
这个应该怎么做?最好有个文字说明教给领导。。。。谢谢各位了

天殇月痕的主页 天殇月痕 | 初学一级 | 园豆:48
提问于:2013-01-18 09:25
< >
分享
最佳答案
0

数据库本身是没法实现负载均衡的,如果你只有查询操作的话,你可以通过NLB来部署,或者客户端通过一定的策略来选取不同的数据库服务器。

如果不只是查询的话,就比较困难了,你需要通过客户端组件来将修改操作指定到 Master 服务器,然后 Master 服务器需要将数据同步到其它 Slave 服务器上,而查询的操作仍然按照上面的方式来实现。

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2013-01-18 10:22
其他回答(2)
0

1、经常出问题,如果是数据库服务器经常出问题,如宕机的话,那么写个小程序,专门监控数据库服务器是否正常,如果不正常则通知你的服务器哪一台不正常,如果两台都不正常了,你的服务器可以选择罢工了。

2、服务器是知道当前哪个数据库服务器是正常的了,一般而言,两个都是正常的。因为你数据库服务器已经实现同步了(这里你的那个同步可能要修改下,同步的周期要缩短点,而且互镜像)。所以服务器的代码里面就可以偷懒了,直接生成一个随机数,然后对2取模,如果等于零,访问A数据库服务器,如果不等于零,访问B数据库服务器。当然这个2,你服务器需要维护的。因为如果挂掉了一个数据库服务器,这个时候你就该对1取模了,当然永远是零了,于是永远访问没坏的那个数据库服务器了。全坏了,罢工吧。

 

这个解决方案简单吧,而且对你现有的产品改动很少。如果你把那个初始的2做成可配置的,那么以后还可以继续增加数据库,水平扩展。但这个方案里面也有一个难点,就是你要实现两个数据库的互镜像。不过,相信谷歌,去找下,资料还是有的。

收获园豆:10
BLoodMaster | 园豆:135 (初学一级) | 2013-01-23 02:30
0

 

从我的优化经验来看,99%不是说数据库服务器真的扛不住了,而是表设计不合理和SQL写的太烂。找出Top100的最耗性能的SQL搞定,我可以肯定你的一台数据库服务器也够用了。

另外你的看瓶颈在哪儿,不改SQL和表的话,CPU高都搞几个CPU,IO高就多插几块硬盘。将频繁读的数据分散开。

 

纳斯达克的即时交易才两个4节点的SQLserver集群就搞定了。

 

收获园豆:10
luofer | 园豆:468 (菜鸟二级) | 2013-02-21 17:51

很想学习数据库的优化·······自己的sql写得太烂····性能太差····求指教!!或者好的这方面的资料或者书籍分享····谢谢

支持(0) 反对(0) 天殇月痕 | 园豆:48 (初学一级) | 2013-02-21 17:54

@天殇月痕: 

SQLServer技术内幕系列 ,存储引擎和优化那两本。我当初就是从几本数开始的。现在有时还会翻翻。 如果看不太懂,就先看看SQL那本。

支持(0) 反对(0) luofer | 园豆:468 (菜鸟二级) | 2013-02-21 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册