INF:如何将 Tempdb 移至不同设备

文章翻译 文章翻译
文章编号: 187824 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

默认情况下,tempdb 位于主设备上。您可能希望移动 tempdb,以使其完全驻留在其他设备上。本文说明如何将 tempdb 移至不同设备上。

更多信息

将 tempdb 移至不同设备的基本过程是,首先将 tempdb 放入 RAM 中,然后确保目标设备是唯一的默认设备(并且具有至少 2 MB 可用空间),最后将 tempdb 从 RAM 中取出。通过 SQL 企业管理器 (SEM) GUI 工具或 ISQL 命令都可以执行此操作。下面将对这两种方法一一进行介绍。

注意:这里介绍的每种方法都包含创建放置 tempdb 的新设备的步骤。不过,也可以不创建新设备,而使用现有设备。如果要使用现有设备,请跳过以下涉及创建新设备的步骤,继续其余步骤。另外,如果决定使用现有设备,请确保从 RAM 中移出 tempdb 时该设备具有至少 2 MB 可用空间。

使用 SQL 企业管理器移动 Tempdb

  1. 请确保具有 Master.dat 文件的当前备份。为此,请关闭 SQL Server 并将 Master.dat 文件复制到其他位置。
  2. 启动 SQL 企业管理器。执行以下操作,从而为 tempdb 创建新设备:

    1. 右键单击“数据库设备”文件夹,然后在快捷菜单上单击“新设备”。或者,也可以在“管理”菜单上单击“数据库设备”,然后单击“新设备”工具栏按钮。
    2. 在“名称”框中,键入名称“TEMPDEVICE”(不含引号),然后单击以选择“默认设备”选项。
    3. 在“大小”框中,键入希望新设备所具有的 MB 数(例如,键入 100 表示 100 MB 的设备)。
    4. 单击“立即创建”。
  3. 将 tempdb 配置为暂时驻留在 RAM 中。为此,请执行下列步骤:

    1. 右键单击服务器名称,然后在快捷菜单上单击“配置”。或者,也可以单击“服务器”菜单,指向“SQL Server”,然后单击“配置”。
    2. 单击“配置”选项卡。
    3. 向下滚动,直到看见“tempdb in RAM (MB)”配置选项。在“当前”栏中,键入要为 tempdb 分配的 RAM 的 MB 数(例如 2)。这个内存占用只是暂时的。然后单击“确定”。
  4. 防止主设备或任何其他设备成为默认设备。为此,请执行下列步骤:

    1. 在“数据库设备”文件夹下,双击主设备或右键单击主设备,并在快捷菜单上单击“编辑”。或者,也可以在“管理”菜单上单击“数据库设备”,选择主设备,然后单击“编辑设备”工具栏按钮。
    2. 单击以清除“默认设备”复选框,然后单击“立即更改”。
    3. 除了在此过程的步骤 2 中创建的 TEMPDEVICE 外,请对您可能拥有的任何其他默认设备重复步骤 a-b。
  5. 关闭并重新启动 SQL Server。Tempdb 现在应在 RAM 中,而不在主设备上。
  6. 将 tempdb 从 RAM 中取出。为此,请重复此过程的步骤 3,但应在“tempdb in RAM (MB)”配置选项的“当前”栏中键入 0。
  7. 再次关闭并重新启动 SQL Server。由于主设备不再是默认设备,因此 tempdb 将进入指定为默认设备的新设备(即 TEMPDEVICE)。
  8. 重新启动 SQL Server 之后,tempdb 将采用默认选项设置,并且默认大小为 2 MB。通过执行下列步骤,可以更改 tempdb 数据库选项并扩展其大小:

    1. 在“数据库”文件夹下,双击 tempdb 或右键单击 tempdb,然后单击快捷菜单上的“编辑”。或者,也可以单击“管理”菜单上的“数据库”,选择 tempdb,然后单击“编辑数据库”工具栏按钮。
    2. 在“选项”选项卡上,验证是否设置了以下选项(多数情况下应选):

      • 启用“选中/大容量复制”。
      • 启用“在检查点截断日志”。
      • 禁用“单个用户”。
      • 禁用“仅供 DBO 使用”。
    3. 在“数据库”选项卡上的“大小”框中,单击“扩展”。
    4. 在“数据设备”下,选择 TEMPDEVICE。
    5. 在“大小(MB)”框中,键入 tempdb 要增加的 MB 数。例如,如果键入 8,则 tempdb 增加 8 MB,总数达到 10 MB。
    6. 单击“立即扩展”。
    有关扩展数据库大小的更多信息,请参见 SQL Server 联机丛书中的“扩展或缩减数据库”主题。

