在Azure中,我们正在构建一个新的SQL Server 2017始终在线集群。VM的数据磁盘布局如下
TempDb : 2 Azure Disk Read Cache
TempDBLog : 1 Azure Disk No Cache
UserDB : 3 Azure Disk Read Cache
UserDBLog : 2 Azure Disk No Cache我的计划是创建一个多存储池,即带有2个TempDB磁盘的TempDB存储池,有3个用户db Azure磁盘的UserDB存储池。
但是,根据Azure VM中的Server上的微软的文档:
如果使用磁盘条带技术(如存储空间),则可以通过两个池(一个用于日志文件(S),另一个用于数据文件)实现最佳性能。但是,如果计划使用Server故障转移群集实例(FCI),则必须配置一个池。
这是否适用于始终打开或仅适用于共享存储FCI。请指导我,请分享好的文章/文档,以供参考。
谢谢
发布于 2019-01-17 19:39:16
使用单个池是否适用于始终打开或仅适用于共享存储FCI.
FCI在Azure中使用直接存储空间进行磁盘复制,我认为这就是这一需求的来源。对于AGs,您可以使用多个单独的磁盘或池。您应该确保每个节点上都有相同的逻辑卷和路径,否则,如果在主节点上执行文件和文件组操作,AG复制将停止。例如,如果您将文件“g:\sql\data\foo.ndf”添加到数据库,则该路径需要存在于所有其他集群节点上,以便复制该更改。见对失败的添加操作进行故障排除(总是在可用性组上)。
此外,无论在哪里放置Tempdb数据文件,也要将Tempdb日志放在那里。将tempdb的日志分割出去是过分的,因为它可能没有得到充分的利用,它的IO访问模式更像是tembdb数据文件,而不是用户数据库日志文件。特别是,事务提交不会刷新tempdb日志。
发布于 2019-01-17 18:20:47
个人经验,没有链接,但我过去一直为客户建立这些。
您的磁盘性能与池中使用的磁盘数量(最多4个,然后其他磁盘不会真正提高性能)进行缩放。我不建议在一个池中使用少于4个磁盘,并将它们放置在4xData、4xLog并将TempDB放到VM的本地SSD (驱动器D:?)如果你能用的话。否则,将其放在另一组4个磁盘上。TempDB会在服务器启动时重新生成,因此临时存储对他们来说是可以的。
您只需要支付存储多少数据(使用标准磁盘),因此尽可能多地获取VM允许的磁盘。这通常是VM要选择的驱动因素,获得足够多的磁盘来附加到它。
您需要将VM放在FCI中,这样AG才能工作,但是由于它们不会共享磁盘,所以该规则不适用于您。在安装过程中,这也是一个棘手的时刻,因为您必须记住取消选中add共享存储按钮。
最后的建议是确保见证文件与SQL服务器位于不同的资源组中。理想情况下使用云见证选项。
编辑:更有可能的是,当Azure出现问题时,它一次发生在整个机架或机架的子集上。所以,你的主要证人和证人很可能同时倒下。第二阶段将不能自动失败,因为它永远不会达到法定人数。
https://dba.stackexchange.com/questions/227388
复制相似问题