将 SQL Server 实例根目录放在单独的驱动器上有用吗?

adh*_*eek 29 sql-server sql-server-2008-r2

我知道在安装 SQL Server 时可以更改许多默认路径,通常在我进行安装时,我会将数据和日志文件夹更改为位于单独的驱动器(通常是 D 和 E)上,但是我最近得到了一个预安装的机器运行的实例名称不是默认的,并且他们已将实例根目录与 mdf 文件一起配置在 D 驱动器上。这意味着在通常只有文件夹和数据库文件的相对干净的驱动器上,我现在也完全安装了 SQL Server 二进制文件。

即我现在有以下内容:

C:\Program Files\Microsoft SQL Server\ --Base Install
D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries
D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files
E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files
Run Code Online (Sandbox Code Playgroud)

通常我会用类似的东西运行:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files
Run Code Online (Sandbox Code Playgroud)

我可以理解为什么需要一个单独的实例二进制文件夹,但我不明白为什么将所有这些二进制文件放在一个单独的驱动器上会有用。

谁能告诉我为什么这样做可能是合理的?或者也许它根本没有区别?对我来说,它似乎非常不整洁......

Mik*_*lsh 23

关于拆分实例根,有几个支持这样做的论据。

  1. 有些人赞成将他们的“C”驱动器专用于操作系统和操作系统二进制文件。如果 C 驱动器发生崩溃,这可以为您提供一些不同的恢复选项,它可以帮助防止操作系统导致或接收与其他应用程序共享的空间相关问题。
  2. 您将 SQL Server 的二进制文件与其他程序隔离,并确保某些关键文件夹(如错误日志所在的 Logs 文件夹)的可用性 - SQL Server 启动时需要可以访问此文件夹。基本上,您是在保护自己免受他人侵害。

您可以将 SQL Server 二进制文件/实例文件放在与其他程序文件相同的位置。但是如果你这样做 - 至少确保你把你的系统数据库文件和可能的默认备份位置移到其他地方..

这是在给定无限数量的驱动器号时我倾向于做的事情(至少......这里的字母不重要):

  • C - 操作系统和系统级文件。仅有的
  • D - 所有应用程序(包括 SQL Server)的程序文件
  • S - 实例级文件/SQL Server 系统数据库和日志文件通常(TempDB 除外)(注意.. 如果我有多个实例,我不会制作其中的 4 个.. 我会将所有实例的所有 SQL 二进制文件放在S 在大多数情况下,文件夹提供分隔)

ED-另一个注意事项 - 我经常没有可用的“S”驱动器。在一天结束时,让您的 Master、Model、MSDB 和 Resource db 的系统数据库文件与您的某些用户位于同一驱动器上数据库文件,但在一个单独的文件夹中进行逻辑分离以减少混乱并不是世界末日。)

  • F - 用户数据库的数据文件
  • L - 用户数据库的日志文件驱动器
  • T - TempDB
  • X - 备份驱动器(尽管在很多情况下,我选择将备份流式传输到网络驱动器,而不是在备份后支付副本费用,而是立即备份到其他地方的存储。)

我通常会有更多的数据和日志驱动器,有时还有另一个 TempDB 驱动器。添加多个实例,您可能会很快用完驱动器号。您当然可以将实例级文件放在 C: 上。我为这样设置的客户端做了很多健康检查 - 我从不说“哦,哇..我们现在必须解决这个问题” - 现在如果他们的 TempDB 文件也在那里,我通常会让他们改变这一点。有时也会移动他们的主数据库和 MSDB 数据库。

但如果你不把这些东西分开,世界就不会结束。我认为好处实际上只是将您的文件分开。作为一名 DBA,您应该对公司中的其他角色、其他应用程序、其他安装等保持健康的偏执,并且您越能将自己与潜在的冲突隔离开来,您就会越好。它为您提供了更多的重新安装和恢复选项。所以是的,将你的二进制文件与 C 分开......但我的建议不会是为每个实例在单独的驱动器上发疯..