使用 ISQL 移动 Tempdb

  1. 请确保具有 Master.dat 文件的当前备份。
  2. 使用类似于以下内容的语句为 tempdb 创建新设备:
          DISK INIT
          NAME = 'TEMPDEVICE',
          PHYSNAME = 'C:\MSSQL\DATA\TEMPDEV.DAT',
          SIZE = 51200,
          VDEVNO = 250
     
    						
    注意:本示例为 tempdb 创建一个 100 MB 的设备。可以根据需要调整“大小”选项。
  3. 执行以下语句,从而将 tempdb 放入 RAM 中,防止主设备成为默认设备,并使新创建的 tempdevice 成为默认设备:
          sp_configure 'allow updates', 1
          go
          reconfigure with override
          go
          sp_configure 'tempdb in ram', 2
          go
          sp_diskdefault master, defaultoff
          go
          sp_diskdefault tempdevice, defaulton
          go
          reconfigure with override
          go
     
    						
    注意:

    • sp_configure 'tempdb in ram' 配置选项大小以 MB 为单位,而不是以 2 KB 页为单位,这一点与“memory”参数相同。
    • 如果有其他默认设备,则还应对这些设备运行带 defaultoff 选项的 sp_diskdefault。要查看是否有其他默认设备,可运行 sp_helpdevice 存储过程。
  4. 关闭并重新启动 SQL Server。Tempdb 现在应在 RAM 中,而不在主设备上。
  5. 现在,请使用 sp_configure 将 tempdb 从 RAM 中取出:
          sp_configure 'tempdb in ram', 0
          go
          reconfigure with override
          go
     
    						
  6. 关闭并重新启动 SQL Server。由于主设备不再是默认设备,因此 tempdb 将进入新设备中。
  7. 重新启动 SQL Server 之后,tempdb 的默认大小将为 2 MB。可以使用类似于以下内容的 ALTER DATABASE 语句扩展其大小:
          ALTER DATABASE tempdb
          ON TEMPDEVICE = 8
     
    						
    此语句将 tempdb 大小增加 8 MB,总数达到 10 MB。有关 ALTER DATABASE 语句的更多信息,请参见 SQL Server 联机丛书中的“ALTER DATABASE 语句”主题。
  8. 请验证是否为 tempdb 设置了以下数据库选项:

    • 启用“选中/大容量复制”。
    • 启用“在检查点截断日志”。
    • 禁用“单个用户”。
    • 禁用“仅供 DBO 使用”。
    为此,请使用 sp_dboption 存储过程。有关如何使用 sp_dboption 查看或更改数据库选项的更多信息,请参见 SQL Server 联机丛书中的“sp_dboption 系统存储过程”主题。
有关更多信息,请参见下面的 Microsoft 知识库文章:
115050:INF:何时在 RAM 中使用 Tempdb

158586:PRB:启动 SQL Server 时出现“Temp_db”设备问题

141183:PRB:扩展 Tempdb 后日志段错误地移到设备中

110139:INF:SQL 事务日志填满的原因

属性

文章编号: 187824 - 最后修改: 2006年12月8日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 6.5 标准版
关键字:?
kbhowto kbinfo KB187824
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com