我即将扩大我们的 sql2008 数据库。简单的。但我可能需要扩展我们的 sql 数据库。
对于简单的横向扩展情况(即分配处理负载),是否有一些好的初始最佳实践?我知道有很多解决方案将是特定于产品的 -> 很多写入和读取不多,读取很多但写入不多,两者兼而有之,等等。
但是对于一个阅读量很大(而不是写入量很大)的网站,是否有一个共同的起点?例如。抓住第二个 sql 框,添加一些同步的东西,然后离开。
我即将扩大我们的 sql2008 数据库。简单的。但我可能需要扩展我们的 sql 数据库。
对于简单的横向扩展情况(即分配处理负载),是否有一些好的初始最佳实践?我知道有很多解决方案将是特定于产品的 -> 很多写入和读取不多,读取很多但写入不多,两者兼而有之,等等。
但是对于一个阅读量很大(而不是写入量很大)的网站,是否有一个共同的起点?例如。抓住第二个 sql 框,添加一些同步的东西,然后离开。
其他盒子上的数据需要保持多长时间?
MSSQL 有一个很好的单向同步关系设置。您必须获得适当版本的 SQL Server 的许可(我认为它不包含在最基本的版本中),但设置起来非常容易。
唯一的问题是您只能写入一个位置,所有其他位置都需要只读。对于双向同步(如果您要编写的话),它要复杂得多。
所以简而言之,是的,第二个带有同步东西的盒子会很好用,但你还需要做自己的负载平衡(即让一个 Web 服务器读取一个 sql server,另一个 Web 服务器读取另一个 sql server),因为它们仍然显示为单独的实例。否则,您将进入集群,这是另一锅鱼。
那么,这个同步的东西 - 它是什么以及如何设置它?那么,在您的 SQL Management Studio (SSMS) 中,您将在导航窗格中看到一个“复制”文件夹,其中包含发布和订阅。
简而言之,您将:
有很多文章,所以只需 google SQL Server Replication。
就硬件而言,我们的主数据库服务器是具有 4GB 内存的双四核。我们的奴隶是双核的,有 4gb 的内存。您可以在该级别购买很多服务器。当然,这完全取决于您期望的负载类型。
这个问题更复杂,一些帖子可以回答。如何扩展服务器有太多选择,仅举几例:故障转移集群、日志传送、复制、数据库镜像。
我会向您推荐一本可以在这里下载的好书:Pro SQL Server 2005 High Availability
希望你能在那里找到你的问题的答案
如今,硬件功能强大且价格低廉,因此您只需使用像样的服务器就可以走很长一段路。如您所说,如果您的数据库主要用于读取,那么具有 16GB RAM 和 6 个 15K 磁盘 RAID5(或 6)的 Poweredge 2950 是 SQL Server 的一个非常强大的基础;添加任意数量的内核,但即使是双四核也不是那么昂贵。我认为 2950 将占用 64GB 的 RAM,虽然这会很贵!
您的硬件可能已经如此强大。如果是这样,您正在考虑在功率和成本方面发生重大变化,如果是这样,我认为您需要比 ServerFault 上的几篇帖子更好的建议 :-)
JR
从这个意义上说,这很难回答问题,您(开发人员)在设计数据库时必须考虑这个问题。但是看看共享数据库的高读/写比率,这可能是最容易实现的。其他解决方案可能是复制。
享受,米