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


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

谁能告诉我为什么它可能是一个合理的事情要做?也许这根本没有什么不同?在我看来,这似乎很不整洁...

#1 楼

关于拆分实例根目录,有一些赞成这样做的理由。


有些人赞成将其“ C”驱动器专用于OS和OS二进制文件。 。这可以为您提供一些不同的恢复选项,以防C盘崩溃,还可以防止操作系统引起或接收与其他应用程序共享的空间相关问题。
您正在将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文件也在那里,我通常让他们改变这一点。有时也移动他们的master数据库和MSDB数据库。.

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

#2 楼

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

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


停止SQL Server
添加分区
将所有数据库文件复制到该分区
将安装点更改为该文件夹,其中数据库文件所在的位置(例如:d:\ database)
完成


评论


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

– adhocgeek
2012年11月12日上午10:58

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

–gnomix
2012年11月12日14:15

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

– dezso
2012年11月12日14:22

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

– adhocgeek
2012年11月12日14:31

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

–user1207758
2012年11月15日在21:56