故障转移群集:SAN上的tempdb?

我们正在考虑集群我们的SQL Server 2008 EE实例。 存储在SAN上。 我们可以把tempdb数据/日志文件放在SAN上吗? 这个解决scheme有什么优点和缺点? 为了获得最佳性能,我们可以创build与处理器内核相同数量的tempdb数据文件吗?

您唯一的select是将TempDB放在共享磁盘资源上,即SAN。 标准磁盘I / O争用是您关心的问题,对于TempDB来说更是如此,因为它是整个实例的中心瓶颈。

至于TempDB有多less个文件,请参阅Paul Randal关于这个主题的文章。 他负责存储引擎,所以他是这方面的专家: http : //www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(1230)- tempdb的-应-始终具有一数据文件每次处理器core.aspx

如果您使用的是MS SQL集群,我的理解是所有卷必须位于共享存储上,这通常是SAN。

是的,您可以将tempdb数据和日志文件放在SAN上。 你不一定非要 。 你可以 (在这里强调要小心)在每个节点上都有直连存储(DAS)上的临时数据库,但是驱动器号和大小必须匹配,并且会遇到问题。 优点和缺点与SAN上的常规DB文件几乎相同,并且适用相同的HA概念。 IO性能可能是一个问题,所以把它放在任何你获得更好的性能。

至于“最佳性能” – 关于tempdb应该有多less文件,并没有规定。 从四分之一核心开始,testing你的工作量,如果需要增加。 如果tempdb文件太多,如果IO子系统无法跟上,最终可能会遇到瓶颈。