华为云云数据库rds创建tempdb临时数据文件_云淘科技

操作场景

tempdb是系统数据库,是一个全局资源,可供连接到SQL Server实例或SQL数据库的所有用户使用 。它是一个临时数据库,无法永久保存数据,作用是给实例中的各种请求处理中间数据,分为主数据文件(.mdf)、次要数据文件(.ndf)和日志文件(.ldf)。当服务重启的时候,tempdb会被重新创建。

tempdb数据库如果在设计上存在缺陷,会存在性能上的问题。尤其是tempdb数据库在一些高并发的场景,如果应用频繁地创建和销毁临时表,会导致实例卡顿从而影响业务。

微软官方建议将临时数据库的文件拆分成多个,一般与逻辑CPU个数相同,超过8个则使用8个数据文件,解决闩锁争用问题每次额外加4个文件。

更多介绍请参见tempdb数据库官方文档。

使用限制

云数据库 RDS for SQL Server的2008、2012、2014实例默认是1个临时数据文件,2016实例默认4个临时数据文件,2017实例默认8个临时数据文件。
云数据库 RDS for SQL Server所有版本只有一个日志文件。

应用场景

您需要根据实例实际规格和具体场景确定tempdb文件的创建个数。下面将以32U的SQL Server 2014EE实例为例创建8个临时数据文件。

前提条件

安装SQL Server客户端,请参见如何安装SQL Server Management Studio。
在关系型数据库服务创建一个32U的SQL Server 2014EE实例,请参见创建SQL Server实例。

操作步骤

启动SQL Server Management Studio客户端。
选择“连接 > 数据库引擎”,在“连接到服务器”弹出框中填选登录信息。

图1 连接到服务器

表1 参数说明

参数

说明

服务器名称

目标实例的主机IP和数据库端口(IP和数据库端口之间请使用英文半角逗号)。例如:x.x.x.x,8080

主机IP为已绑定的弹性公网IP地址。
端口为“基本信息”页签中,“连接信息”模块的“数据库端口”。

身份验证

认证方式,选择“SQL Server身份验证”。

登录名

待访问的华为云关系型数据库帐号,默认管理员帐号为rdsuser。

密码

待访问的数据库帐号对应的密码。

查看当前tempdb信息。

选择“数据库 > 系统数据库 > 临时数据库”,右键单击“属性”,在弹出框中选择“文件”,查看当前tempdb信息。

图2 查看当前tempdb信息

通过SQL语句查询。

SELECT name AS FileName,

size*1.0/128 AS FileSizeInMB,

CASE max_size

WHEN 0 THEN ‘Autogrowth is off.’

WHEN -1 THEN ‘Autogrowth is on.’

ELSE ‘Log file grows to a maximum size of 2 TB.’

END,

growth AS ‘GrowthValue’,

‘GrowthIncrement’ =

CASE

WHEN growth = 0 THEN ‘Size is fixed.’

WHEN growth > 0 AND is_percent_growth = 0

THEN ‘Growth value is in 8-KB pages.’

ELSE ‘Growth value is a percentage.’

END

FROM tempdb.sys.database_files;

GO

使用如下语句查看当前实例的tempdb的逻辑文件名称。

SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(‘tempdb’);

图3 查看tempdb

在3的“文件”页签下查看tempdb在磁盘上的当前位置。

图4 查看当前位置

使用如下语句将tempdb文件迁移到D盘RDSDBDATA文件夹的DATA目录下,根据实际需要指定初始大小和增长速度。

USE master;

GO

ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = ‘D:\RDSDBDATA\DATA empdb.mdf’, SIZE = 8MB, FILEGROWTH = 64MB);

GO

ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = ‘D:\RDSDBDATA\DATA emplog.ldf’, SIZE = 8MB, FILEGROWTH = 64MB);

GO

图5 迁移文件

在“实例管理”页面,选择指定的主实例,单击“更多 > 重启实例”。

您也可以在“实例管理”页面,单击目标实例名称,在页面右上角,单击“重启实例”。

使用如下SQL语句查询文件是否迁移成功。

SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(‘tempdb’);

图6 查看tempdb

根据实际需要配置文件名、初始大小、增长速度等信息,通过如下SQL语句或界面增加tempdb的文件数。

通过如下SQL语句增加tempdb的文件数。

— 根据CPU的数量增加tempdb文件数、初始大小和增长速度分别为8MB和64MB

USE [master]

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp2′, FILENAME = N’D:\RDSDBDATA\DATA empdb2.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp3′, FILENAME = N’D:\RDSDBDATA\DATA empdb3.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp4′, FILENAME = N’D:\RDSDBDATA\DATA empdb4.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp5′, FILENAME = N’D:\RDSDBDATA\DATA empdb5.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp6′, FILENAME = N’D:\RDSDBDATA\DATA empdb6.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp7′, FILENAME = N’D:\RDSDBDATA\DATA empdb7.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N’temp8′, FILENAME = N’D:\RDSDBDATA\DATA empdb8.ndf’, SIZE = 8MB, FILEGROWTH = 64MB)

GO

在3的“文件”页签,单击“添加”,增加tempdb的文件数。

图7 添加tempdb文件

配置完成后,请参考7再次重启实例。
重复8,验证文件是否增加成功。

图8 查看tempdb信息

父主题: RDS for SQL Server

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家