包括从排序规则

和命名实例

到日志和数 

据文件的分离。

SQL Server要 安 装 在 个 群 集 中 吗

可以安装到存储区域网络(Storage Area
Networks, SAN)或者

网络附加存储(Network Attached Storage,NAS)吗 ?

是否考虑虚拟化技
术?尽管安装向导会要求用户回答一些关于“如何”安装SQL Server的问题,但在启动向 导前,您应该知道给出这些答案的理由(即为什么给出这样的答案)。

升 级 安 装 有 SQL Server 2008的服务器上的几乎任何硬件配置都能够提升性能。但在 同等条件下,增 加 RAM通常会对性能产生最大的影响。处理器主频过低或者磁盘系统运
行过慢,都将会和RAM不足一样导致很多的性能问题,只 是 RAM限制会使得处理器和
磁盘的问题变得更加严重。

要 优 化 SQL Server 2 0 0 8 ,需要优化4 个主要的子系统,包括处理器、内存、存储器和 网络子系统。

DBA对网络子系统具有最少的控制权,但有时后者会产生最大
的影响,这取决于支持的应用程序和用户数。应与网络管理员和工程师协作,为用户的并
发数据库访问制定一个策略。

SQL Server在编译和执行査询计划的过程中会频繁使用处理器。 即使服务器有一个非常快速的磁盘阵列和足够的RAM,但如果它有一个主频明显过低的处
理器,那一切都是徒劳的。

SQL Server非常善于运用多个处理器来 执行并行操作,添加一个处理器往往会比升级单一的处理器获得更大的收益。但是,如果
你的许可是每处理器方式,那么添加额外的处理器的成本可能就会过于昂贵。

提示:
在编写本书时,Microsoft正考虑允许在一个处理器许可下使用多个逻 辑 处 理 器 。这 样 就可以购买一个4 核 C PU ,从而通过购买一个处理器许可为SQL Server提 供 4 个 CPU。 例如,如果希望购买一个有两个4 核处理器的新服务器,那只需购买两个处理器许可,就
可以利用所有8 个内核。

 

SQL Server非 常 “喜欢”内存。喜欢和应用程序抢内存,它试图把
尽可能多的数据放在内存中以便能够随时处理。它还试图尽可能长时间地在RAM中保持
数据。

SQL Server为各种数据库操作创建和维持着不同的内存池。例如,有用于存储来自磁 盘的数据页的缓冲区缓存;用来存储已编译存储过程、触发器、函数、视图和査询计划的
过程缓存;甚至用于事务日志操作的日志缓存。

Microsoft对 32位 和 64位版本建议的RAM人小略尚于2GB。尽 管 Microsoft在发布
推荐配置时考虑了操作系统开销,似是考虑到RAM成本相对较低,我一般还是建议其大
小要高于操作系统要求。例如,如果Windows Server 2008建议采用2GB的 RAM ,那么为
了优化性能,我会建议采用4GB的 RAM。

 

最理想的SQL Server安装可能如图2-1所示

SQL Server 安装在d盘 重做系统 sql server可以装d盘吗_数据库

 

注意,应用程序被安装在一个与操作系统分离的•组冋转轴(Spindle)中。这减少了对 磁盘资源的争夺,并使得应用程序运行得更有效率。要注意“冋转轴”这个术语。它比“驱
动器”或 “磁盘”更适合,因为没有对它做出其他解释的空间。物理磁盘驱动器有一个回
转轴,可将其看作陀螺的中心。当然,没有转盘的固态磁盘的容量和数量的增加(以及成本
的降低)可能最终会使“冋转轴”一词淘汰。不过目前还是要继续使用此术语。在图2-1中,
对于操作系统来说,在 RAID 1阵列上驻留日志文件的两个回转轴就像是单个驱动器,而
实际上则有两个物理磁盘或回转轴。
应用程序存在于一组独立的冋转轴上,而数据文件和日志文件则存在于另一个组上。
这样做是为了最大限度地提髙效率、容错性和可恢复性。把操作系统、应用程序和数据库
都放在同一回转轴上就像是把所有的鸡蛋放在同一个篮子里。如果篮子掉在地t , 就会打 碎所有的鸡蛋。同样,如果回转轴出错了,您将失去操作系统、应用程序和数据库。在这
种情况下,所需的恢复时间将增至3倍。即使服务器不会出现灾难性的故障,磁盘子系统
上的资源竞争也会导致性能严重下降。

