云中的SQL Server事务日志


8

这是一个常见的做法是将事务日志(*.ldf)单独的物理磁盘的系统比数据库文件(上*.mdf*.ndf)。

在虚拟机云环境中,可以将事务日志与其他数据文件放在相同的驱动器号上吗?在当今流行的云虚拟机环境中通常如何处理?

注意:不使用SQL Azure。使用具有完全访问权限的Windows虚拟机。


1
如果您在谈论Azure,我认为您根本无法控制文件的放置,甚至根本无法控制底层磁盘系统。就是说,我认为违反最佳实践并将数据和日志文件放在同一磁盘上并不是微软的明智之举,特别是考虑到该平台固有的额外写开销。
亚伦·伯特兰

阐明:不使用SQL Azure。使用完整的Windows虚拟机,以便事务日志的位置由我决定。
詹森·克雷索瓦蒂

1
因此,如果您的VM可以访问多个独立的卷,为什么您认为虚拟机和物理机的日志放置注意事项会有所不同?
亚伦·伯特兰

我想您需要知道特定供应商的建议才能确定地回答。我想我只是想对人们在流行的云供应商这方面实际所做的一些一般性想法。
詹森·克雷索瓦蒂

1
那么,我们在这里谈论什么呢?您托管在您控制的硬件和存储上的VM还是由Azure或EC2之类的云提供商托管的VM?
Mark Storey-Smith

Answers:


4

在对云服务器(具体来说是机架空间云)上的云SQL进行的广泛测试中,我发现将ldf和mdf拆分为不同的块存储卷可以显着提高性能。通过将ldf放在基于SSD的块存储卷上,并将mdf放在标准块存储卷上,我获得了非常出色的性能。

最终,当然,块存储卷是某个地方的共享SAN。本地“实例”存储位于管理程序本身上。因此,您的云环境的硬件拓扑将决定哪种配置最有效。


2

取决于您使用的云环境,但通常将它们放在同一逻辑驱动器上是有意义的。如果您需要其他IOPS,则可以跨多个卷进行条带化,但仍可以使用一个驱动器。

在云环境中,您不是分配存储的唯一使用者。您得到了一小块很大的馅饼,因此所有IO本质上都是随机的。尝试将顺序访问(日志)与随机(数据)分开是没有任何收获的。

从恢复角度也无济于事,因为您不能坚持认为这两个卷将从不同的阵列分配。而且,大型企业往往会为存储的可用性提供不同级别的保护。例如,Azure存储在数据中心内进行了三重复制,默认情况下,附加副本已复制到故障转移数据中心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.