我正在将 SQL Server 数据库移动到与使用它的应用程序不同的服务器(当前应用程序和 SQL 在同一服务器上)。
根据我所理解的一般最佳实践,新实例已配置为默认数据 ( .mdf
) 和日志 ( .ldf
) 文件存储在单独的驱动器上。
我经历了将非主系统数据库文件(临时、模型等)实际移动到这些位置的过程,将主系统留在最后,因为它使用不同的进程。有关我使用的说明,请参阅此链接:https://learn.microsoft.com/en-us/sql/relational-databases/databases/move-system-databases ?view=sql-server-ver16
对于主数据库,说明说移动它后,您应该更新SQLDataRoot
注册表中的值以指向“主数据库文件”的位置,但由于数据和日志文件现在位于不同的文件夹中,所以我没有'不确定要指定哪个位置。从那里,我更广泛地想知道我是否应该将它们分开,或者它们是否应该始终保持在一起,并且只有新数据库才将其数据和日志文件移动到单独的驱动器。
我还没有尝试移动主数据库,因为我对配置注册表值以及任何系统数据库文件是否应该分开或保留在一起有疑问。
FWIW,通过分离系统数据库的数据和日志文件实际上并没有任何性能提升。他们并没有真正改变太多的数据或事务性的东西,通常这会有所帮助。
唯一的例外是将
tempdb
(数据和日志文件)与其他所有文件放在自己的驱动器上。因此,如果您将其他系统数据库的文件放在一起,那就回答了您的问题:
此外,如果您的服务器及其驱动器是通过 VM(虚拟机)配置的,那么通过在驱动器之间分离文件来获得的收益(关于性能)就更少,因为它们可能在逻辑上配置为单独的驱动器,但仍可能是幕后相同的物理设备。