使用SQL Server进行负载平衡


31

如今可以在Windows Server上执行Microsoft SQL Server负载平衡并且对任何程序访问都是透明的。这是内置的,还是必须购买解决方案?

我试图找出今天是否有一种解决方案,从Web服务器或其他对SQL Server的数据库访问的角度来看,这使此操作非常容易。

Answers:


31

没有可通过向导运行的MS SQL Server设置“标准”负载平衡。

这将是数据库体系结构的决定,并在数据库级别而非服务器级别实现。技术如下:

  • 扩展/联合数据库服务器
  • 分区
  • 减轻报告要求
  • 也许复制

如果有人不同意,那么我想看一个受人尊敬的知名MS SQL人物的文章,说群集负载平衡。上面引用的文章没有提到负载平衡。例如,一位Microsoftie(Chas Boyd)表示不在这里

我对OP的问题是您期望什么样的负载?

数据库服务器通常受IO和内存的约束,因此正确的磁盘配置(带有适当的文件组)和尽可能多的RAM将比上述任何解决方案都走得更远。

不要忘记:SQL Server 2005 / Windows 2003 Enterprise 32位元分配给32GB RAM(其中您将拥有26-28GB的数据缓存),并且由于NTFS挂载点,您不受驱动器号的限制。至于x64 ...


22

首先,我想澄清一些事情。

SQL Server群集是一种基于Windows群集的可用性技术。它在硬件级别提供冗余,并且与称为负载平衡(即处理负载的分配)的技术无关。

除此之外,数据库镜像和日志传送也是主要实现各种形式可用性的技术。

现在进入原始问题.....

不幸的是,还没有现成的SQL Server负载平衡解决方案。

您可以使用SQL Server复制技术来实现分布式数据库环境,该环境也影响事务处理负载的分布,但是,您的应用程序需要“了解”基础体系结构。

此方法需要开发和定制给定应用程序,以便交付负载平衡的服务。

希望我的详细说明是清楚且有意义的,但当然请随时将您的疑问直接发送给我。



-1

如果您没有很高的写入数据库,请说10/90,其中只有10%的事务被写入,则可以在硬件负载平衡器之上使用sql 2005及更高版本的对等复制来满足您的需求。开箱即用。


-1

AlwaysOn组与一组DB组一起在服务器A上充当主数据库,另一组其余DB在服务器B上充当主数据库,我可以将其视为负载平衡解决方案。唯一的事情就是您需要开发服务器级别对象的手动同步,例如登录名,链接服务器,操作员,警报,数据库邮件设置。


这真的很难理解。如果您要添加任何新内容,可以更清楚地做到吗?
劳伦兹·阿尔贝

-2

与SQL Server分开的用于数据库负载平衡的新技术可用。这些软件解决方案在2012年或2014年与Always On集成在一起,并支持自动读/写拆分和其他负载平衡技术。寻找NetScaler DataStreamScaleArc for SQL Server作为此透明SQL负载平衡软件的两个示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.