你目前正处于脱机状态,正在等待 Internet 重新连接

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

本文已归档。它按“原样”提供,并且不再更新。
概要
默认情况下,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 事务日志填满的原因

dev temp db
属性

文章 ID:187824 - 上次审阅时间:12/05/2015 08:48:32 - 修订版本: 3.0

Microsoft SQL Server 6.5 标准版

  • kbnosurvey kbarchive kbhowto kbinfo KB187824
反馈