具有非对称(非相同硬件)SQL Server 2005 / Win 2003 集群的经验

具有非对称(非相同硬件)SQL Server 2005 / Win 2003 集群的经验

我相当擅长处理 SQL Server 集群;我想知道大家是否有在一个 SQL 2005 集群中混合使用来自同一供应商的不同型号的服务器的经验,无论好坏。

认为:

  1. 我有一个功能更强大、内存更多、shizzle 更多的机器和一个功能更弱、内存更少、shizzle 更少的机器,它们绑定在一个 2 节点集群中。这些机器将是 HP DL380 和 580 机器(这并不重要)

  2. 我理解并自动化了每个 SQL 实例的内存管理过程,因此当 SQL 实例发生故障转移时不会出现内存争用。基本上,我认为 CLR proc 将监视实例并自行调节每个实例的内存上限,这样它们就不会互相分页或踩踏。

  3. 我知道如果实例共享一个“较小”节点,它们可能会变慢或面临内存压力,这没关系。在服务器出现问题的情况下,企业可以处理速度较慢的实例。

合理吗?有什么“陷阱”需要注意吗?

更多信息 10/28:使用测试集群进行一些实验时,我发现重新配置最大/最小内存是可以的,前提是实例尚未承受内存压力。如果我用需要大量 RAM 的大型查询折磨系统,同时将内存分配调整为小于当前使用的值,则可能会使实例内存不足,并使其停止并重新启动(不愉快的情况)。错误日志中有许多难看的内存不足消息,崩溃,烧毁......这是一个极端的情况,但值得了解。

那么,似乎只有在实例启动时设置它才是真正安全的,就像有一个启动脚本说“我在节点 1 上,所以我的 RAM 设置是 X,或者我在节点 2 上,所以它们是 Y”,就像这样:

http://sqlblog.com/blogs/aaron_bertrand...

更新:我正在测试 SQL Agent + PowerShell 解决方案,其中有更详细的描述这里

答案1

那么根据服务器群集最佳实践...

Server Error in '/WINDOWSSERVER' Application.
--------------------------------------------------------------------------------
Runtime Error 
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".

<!-- Web.Config Configuration File -->
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.

哈哈,不过说真的……尽管我一直使用匹配的硬件,但只要 SQL 在较慢的节点上仍然响应/可用,我就不会看到任何问题。

答案2

唯一的问题是,要支持 Windows 2003 集群,它必须是 HCL 之一。Windows 2008 没有这个问题,因为唯一的要求是它通过验证。然而对于 Windows 2003,他们更挑剔。

答案3

我们对您提到的机器也做了同样的事。我们只是将内存限制为较小机器的内存量。

基本上,我认为 CLR proc 将监视实例并自我调节每个实例的内存上限,以便它们不会相互分页或踩踏。

你这是什么意思?我看到微软建议不要使用不匹配的内存量,因为这可能会导致故障转移出现严重问题。由于一些原因,这似乎不是你可以随时调整的事情

  1. 主节点发生故障……砰,你在节点 2 上,没有时间调整
  2. 降低内存最大值需要重新启动代理。

也许我误解了......

相关内容