把数据库文件与事务日志文件分离也可帮助改进恢复能力。如果数据库文件被破坏或
损坏,可以使用最近的备份来恢复它,然后可以使用现有的事务日志恢复自上次备份以来
的全部事务。同样,如果事务日志丢失,我们可以用数据库数据重新创建它,而不会丢失
太多的数据。如果数据文件和□志文件在同一个回转轴上,那么回转轴灾难性的故障将导
致自上次备份以来的所有数据丢失。

分离SQL Server的不同组件是一方面。在选择磁盘系统时,还有必要知道什么类型的 磁盘最适合数据库的每个部分。注意在图2-1中,操作系统安装在RAID 1 阵列上。SQL
Server应用程序和数据库日志文件也是如此,而数据文件则放在一个条带磁盘阵列上。可 以将所有的SQL资源放在一个或多个RAID10或 RAH)5阵列中,许多组织也正是这样做
的。不过对事务日志而言,RAID1配置比RAID 5 更为合适。将事务日志放在条带磁盘阵
列上实际上会降低SQL Server的性能,因为RAID 5 阵列本身对写性能有影响,而 SQL Server将串行化的数据写入日志的方式也会影响写性能。日志文件人多是被写入的,这意 味着对于性能而言,RAID1(或者如果您有更多的预算,可以采用RAID10)是最好的选择。
RAID 1或 RAID 10更好的另外一个原因是,事务日志是连续的、串行的,而不像数据文
件那样是并行的。
每个事务在写入内存之前都先写入事务日志,这使得事务日志可能成为性能瓶颈。快
速阵列有助于防止这一情况。

 

2 .存储区域网络(SAN)
SAN 一般经由网络(通常通过光纤通道或iSCSI)传 输 SCSI(Small Computer Systems
Interface,小型计算机系统接口)块命令,取代了直接附加存储阵列采用的SCSI连接。SAN 解决方案非常适合SQLServer数据库,因为数据库应用程序希望的是对数据进行块访问, 这在采用NAS时并不容易实现。利用SAN软件,可以使用SAN上的存储空间创建多个卷
并将其提供给服务器,如图2-2所示。

SQL Server 安装在d盘 重做系统 sql server可以装d盘吗_SQL_02

3 . 网络附加存储(NAS)
NAS网络接口通常是千兆以太网或快速以太网,但其存储类型是基于文件的,并使用
传统的文件共享协议。卷并没有提供给使用NAS的服务器;相反,文件访问是通过通用命
名约定(Universal Naming Convention,UNC)共享实现的,如图2-3所不。基于文件的访问
会极大地降低SQL Server的性能,所以应避免使用NAS存储。在默认情况下,不能通过 UNC定位创建数据库,但这种情况是可以改变的。然而,如果数据库被用于应对任何繁重
的 I/O情况,你会发现NAS将无法作出合适的响应。

SQL Server 安装在d盘 重做系统 sql server可以装d盘吗_SQL_03

 

4 .本地附加磁盘阵列
对于髙速网络中多个服务器之间的存储资源共享总是有许多选择,但有些机构(因为各
种原因)选择将木地附加存储应用到他们的数据库实现中(如图2»4所示)。在现实中,本地
附加磁盘阵列和SAN的唯一区别是,在本地阵列上创建的卷只有附加该阵列的服务器才可
以访问,而 SAN控制器可以优化数据传输。本地阵列通常是通过髙速SCSI电缆或光纤通
道 连 接 的 。

 

SQL Server 安装在d盘 重做系统 sql server可以装d盘吗_运维_04

 

2 .1 .5 虚拟化的考虑事项
SQL Server 2008是在鹿拟环 境 巾 得 到 支 持 的 第 •个 SQL Server版本;不过,还是有一
些 限制。Microsoft将只支 持 在 Windows Server 2008的 Hyper-V环 境 中 安 装 的 SQL Server,
不支持虚拟机的群集。由于虚拟化技术不断改进,它对于那呰希望合并硬件或利用虚拟化
恢复和可移植选项的公司变得越来越冇吸引力。我的体验是,在虚拟环境中运行SQL Server 的最大瓶颈在于I/O性能。对 此 ,我 强烈建议对数据库和事务日志使用SAN存储,这样可
避免在虚拟硬盘文件中存储数据库信息。