我即将扩展我们的 sql2008 数据库。很简单。但我可能需要扩展我们的 sql 数据库。
对于简单的横向扩展情况(即分配处理负载),是否有一些好的初始最佳实践?我知道有很多解决方案是针对特定产品的 -> 写入次数多但读取次数少、读取次数多但写入次数少、两者兼而有之,等等。
但是对于一个读取量很大的网站(而不是写入量很大的网站),是否有一个共同的起点?例如,获取第二个 SQL 框,添加一些同步内容,然后就可以开始了。
答案1
其他盒子上的数据需要有多新?
MSSQL 具有出色的单向同步关系设置。您必须获得适当版本的 SQL Server 许可(我认为它不包含在最基本的版本中),但设置起来非常容易。
唯一的缺点是,您只能写入一个位置,所有其他位置都需要是只读的。对于双向同步(如果您要写入的话),它要复杂得多。
简而言之,是的,带有同步功能的第二个盒子可以很好地工作,但您还需要进行自己的负载平衡(即让一个 Web 服务器读取一个 SQL 服务器,另一个 Web 服务器读取另一个 SQL 服务器),因为它们仍然显示为单独的实例。否则,您将陷入集群,这是另一回事。
那么,这个同步功能是什么?如何设置它?在 SQL Management Studio (SSMS) 中,您将在导航窗格中看到一个“复制”文件夹,其中包含发布和订阅。
简而言之,您将:
- 在主数据库服务器上发布数据库
- 订阅辅助只读服务器上的发布
- 订阅者将按计划进行同步(对于几乎即时的复制,这可以是恒定的)
有很多文章,所以只需谷歌一下 SQL Server Replication 即可。
就硬件而言,我们的主要数据库服务器是双四核处理器,内存为 4GB。我们的从属服务器是双核处理器,内存为 4GB。您可以购买很多这种级别的服务器。当然,这完全取决于您预期的负载类型。
答案2
这个问题比较复杂,几篇文章无法回答。扩展服务器的方法有很多,仅举几例:故障转移群集、日志传送、复制、数据库镜像。
我向您推荐一本精彩的书,可以在这里下载:Pro SQL Server 2005 高可用性
希望您能在那里找到问题的答案
答案3
如今的硬件非常强大且便宜,因此只需使用一台像样的服务器就可以大有作为。如果如您所说,您的数据库主要用于读取,那么配备 16GB RAM 和六个 15K 磁盘 RAID5(或 6)的 Poweredge 2950 是 SQL Server 非常强大的基础;您可以根据需要添加任意数量的内核,但即使是双四核也不是很贵。我认为 2950 最多需要 64GB RAM,尽管这将是昂贵的!
您的硬件可能已经如此强大。如果是这样,您会看到功率和成本的阶跃变化,如果是这样,我认为您需要比 ServerFault 上的几篇帖子更好的建议 :-)
JR
答案4
嗯,这个问题很难回答,因为您(开发人员)在设计数据库时必须考虑这个问题。但是,研究一下共享数据库,以获得较高的读/写比率,这可能是最容易实现的。其他解决方案可能是复制。
享受,m