SQL Server安装选项建议#
本节介绍了基于凯睿德制造软件典型安装和工作负载最佳实践的一些建议。某些参数可能需要在应用程序的生命周期内或在此建议更新时进行调整。
在多维数据挖掘模式下安装Analysis Services#
Analysis Services为商业智能应用提供在线分析处理(OLAP)和数据挖掘功能。安装SQL Server时,必须以多维模式安装Analysis Services。这是Analysis Services可在其中运行的三种服务器模式之一。
为操作系统和SQL Server预配存储空间#
建议对每个SQL Server实例执行以下安装:
- 凯睿德制造软件数据库数据文件 –
G: - 凯睿德制造软件数据库日志文件(包括tempdb日志) –
L: - 凯睿德制造软件数据库备份磁盘 –
H: - SQL Server实例tempdb数据文件 –
T:
此外:
- 事务日志文件(
L:)不应与数据文件(G:)位于相同的磁盘中,因为系统在日志文件和数据文件中的写入方式分别是随机的和连续的。 - 使用RAID 10(提高写入性能和可靠性)。始终确保启用了写入缓存(如果适用)。
- 理想情况下,TempDB应该位于SSD磁盘中。如果不能,请确保它使用的是不同的主轴,而不是数据库文件。
操作系统配置#
建议使用以下配置:
- 配置Windows页面文件 - 我们通常会在系统驱动器上创建一个2GB大小的页面文件。可以在Windows Server的系统属性中找到页面文件的大小。
- 设置防病毒排除项 - 您需要按照Microsoft的指导原则为所有SQL Server文件配置排除项:https://support.microsoft.com/en-us/kb/309422 ⧉.
- 如果您还有限制文件创建/修改的其他工具,则也应相应地设置排除项。
- 确保服务器的“电源选项”设置为“高性能”。
- 使用64K分配块格式化驱动器。
这仅适用于存放SQL Server数据库文件和日志文件(包括tempdb)的驱动器。您的C驱动器/系统驱动器应是单独的驱动器,4K块大小适合该逻辑的驱动器。
服务帐户和权限授予#
请确保将“执行卷维护任务”和“内存中的页面锁定”权限授予给将用于SQL Server服务(引擎,而不是代理)的帐户。这将启用即时文件初始化(IFI)。有关详细信息,请参阅链接https://msdn.microsoft.com/en-us/library/ms175935.aspx ⧉。
SQL Server安装和配置#
建议使用以下配置:
- 确保已启用TCP/IP协议。
- 请在SQL Server配置管理器的“SQL Server网络配置”下对此进行配置。启用TCP/IP协议后需要重启SQL Server实例以使其生效。
- 测试即时文件初始化(IFI)
- 创建一个空数据库。使数据文件增长5GB。如果此增长操作未立即完成,则IFI不起作用(请重新检查前面启用该功能的步骤)。如果您已验证IFI能够正常工作,请继续并删除该空数据库。
TempDB配置#
默认情况下,TempDB文件与SQL Server二进制文件放在同一个驱动器上。即使用户选择了自定义安装,TempDB仍然会与其他数据文件放在同一个驱动器中,但这是不可取的。相反,TempDB数据文件应该存储在它们自己的专用驱动器上。
将TempDB移动到它自己的驱动器#
在本例中,我们将数据文件放在T驱动器上,将日志文件放在L驱动器上。 (重要说明:目录路径必须事先已存在)。
use master;
GO
alter database tempdb modify file (name='tempdev', filename='T:\MSSQL\DATA\tempDB.mdf', size = 1MB);
GO
alter database tempdb modify file (name='templog', filename='L:\MSSQL\LOGS\templog.ldf', size = 1MB);
GO
运行此代码后,重新启动SQL Server。这将在新驱动器上创建新的TempDB文件。 手动删除原始驱动器上的旧TempDB文件,因为SQL Server不会自行删除它。
增长该文件的大小并添加其他数据文件。现在,TempDB已位于正确的驱动器上,请根据您的首选项将其扩展到完整的大小,然后创建其他TempDB文件。
USE [master];
GO
alter database tempdb modify file (name='tempdev', size = 2GB, FILEGROWTH = 100MB);
GO
Microsoft在KB 2154845中的当前指导原则是使用与逻辑处理器数量(最多8个逻辑CPU)相同数量的tempdb文件。除非您发现出现争用,否则请勿添加更多文件。
以下代码可用于创建一个额外的TempDB数据文件,您也可以修改此代码以获得更多文件:
USE [master];
GO
ALTER DATABASE [tempdb] ADD FILE (NAME = N'tempdev2', FILENAME = N'T:\MSSQL\DATA\tempdev2.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
GO
创建数据文件通常只需要几秒钟,但如果花费的时间超过10秒钟,则可能未正确配置即时文件初始化(请重新检查前面启用IFI的部分)。 一般性说明:对于事务日志而言,以至少100MB的速率自动增长文件是可以接受的,但这个值可能需要更高才能提供足够的空间来避免再次快速自动增长。 最好的选择是通过正确地调整文件大小,从一开始就避免自动增长。
SQL Server最大并行度配置#
将此值设置为硬件上单个NUMA节点(处理器)插槽中的物理核心数量或设置为更少的数量。
以下是将最大并行度设置为8的示例:
USE [master];
GO
ALTER DATABASE [tempdb] ADD FILE (NAME = N'tempdev2', FILENAME = N'T:\MSSQL\DATA\tempdev2.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
GO
SQL Server并行度成本阈值配置#
将并行度成本阈值设置为50:
SQL Server最大内存配置#
默认情况下,SQL Server的最大内存为2147483647,即无内存限制。应该定义一个限制,以减少分页到磁盘的可能性。建议一开始保留4GB或可用总内存的10%(以您的实例中较大的为准),并根据需要进行调整。
内存为32GB的服务器示例:
如需仔细检查是否发生分页到磁盘的情况,请转到任务管理器,打开性能选项卡,并查看Windows 2008的可用内存指标。如果低于200,则很可能发生了磁盘换用。
SQL Server维护设置#
为以下所有项目配置并计划定期维护:
-
完整备份(或差异备份);
-
日志备份(每15分钟一次);
-
CheckDB;
-
索引的维护;
我们建议使用Ola Hallengren提供的免费脚本来创建自定义的SQL Server Agent:http://ola.hallengren.com/ ⧉.
其他SQL Server设置(在安装了凯睿德制造软件后进行检查)#
在实例级别启用优化临时工作负载选项。
启用备份压缩默认值
在数据库中启用Page_Verify以获得高级数据文件完整性。
/*This will script out the command for you, check it and execute the output
*/
SELECT 'ALTER DATABASE ' + QUOTENAME(s.name) + ' SET PAGE_VERIFY CHECKSUM WITH NO_WAIT;'
FROM sys.databases AS s
WHERE s.page_verify_option_desc <> 'CHECKSUM';
GO
这个脚本只是为您所做的更改创建TSQL:您仍然需要将其复制并在另一个窗口中执行它。当您配置完整备份时,请使用包含校验和选项在每次运行完整备份时检查校验和。
手动启用备份作业#
SQL Server安装会创建备份作业,但默认情况下不会启用这些备份作业。如需运行这些作业,必须手动启用它们。
有关更多信息,请参阅操作指南的数据库备份和恢复部分。
可选设置#
启用SQL跟踪标志。跟踪标志用于临时设置特定的服务器特性或禁用特定的行为。如需了解有关如何在启动时启用SQL跟踪标志的更多信息,请访问https://msdn.microsoft.com/en-us/library/ms190737.aspx ⧉。
以下跟踪标志在此上下文中是最有用的:
1117- 使文件组中的文件同时增长。这对于tempdb而言很有用。1118- 移除使用的混合扩展。通常用于帮助处理tempdb争用。2371- 随着表不断增大,重新计算统计信息的情况也会减少。3226- 停止将所有备份成功条目记录到错误日志中。4199- 获取新的查询优化器修补程序,以生成不同的查询计划。8048- 当SQL的NUMA感知代码在大型系统上不起作用时,启用SOFT NUMA。
