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


29

我知道在安装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

通常我会在类似的地方运行:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files

我可以理解为什么有必要使用单独的实例二进制文件夹,但是我看不到为什么将所有这些二进制文件放在单独的驱动器上会很有用。

谁能告诉我为什么这样做是合理的?也许这根本没有什么不同?对我来说,这似乎很不整洁。

Answers:


23

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

  1. 有些人赞成将其“ C”驱动器仅用于OS和OS二进制文件。这可以为您提供一些不同的恢复选项,以防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-临时数据库
  • X-备份驱动器(尽管在很多情况下,我选择将备份流式传输到网络驱动器,在备份后不支付副本费用,而是立即备份到其他地方的存储。)

我经常会有更多的数据和日志驱动器,有时还有另一个TempDB驱动器。添加多个实例,您很快就会用完驱动器号。您当然可以将实例级文件放在C:上。而且,我对这样设置的客户端进行了很多运行状况检查-我从不说“哦,哇,我们现在必须修复此问题”-现在,如果他们的TempDB文件也在那里,我通常让他们改变这一点。有时也移动其master数据库和MSDB数据库。

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


3

好的,Windows中只有26个可能的驱动器号。1
但是您可以使用安装点。2

因此,如果您需要在一台计算机上安装25台不同的(SQL,Web,...)服务器,则为其中一台服务器安装一个驱动器盘可能是有意义的。
但是,如果只有一台服务器,则对日志文件,数据库和程序文件使用不同的驱动器字母会更有意义。
如果日志/数据库/程序文件位于不同的文件夹中,则也可以拆分它们。

  1. 停止SQL Server
  2. 添加一个分区
  3. 将所有数据库文件复制到分区
  4. 将安装点更改为数据库文件所在的文件夹(例如:d:\ database)
  5. 完了

这根本无法回答问题。我不是在问驱动器号或挂载点,而是在问为什么将实例根目录放在单独的驱动器上可能有意义。由于这些是系统文件,因此对我来说将它们保留在系统驱动器上是有意义的。
adhocgeek 2012年

1
对不起,我误会了你。将属于SQL的所有内容放到一个驱动器上的一个好点是备份脚本的简单性,该脚本只需要在该驱动器上运行。但是,如果仅将所有内容放在一个驱动器中,则数据库,二进制文件和日志应位于单独的文件夹中。我谈到了挂载点,即可以在不更改整个系统的情况下在不同分区上重组数据。

@gnomix您始终可以通过单击答案(和问题)下面的“编辑”链接来对其进行编辑。
dezso 2012年

@gnomix潜在备份脚本的简单性是我倾向于将数据和日志放在其自己的驱动器上的主要原因之一,但是我从来不需要备份系统文件。我想知道这是否是常见要求。我的直觉告诉我,将系统文件放在非系统驱动器上可能会引起问题。
adhocgeek 2012年

1
另外,将驱动器分为两个或多个分区并不会真正帮助磁盘I / O。但是,是的,我完全同意你的看法。将数据库文件放在驱动器的根目录中使事情看起来好多了,并且使发现事情变得更加容易。我通常将所有内容放到D:\ Data E:\ Logs F:\ Backup等目录中
user1207758 2012年
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.